Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1801484
  • 博文数量: 290
  • 博客积分: 10653
  • 博客等级: 上将
  • 技术积分: 3178
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-24 23:08
文章存档

2013年(6)

2012年(15)

2011年(25)

2010年(86)

2009年(52)

2008年(66)

2007年(40)

分类: WINDOWS

2012-05-29 16:28:00

.text1:00BFD818 ; ---------------------------------------------------------------------------
.text1:00BFD819                 align 10h
.text1:00BFD820
.text1:00BFD820 loc_BFD820:                             ; CODE XREF: sub_BFE1D0+3p
.text1:00BFD820                 push    ebp
.text1:00BFD821                 mov     ebp, esp
.text1:00BFD823                 push    0FFFFFFFFh
.text1:00BFD825                 push    offset loc_C7877D
.text1:00BFD82A                 mov     eax, large fs:0
.text1:00BFD830                 push    eax
.text1:00BFD831                 sub     esp, 7F8h
.text1:00BFD837                 mov     eax, ds:dword_C9F8B0
.text1:00BFD83C                 xor     eax, ebp
.text1:00BFD83E                 mov     [ebp-18h], eax
.text1:00BFD841                 push    eax
.text1:00BFD842                 lea     eax, [ebp-0Ch]
.text1:00BFD845                 mov     large fs:0, eax
.text1:00BFD84B                 mov     byte ptr [ebp-0Dh], 1
.text1:00BFD84F                 call    sub_C401C0
.text1:00BFD854                 mov     eax, ds:CreateThread
.text1:00BFD859                 mov     [ebp-14h], eax
.text1:00BFD85C                 mov     ecx, [ebp-14h]
.text1:00BFD85F                 add     ecx, 1
.text1:00BFD862                 mov     [ebp-14h], ecx
.text1:00BFD865                 mov     edx, ds:LoadStringA
.text1:00BFD86B                 mov     [ebp-14h], edx
.text1:00BFD86E                 mov     eax, [ebp-14h]
.text1:00BFD871                 add     eax, 1
.text1:00BFD874                 mov     [ebp-14h], eax
.text1:00BFD877                 mov     ecx, ds:LoadStringW
.text1:00BFD87D                 mov     [ebp-14h], ecx
.text1:00BFD880                 mov     edx, [ebp-14h]
.text1:00BFD883                 add     edx, 1
.text1:00BFD886                 mov     [ebp-14h], edx
.text1:00BFD889                 push    offset sub_BFC520
.text1:00BFD88E                 call    ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z ; _set_new_handler(int (*)(uint))
.text1:00BFD893                 add     esp, 4
.text1:00BFD896                 mov     eax, ds:dword_CB565C
.text1:00BFD89B                 mov     ecx, ds:dword_CB565C
.text1:00BFD8A1                 mov     edx, [eax+50h]
.text1:00BFD8A4                 xor     edx, [ecx+70h]
.text1:00BFD8A7                 push    edx
.text1:00BFD8A8                 call    ds:GetCurrentProcessId
.text1:00BFD8AE                 push    eax
.text1:00BFD8AF                 push    offset aXDa08x  ; "%X::DA%08X"
.text1:00BFD8B4                 push    104h
.text1:00BFD8B9                 lea     eax, [ebp-124h]
.text1:00BFD8BF                 push    eax
.text1:00BFD8C0                 call    _sprintf_s
.text1:00BFD8C5                 add     esp, 14h
.text1:00BFD8C8                 lea     ecx, [ebp-124h]
.text1:00BFD8CE                 push    ecx
.text1:00BFD8CF                 push    0
.text1:00BFD8D1                 push    1F0001h
.text1:00BFD8D6                 call    ds:OpenMutexA
.text1:00BFD8DC                 test    eax, eax
.text1:00BFD8DE                 jz      short loc_BFD8E4
.text1:00BFD8E0                 mov     byte ptr [ebp-0Dh], 0
.text1:00BFD8E4
.text1:00BFD8E4 loc_BFD8E4:                             ; CODE XREF: .text1:00BFD8DEj
.text1:00BFD8E4                 movzx   edx, byte ptr [ebp-0Dh]
.text1:00BFD8E8                 test    edx, edx
.text1:00BFD8EA                 jz      loc_BFDABC
.text1:00BFD8F0                 mov     eax, ds:dword_CB565C
.text1:00BFD8F5                 mov     ecx, ds:dword_CB565C
.text1:00BFD8FB                 mov     edx, [eax+40h]
.text1:00BFD8FE                 xor     edx, [ecx+80h]
.text1:00BFD904                 mov     eax, ds:dword_CB565C
.text1:00BFD909                 xor     edx, [eax+4]
.text1:00BFD90C                 and     edx, 20h
.text1:00BFD90F                 jz      loc_BFDABC
.text1:00BFD915                 mov     ecx, ds:dword_CB565C
.text1:00BFD91B                 mov     edx, ds:dword_CB565C
.text1:00BFD921                 mov     eax, [ecx+90h]
.text1:00BFD927                 xor     eax, [edx+64h]
.text1:00BFD92A                 mov     ecx, ds:dword_CB565C
.text1:00BFD930                 xor     eax, [ecx+50h]
.text1:00BFD933                 push    eax
.text1:00BFD934                 push    offset aRn08x   ; "RN%08X"
.text1:00BFD939                 push    104h
.text1:00BFD93E                 lea     edx, [ebp-124h]
.text1:00BFD944                 push    edx
.text1:00BFD945                 call    _sprintf_s
.text1:00BFD94A                 add     esp, 10h
.text1:00BFD94D                 lea     eax, [ebp-124h]
.text1:00BFD953                 push    eax
.text1:00BFD954                 push    0
.text1:00BFD956                 push    0
.text1:00BFD958                 call    ds:CreateMutexA
.text1:00BFD95E                 mov     [ebp-12Ch], eax
.text1:00BFD964                 cmp     dword ptr [ebp-12Ch], 0
.text1:00BFD96B                 jz      loc_BFDABC
.text1:00BFD971                 call    ds:GetLastError
.text1:00BFD977                 cmp     eax, 0B7h
.text1:00BFD97C                 jnz     loc_BFDABC
.text1:00BFD982                 push    7530h
.text1:00BFD987                 mov     ecx, [ebp-12Ch]
.text1:00BFD98D                 push    ecx
.text1:00BFD98E                 call    ds:WaitForSingleObject
.text1:00BFD994                 mov     [ebp-130h], eax
.text1:00BFD99A                 cmp     dword ptr [ebp-130h], 0
.text1:00BFD9A1                 jz      short loc_BFD9B3
.text1:00BFD9A3                 cmp     dword ptr [ebp-130h], 80h
.text1:00BFD9AD                 jnz     loc_BFDAB2
.text1:00BFD9B3
.text1:00BFD9B3 loc_BFD9B3:                             ; CODE XREF: .text1:00BFD9A1j
.text1:00BFD9B3                 mov     edx, ds:dword_CB565C
.text1:00BFD9B9                 mov     eax, ds:dword_CB565C
.text1:00BFD9BE                 mov     ecx, [edx+90h]
.text1:00BFD9C4                 xor     ecx, [eax+64h]
.text1:00BFD9C7                 mov     edx, ds:dword_CB565C
.text1:00BFD9CD                 xor     ecx, [edx+50h]
.text1:00BFD9D0                 push    ecx
.text1:00BFD9D1                 push    offset a08x     ; "%08X"
.text1:00BFD9D6                 push    104h
.text1:00BFD9DB                 lea     eax, [ebp-124h]
.text1:00BFD9E1                 push    eax
.text1:00BFD9E2                 call    _sprintf_s
.text1:00BFD9E7                 add     esp, 10h
.text1:00BFD9EA                 mov     dword ptr [ebp-138h], 0
.text1:00BFD9F4                 jmp     short loc_BFDA05
.text1:00BFD9F6 ; ---------------------------------------------------------------------------
.text1:00BFD9F6
.text1:00BFD9F6 loc_BFD9F6:                             ; CODE XREF: .text1:00BFDA3Cj
.text1:00BFD9F6                 mov     ecx, [ebp-138h]
.text1:00BFD9FC                 add     ecx, 1
.text1:00BFD9FF                 mov     [ebp-138h], ecx
.text1:00BFDA05
.text1:00BFDA05 loc_BFDA05:                             ; CODE XREF: .text1:00BFD9F4j
.text1:00BFDA05                 cmp     dword ptr [ebp-138h], 12Ch
.text1:00BFDA0F                 jge     short loc_BFDA3E
.text1:00BFDA11                 lea     edx, [ebp-124h]
.text1:00BFDA17                 push    edx
.text1:00BFDA18                 push    offset aMainclass ; "MainClass"
.text1:00BFDA1D                 call    ds:FindWindowA
.text1:00BFDA23                 mov     [ebp-134h], eax
.text1:00BFDA29                 cmp     dword ptr [ebp-134h], 0
.text1:00BFDA30                 jz      short loc_BFDA34
.text1:00BFDA32                 jmp     short loc_BFDA3E
.text1:00BFDA34 ; ---------------------------------------------------------------------------
.text1:00BFDA34
.text1:00BFDA34 loc_BFDA34:                             ; CODE XREF: .text1:00BFDA30j
.text1:00BFDA34                 push    64h
.text1:00BFDA36                 call    ds:Sleep
.text1:00BFDA3C                 jmp     short loc_BFD9F6
.text1:00BFDA3E ; ---------------------------------------------------------------------------
.text1:00BFDA3E
.text1:00BFDA3E loc_BFDA3E:                             ; CODE XREF: .text1:00BFDA0Fj
.text1:00BFDA3E                                         ; .text1:00BFDA32j
.text1:00BFDA3E                 cmp     dword ptr [ebp-134h], 0
.text1:00BFDA45                 jz      short loc_BFDAA5
.text1:00BFDA47                 mov     eax, ds:dword_CB565C
.text1:00BFDA4C                 mov     ecx, ds:dword_CB565C
.text1:00BFDA52                 mov     edx, [eax+90h]
.text1:00BFDA58                 xor     edx, [ecx+64h]
.text1:00BFDA5B                 mov     eax, ds:dword_CB565C
.text1:00BFDA60                 xor     edx, [eax+50h]
.text1:00BFDA63                 mov     [ebp-144h], edx
.text1:00BFDA69                 mov     ecx, ds:dword_CB5400
.text1:00BFDA6F                 push    ecx
.text1:00BFDA70                 call    _strlen
.text1:00BFDA75                 add     esp, 4
.text1:00BFDA78                 add     eax, 1
.text1:00BFDA7B                 mov     [ebp-140h], eax
.text1:00BFDA81                 mov     edx, ds:dword_CB5400
.text1:00BFDA87                 mov     [ebp-13Ch], edx
.text1:00BFDA8D                 lea     eax, [ebp-144h]
.text1:00BFDA93                 push    eax
.text1:00BFDA94                 push    0
.text1:00BFDA96                 push    4Ah
.text1:00BFDA98                 mov     ecx, [ebp-134h]
.text1:00BFDA9E                 push    ecx
.text1:00BFDA9F                 call    ds:SendMessageA
.text1:00BFDAA5
.text1:00BFDAA5 loc_BFDAA5:                             ; CODE XREF: .text1:00BFDA45j
.text1:00BFDAA5                 mov     edx, [ebp-12Ch]
.text1:00BFDAAB                 push    edx
.text1:00BFDAAC                 call    ds:ReleaseMutex
.text1:00BFDAB2
.text1:00BFDAB2 loc_BFDAB2:                             ; CODE XREF: .text1:00BFD9ADj
.text1:00BFDAB2                 mov     eax, 1
.text1:00BFDAB7                 jmp     loc_BFE164
.text1:00BFDABC ; ---------------------------------------------------------------------------
.text1:00BFDABC
.text1:00BFDABC loc_BFDABC:                             ; CODE XREF: .text1:00BFD8EAj
.text1:00BFDABC                                         ; .text1:00BFD90Fj ...
.text1:00BFDABC                 push    1
.text1:00BFDABE                 call    sub_BFE180
.text1:00BFDAC3                 add     esp, 4
.text1:00BFDAC6                 movzx   eax, byte ptr [ebp-0Dh]
.text1:00BFDACA                 test    eax, eax
.text1:00BFDACC                 jz      loc_BFDE48
.text1:00BFDAD2                 mov     ecx, ds:dword_CB565C
.text1:00BFDAD8                 mov     edx, ds:dword_CB565C
.text1:00BFDADE                 mov     eax, [ecx+40h]
.text1:00BFDAE1                 xor     eax, [edx+80h]
.text1:00BFDAE7                 mov     ecx, ds:dword_CB565C
.text1:00BFDAED                 xor     eax, [ecx+4]
.text1:00BFDAF0                 and     eax, 40h
.text1:00BFDAF3                 jnz     loc_BFDE48
.text1:00BFDAF9                 push    200h
.text1:00BFDAFE                 lea     edx, [ebp-344h]
.text1:00BFDB04                 push    edx
.text1:00BFDB05                 push    offset a_pad64  ; "_PAD64"
.text1:00BFDB0A                 call    ds:GetEnvironmentVariableA
.text1:00BFDB10                 test    eax, eax
.text1:00BFDB12                 jnz     loc_BFDE48
.text1:00BFDB18                 push    0C8h
.text1:00BFDB1D                 push    23h
.text1:00BFDB1F                 lea     eax, [ebp-344h]
.text1:00BFDB25                 push    eax
.text1:00BFDB26                 call    _memset
.text1:00BFDB2B                 add     esp, 0Ch
.text1:00BFDB2E                 mov     byte ptr [ebp-27Ch], 0
.text1:00BFDB35                 mov     dword ptr [ebp-448h], 1
.text1:00BFDB3F                 jmp     short loc_BFDB50
.text1:00BFDB41 ; ---------------------------------------------------------------------------
.text1:00BFDB41
.text1:00BFDB41 loc_BFDB41:                             ; CODE XREF: .text1:00BFDB8Dj
.text1:00BFDB41                 mov     ecx, [ebp-448h]
.text1:00BFDB47                 add     ecx, 1
.text1:00BFDB4A                 mov     [ebp-448h], ecx
.text1:00BFDB50
.text1:00BFDB50 loc_BFDB50:                             ; CODE XREF: .text1:00BFDB3Fj
.text1:00BFDB50                 cmp     dword ptr [ebp-448h], 40h
.text1:00BFDB57                 jg      short loc_BFDB8F
.text1:00BFDB59                 mov     edx, [ebp-448h]
.text1:00BFDB5F                 push    edx
.text1:00BFDB60                 push    offset a_padD   ; "_PAD%d"
.text1:00BFDB65                 push    100h
.text1:00BFDB6A                 lea     eax, [ebp-444h]
.text1:00BFDB70                 push    eax
.text1:00BFDB71                 call    _sprintf_s
.text1:00BFDB76                 add     esp, 10h
.text1:00BFDB79                 lea     ecx, [ebp-344h]
.text1:00BFDB7F                 push    ecx
.text1:00BFDB80                 lea     edx, [ebp-444h]
.text1:00BFDB86                 push    edx
.text1:00BFDB87                 call    ds:SetEnvironmentVariableA
.text1:00BFDB8D                 jmp     short loc_BFDB41
.text1:00BFDB8F ; ---------------------------------------------------------------------------
.text1:00BFDB8F
.text1:00BFDB8F loc_BFDB8F:                             ; CODE XREF: .text1:00BFDB57j
.text1:00BFDB8F                 mov     eax, ds:dword_CB565C
.text1:00BFDB94                 mov     ecx, ds:dword_CB565C
.text1:00BFDB9A                 mov     edx, [eax+40h]
.text1:00BFDB9D                 xor     edx, [ecx+80h]
.text1:00BFDBA3                 mov     eax, ds:dword_CB565C
.text1:00BFDBA8                 xor     edx, [eax+4]
.text1:00BFDBAB                 and     edx, 10h
.text1:00BFDBAE                 jnz     loc_BFDE48
.text1:00BFDBB4                 lea     ecx, [ebp-624h]
.text1:00BFDBBA                 push    ecx
.text1:00BFDBBB                 call    sub_C2B0D0
.text1:00BFDBC0                 add     esp, 4
.text1:00BFDBC3                 mov     dword ptr [ebp-4], 0
.text1:00BFDBCA                 lea     edx, [ebp-708h]
.text1:00BFDBD0                 push    edx
.text1:00BFDBD1                 call    sub_BE4CB0
.text1:00BFDBD6                 add     esp, 4
.text1:00BFDBD9                 mov     [ebp-7F8h], eax
.text1:00BFDBDF                 mov     eax, [ebp-7F8h]
.text1:00BFDBE5                 mov     [ebp-7FCh], eax
.text1:00BFDBEB                 mov     byte ptr [ebp-4], 1
.text1:00BFDBEF                 mov     ecx, [ebp-7FCh]
.text1:00BFDBF5                 push    ecx
.text1:00BFDBF6                 lea     ecx, [ebp-4ACh]
.text1:00BFDBFC                 call    sub_C25300
.text1:00BFDC01                 mov     byte ptr [ebp-4], 3
.text1:00BFDC05                 lea     ecx, [ebp-708h]
.text1:00BFDC0B                 call    sub_BEB1D0
.text1:00BFDC10                 cmp     ds:dword_CB53F8, 1
.text1:00BFDC17                 jnz     short loc_BFDC45
.text1:00BFDC19                 cmp     dword ptr [ebp-618h], 0
.text1:00BFDC20                 jnz     short loc_BFDC45
.text1:00BFDC22                 lea     ecx, [ebp-4ACh]
.text1:00BFDC28                 call    sub_C25FC0
.text1:00BFDC2D                 movzx   edx, al
.text1:00BFDC30                 test    edx, edx
.text1:00BFDC32                 jnz     short loc_BFDC45
.text1:00BFDC34                 lea     ecx, [ebp-4ACh]
.text1:00BFDC3A                 call    sub_C25B60
.text1:00BFDC3F                 mov     [ebp-618h], eax
.text1:00BFDC45
.text1:00BFDC45 loc_BFDC45:                             ; CODE XREF: .text1:00BFDC17j
.text1:00BFDC45                                         ; .text1:00BFDC20j ...
.text1:00BFDC45                 push    0
.text1:00BFDC47                 lea     eax, [ebp-644h]
.text1:00BFDC4D                 push    eax
.text1:00BFDC4E                 call    sub_C2A9B0
.text1:00BFDC53                 add     esp, 8
.text1:00BFDC56                 mov     byte ptr [ebp-4], 4
.text1:00BFDC5A                 lea     ecx, [ebp-644h]
.text1:00BFDC60                 call    sub_BEB260
.text1:00BFDC65                 movzx   ecx, al
.text1:00BFDC68                 test    ecx, ecx
.text1:00BFDC6A                 jz      short loc_BFDCB1
.text1:00BFDC6C                 mov     dword ptr [ebp-70Ch], 0
.text1:00BFDC76                 mov     byte ptr [ebp-4], 3
.text1:00BFDC7A                 lea     ecx, [ebp-644h]
.text1:00BFDC80                 call    sub_BEB1D0
.text1:00BFDC85                 mov     byte ptr [ebp-4], 0
.text1:00BFDC89                 lea     ecx, [ebp-4ACh]
.text1:00BFDC8F                 call    sub_BE5650
.text1:00BFDC94                 mov     dword ptr [ebp-4], 0FFFFFFFFh
.text1:00BFDC9B                 lea     ecx, [ebp-624h]
.text1:00BFDCA1                 call    sub_BEAC60
.text1:00BFDCA6                 mov     eax, [ebp-70Ch]
.text1:00BFDCAC                 jmp     loc_BFE164
.text1:00BFDCB1 ; ---------------------------------------------------------------------------
.text1:00BFDCB1
.text1:00BFDCB1 loc_BFDCB1:                             ; CODE XREF: .text1:00BFDC6Aj
.text1:00BFDCB1                 lea     edx, [ebp-78Ch]
.text1:00BFDCB7                 push    edx
.text1:00BFDCB8                 call    sub_C2B2F0
.text1:00BFDCBD                 add     esp, 4
.text1:00BFDCC0                 mov     [ebp-800h], eax
.text1:00BFDCC6                 mov     eax, [ebp-800h]
.text1:00BFDCCC                 mov     [ebp-804h], eax
.text1:00BFDCD2                 mov     byte ptr [ebp-4], 5
.text1:00BFDCD6                 mov     ecx, [ebp-804h]
.text1:00BFDCDC                 push    ecx
.text1:00BFDCDD                 lea     ecx, [ebp-770h]
.text1:00BFDCE3                 call    sub_BE55D0
.text1:00BFDCE8                 mov     byte ptr [ebp-4], 6
.text1:00BFDCEC                 lea     ecx, [ebp-644h]
.text1:00BFDCF2                 call    sub_BEB220
.text1:00BFDCF7                 push    eax
.text1:00BFDCF8                 lea     ecx, [ebp-7ECh]
.text1:00BFDCFE                 call    sub_BE55D0
.text1:00BFDD03                 mov     byte ptr [ebp-4], 7
.text1:00BFDD07                 lea     edx, [ebp-4BCh]
.text1:00BFDD0D                 push    edx
.text1:00BFDD0E                 lea     eax, [ebp-624h]
.text1:00BFDD14                 push    eax
.text1:00BFDD15                 push    offset unk_CB63B8
.text1:00BFDD1A                 push    offset unk_CB63B8
.text1:00BFDD1F                 push    0
.text1:00BFDD21                 push    0
.text1:00BFDD23                 push    0
.text1:00BFDD25                 push    0
.text1:00BFDD27                 lea     ecx, [ebp-770h]
.text1:00BFDD2D                 push    ecx
.text1:00BFDD2E                 lea     edx, [ebp-7ECh]
.text1:00BFDD34                 push    edx
.text1:00BFDD35                 call    sub_C2ABD0
.text1:00BFDD3A                 add     esp, 28h
.text1:00BFDD3D                 neg     eax
.text1:00BFDD3F                 sbb     eax, eax
.text1:00BFDD41                 add     eax, 1
.text1:00BFDD44                 mov     [ebp-70Dh], al
.text1:00BFDD4A                 mov     byte ptr [ebp-4], 6
.text1:00BFDD4E                 lea     ecx, [ebp-7ECh]
.text1:00BFDD54                 call    sub_BE5650
.text1:00BFDD59                 mov     byte ptr [ebp-4], 5
.text1:00BFDD5D                 lea     ecx, [ebp-770h]
.text1:00BFDD63                 call    sub_BE5650
.text1:00BFDD68                 mov     byte ptr [ebp-4], 4
.text1:00BFDD6C                 lea     ecx, [ebp-78Ch]
.text1:00BFDD72                 call    sub_BF5F60
.text1:00BFDD77                 movzx   eax, byte ptr [ebp-70Dh]
.text1:00BFDD7E                 test    eax, eax
.text1:00BFDD80                 jz      short loc_BFDDF1
.text1:00BFDD82                 mov     ds:dword_CB5538, 6
.text1:00BFDD8C                 call    ds:GetLastError
.text1:00BFDD92                 push    eax
.text1:00BFDD93                 push    offset aLocationXebErr ; "(Location XEB, error code %d)"
.text1:00BFDD98                 push    100h
.text1:00BFDD9D                 push    offset unk_CB5540
.text1:00BFDDA2                 call    _sprintf_s
.text1:00BFDDA7                 add     esp, 10h
.text1:00BFDDAA                 mov     dword ptr [ebp-7F0h], 0
.text1:00BFDDB4                 mov     byte ptr [ebp-4], 3
.text1:00BFDDB8                 lea     ecx, [ebp-644h]
.text1:00BFDDBE                 call    sub_BEB1D0
.text1:00BFDDC3                 mov     byte ptr [ebp-4], 0
.text1:00BFDDC7                 lea     ecx, [ebp-4ACh]
.text1:00BFDDCD                 call    sub_BE5650
.text1:00BFDDD2                 mov     dword ptr [ebp-4], 0FFFFFFFFh
.text1:00BFDDD9                 lea     ecx, [ebp-624h]
.text1:00BFDDDF                 call    sub_BEAC60
.text1:00BFDDE4                 mov     eax, [ebp-7F0h]
.text1:00BFDDEA                 jmp     loc_BFE164
.text1:00BFDDEF ; ---------------------------------------------------------------------------
.text1:00BFDDEF                 jmp     short loc_BFDE03
.text1:00BFDDF1 ; ---------------------------------------------------------------------------
.text1:00BFDDF1
.text1:00BFDDF1 loc_BFDDF1:                             ; CODE XREF: .text1:00BFDD80j
.text1:00BFDDF1                 push    2710h
.text1:00BFDDF6                 mov     ecx, [ebp-4BCh]
.text1:00BFDDFC                 push    ecx
.text1:00BFDDFD                 call    ds:WaitForInputIdle
.text1:00BFDE03
.text1:00BFDE03 loc_BFDE03:                             ; CODE XREF: .text1:00BFDDEFj
.text1:00BFDE03                 mov     dword ptr [ebp-7F4h], 1
.text1:00BFDE0D                 mov     byte ptr [ebp-4], 3
.text1:00BFDE11                 lea     ecx, [ebp-644h]
.text1:00BFDE17                 call    sub_BEB1D0
.text1:00BFDE1C                 mov     byte ptr [ebp-4], 0
.text1:00BFDE20                 lea     ecx, [ebp-4ACh]
.text1:00BFDE26                 call    sub_BE5650
.text1:00BFDE2B                 mov     dword ptr [ebp-4], 0FFFFFFFFh
.text1:00BFDE32                 lea     ecx, [ebp-624h]
.text1:00BFDE38                 call    sub_BEAC60
.text1:00BFDE3D                 mov     eax, [ebp-7F4h]
.text1:00BFDE43                 jmp     loc_BFE164
.text1:00BFDE48 ; ---------------------------------------------------------------------------
.text1:00BFDE48
.text1:00BFDE48 loc_BFDE48:                             ; CODE XREF: .text1:00BFDACCj
.text1:00BFDE48                                         ; .text1:00BFDAF3j ...
.text1:00BFDE48                 mov     edx, ds:dword_CB565C
.text1:00BFDE4E                 mov     eax, ds:dword_CB565C
.text1:00BFDE53                 mov     ecx, [edx+40h]
.text1:00BFDE56                 xor     ecx, [eax+80h]
.text1:00BFDE5C                 mov     edx, ds:dword_CB565C
.text1:00BFDE62                 xor     ecx, [edx+4]
.text1:00BFDE65                 and     ecx, 10h
.text1:00BFDE68                 jz      loc_BFE0C6
.text1:00BFDE6E                 mov     eax, ds:dword_CB565C
.text1:00BFDE73                 mov     ecx, ds:dword_CB565C
.text1:00BFDE79                 mov     edx, [eax+50h]
.text1:00BFDE7C                 xor     edx, [ecx+70h]
.text1:00BFDE7F                 push    edx
.text1:00BFDE80                 call    ds:GetCurrentProcessId
.text1:00BFDE86                 push    eax
.text1:00BFDE87                 push    offset aXDa08x  ; "%X::DA%08X"
.text1:00BFDE8C                 push    104h
.text1:00BFDE91                 lea     eax, [ebp-124h]
.text1:00BFDE97                 push    eax
.text1:00BFDE98                 call    _sprintf_s
.text1:00BFDE9D                 add     esp, 14h
.text1:00BFDEA0                 lea     ecx, [ebp-124h]
.text1:00BFDEA6                 push    ecx
.text1:00BFDEA7                 push    0
.text1:00BFDEA9                 push    1F0001h
.text1:00BFDEAE                 call    ds:OpenMutexA
.text1:00BFDEB4                 test    eax, eax
.text1:00BFDEB6                 jnz     loc_BFE0C4
.text1:00BFDEBC                 push    1
.text1:00BFDEBE                 call    ds:GetCurrentThread
.text1:00BFDEC4                 push    eax
.text1:00BFDEC5                 call    ds:SetThreadPriority
.text1:00BFDECB                 mov     byte ptr [ebp-645h], 0
.text1:00BFDED2                 push    offset aKernel32 ; "Kernel32"
.text1:00BFDED7                 call    ds:LoadLibraryA
.text1:00BFDEDD                 mov     [ebp-64Ch], eax
.text1:00BFDEE3                 cmp     dword ptr [ebp-64Ch], 0
.text1:00BFDEEA                 jz      short loc_BFDF1E
.text1:00BFDEEC                 push    offset aIsdebuggerpres ; "IsDebuggerPresent"
.text1:00BFDEF1                 mov     edx, [ebp-64Ch]
.text1:00BFDEF7                 push    edx
.text1:00BFDEF8                 call    ds:GetProcAddress
.text1:00BFDEFE                 mov     [ebp-6E8h], eax
.text1:00BFDF04                 cmp     dword ptr [ebp-6E8h], 0
.text1:00BFDF0B                 jz      short loc_BFDF1E
.text1:00BFDF0D                 call    dword ptr [ebp-6E8h]
.text1:00BFDF13                 test    eax, eax
.text1:00BFDF15                 jz      short loc_BFDF1E
.text1:00BFDF17                 mov     byte ptr [ebp-645h], 1
.text1:00BFDF1E
.text1:00BFDF1E loc_BFDF1E:                             ; CODE XREF: .text1:00BFDEEAj
.text1:00BFDF1E                                         ; .text1:00BFDF0Bj ...
.text1:00BFDF1E                 mov     dword ptr [ebp-6E4h], 94h
.text1:00BFDF28                 lea     eax, [ebp-6E4h]
.text1:00BFDF2E                 push    eax
.text1:00BFDF2F                 call    ds:GetVersionExA
.text1:00BFDF35                 cmp     dword ptr [ebp-6D4h], 2
.text1:00BFDF3C                 jnz     short loc_BFDF9F
.text1:00BFDF3E                 push    ecx
.text1:00BFDF3F                 bswap   ecx
.text1:00BFDF41                 not     ecx
.text1:00BFDF43                 push    eax
.text1:00BFDF44                 not     eax
.text1:00BFDF46                 mov     eax, 6C65696Dh
.text1:00BFDF4B                 xchg    eax, ecx
.text1:00BFDF4C                 mov     ecx, 0DEADC0DEh
.text1:00BFDF51                 xchg    eax, ecx
.text1:00BFDF52                 not     eax
.text1:00BFDF54                 pop     eax
.text1:00BFDF55                 not     ecx
.text1:00BFDF57                 pop     ecx
.text1:00BFDF58                 pushf
.text1:00BFDF59                 pusha
.text1:00BFDF5A                 xor     ebx, ebx
.text1:00BFDF5C
.text1:00BFDF5C loc_BFDF5C:                             ; CODE XREF: .text1:loc_BFDFD4j
.text1:00BFDF5C                 jz      short loc_BFDF61
.text1:00BFDF5E
.text1:00BFDF5E loc_BFDF5E:                             ; CODE XREF: .text1:00BFDF7Fj
.text1:00BFDF5E                 jmp     short near ptr loc_BFDF81+1
.text1:00BFDF5E ; ---------------------------------------------------------------------------
.text1:00BFDF60                 db 0EBh
.text1:00BFDF61 ; ---------------------------------------------------------------------------
.text1:00BFDF61
.text1:00BFDF61 loc_BFDF61:                             ; CODE XREF: .text1:loc_BFDF5Cj
.text1:00BFDF61                 xor     ebx, ebx
.text1:00BFDF63                 jz      short $+2
.text1:00BFDF65                 jmp     short loc_BFDF74
.text1:00BFDF65 ; ---------------------------------------------------------------------------
.text1:00BFDF67                 db 0B8h
.text1:00BFDF68                 db 0EBh, 0Fh
.text1:00BFDF6A ; ---------------------------------------------------------------------------
.text1:00BFDF6A
.text1:00BFDF6A loc_BFDF6A:                             ; CODE XREF: .text1:00BFDF76j
.text1:00BFDF6A                 mov     ecx, 34F9C987h
.text1:00BFDF6F                 nop
.text1:00BFDF70                 stc
.text1:00BFDF71                 jz      short loc_BFDF78
.text1:00BFDF71 ; ---------------------------------------------------------------------------
.text1:00BFDF73                 db 0EBh
.text1:00BFDF74 ; ---------------------------------------------------------------------------
.text1:00BFDF74
.text1:00BFDF74 loc_BFDF74:                             ; CODE XREF: .text1:00BFDF65j
.text1:00BFDF74                 xor     eax, eax
.text1:00BFDF76                 jz      short loc_BFDF6A
.text1:00BFDF78
.text1:00BFDF78 loc_BFDF78:                             ; CODE XREF: .text1:00BFDF71j
.text1:00BFDF78                 mov     eax, 4840C987h
.text1:00BFDF7D                 test    eax, eax
.text1:00BFDF7F                 jnz     short loc_BFDF5E
.text1:00BFDF81
.text1:00BFDF81 loc_BFDF81:                             ; CODE XREF: .text1:loc_BFDF5Ej
.text1:00BFDF81                 jmp     near ptr 93267CE7h
.text1:00BFDF86 ; ---------------------------------------------------------------------------
.text1:00BFDF86                 xchg    ax, dx
.text1:00BFDF88                 mov     eax, eax
.text1:00BFDF8A                 mov     eax, large fs:30h
.text1:00BFDF90
.text1:00BFDF90 loc_BFDF90:                             ; CODE XREF: .text1:00BFDFFEj
.text1:00BFDF90                 movzx   eax, byte ptr [eax+2]
.text1:00BFDF94                 or      al, al
.text1:00BFDF96                 jnz     short loc_BFDFB6
.text1:00BFDF98                 jmp     loc_BFE027
.text1:00BFDF9D ; ---------------------------------------------------------------------------
.text1:00BFDF9D                 jmp     short loc_BFDFB6
.text1:00BFDF9F ; ---------------------------------------------------------------------------
.text1:00BFDF9F
.text1:00BFDF9F loc_BFDF9F:                             ; CODE XREF: .text1:00BFDF3Cj
.text1:00BFDF9F                 jo      short loc_BFDFA8
.text1:00BFDFA1                 jl      short loc_BFDFA6
.text1:00BFDFA3
.text1:00BFDFA3 loc_BFDFA3:                             ; CODE XREF: .text1:loc_BFDFA6j
.text1:00BFDFA3                                         ; .text1:loc_BFDFA8j
.text1:00BFDFA3                 jmp     short loc_BFDFAA
.text1:00BFDFA3 ; ---------------------------------------------------------------------------
.text1:00BFDFA5                 db 0E8h
.text1:00BFDFA6 ; ---------------------------------------------------------------------------
.text1:00BFDFA6
.text1:00BFDFA6 loc_BFDFA6:                             ; CODE XREF: .text1:00BFDFA1j
.text1:00BFDFA6                 jz      short loc_BFDFA3
.text1:00BFDFA8
.text1:00BFDFA8 loc_BFDFA8:                             ; CODE XREF: .text1:loc_BFDF9Fj
.text1:00BFDFA8                 jmp     short loc_BFDFA3
.text1:00BFDFAA ; ---------------------------------------------------------------------------
.text1:00BFDFAA
.text1:00BFDFAA loc_BFDFAA:                             ; CODE XREF: .text1:loc_BFDFA3j
.text1:00BFDFAA                 mov     eax, large fs:20h
.text1:00BFDFB0                 or      eax, eax
.text1:00BFDFB2                 jnz     short loc_BFDFB6
.text1:00BFDFB4                 jmp     short loc_BFE027
.text1:00BFDFB6 ; ---------------------------------------------------------------------------
.text1:00BFDFB6
.text1:00BFDFB6 loc_BFDFB6:                             ; CODE XREF: .text1:00BFDF96j
.text1:00BFDFB6                                         ; .text1:00BFDF9Dj ...
.text1:00BFDFB6                 pusha
.text1:00BFDFB7                 xor     eax, eax
.text1:00BFDFB9                 jnz     short loc_BFDFBD
.text1:00BFDFBB                 jmp     short loc_BFDFD2
.text1:00BFDFBD ; ---------------------------------------------------------------------------
.text1:00BFDFBD
.text1:00BFDFBD loc_BFDFBD:                             ; CODE XREF: .text1:00BFDFB9j
.text1:00BFDFBD                 jmp     short loc_BFDFF2
.text1:00BFDFBD ; ---------------------------------------------------------------------------
.text1:00BFDFBF                 db 0C0h
.text1:00BFDFC0                 dd 0C7A1875h
.text1:00BFDFC4 ; ---------------------------------------------------------------------------
.text1:00BFDFC4
.text1:00BFDFC4 loc_BFDFC4:                             ; CODE XREF: .text1:loc_BFDFD2j
.text1:00BFDFC4                 jo      short loc_BFDFD4
.text1:00BFDFC6                 jmp     short near ptr loc_BFDFD4+1
.text1:00BFDFC6 ; ---------------------------------------------------------------------------
.text1:00BFDFC8                 dd 790E72E8h, 15FFF1h
.text1:00BFDFD0                 db 79h, 9
.text1:00BFDFD2 ; ---------------------------------------------------------------------------
.text1:00BFDFD2
.text1:00BFDFD2 loc_BFDFD2:                             ; CODE XREF: .text1:00BFDFBBj
.text1:00BFDFD2                 jz      short loc_BFDFC4
.text1:00BFDFD4
.text1:00BFDFD4 loc_BFDFD4:                             ; CODE XREF: .text1:loc_BFDFC4j
.text1:00BFDFD4                                         ; .text1:00BFDFC6j
.text1:00BFDFD4                 jmp     short near ptr loc_BFDF5C+1
.text1:00BFDFD6 ; ---------------------------------------------------------------------------
.text1:00BFDFD6                 fstp    tbyte ptr [edx-10h]
.text1:00BFDFD9                 mov     al, ds:5C66133h
.text1:00BFDFDE                 and     al, 54h
.text1:00BFDFE0                 retf
.text1:00BFDFE0 ; ---------------------------------------------------------------------------
.text1:00BFDFE1                 align 2
.text1:00BFDFE2                 dw 5001h
.text1:00BFDFE4                 dd 0C80FD0F7h, 9C007358h
.text1:00BFDFEC                 db 60h, 0EBh
.text1:00BFDFEE ; ---------------------------------------------------------------------------
.text1:00BFDFEE
.text1:00BFDFEE loc_BFDFEE:                             ; CODE XREF: .text1:00BFE01Aj
.text1:00BFDFEE                 sub     edx, edx
.text1:00BFDFF0                 jo      short loc_BFE000
.text1:00BFDFF2
.text1:00BFDFF2 loc_BFDFF2:                             ; CODE XREF: .text1:loc_BFDFBDj
.text1:00BFDFF2                                         ; .text1:00BFE013j
.text1:00BFDFF2                 jmp     short loc_BFE011
.text1:00BFDFF4 ; ---------------------------------------------------------------------------
.text1:00BFDFF4
.text1:00BFDFF4 loc_BFDFF4:                             ; CODE XREF: .text1:loc_BFE011j
.text1:00BFDFF4                 xor     ecx, ecx
.text1:00BFDFF6
.text1:00BFDFF6 loc_BFDFF6:                             ; CODE XREF: .text1:00BFE005j
.text1:00BFDFF6                 jz      short $+2
.text1:00BFDFF8                 jmp     short loc_BFE00A
.text1:00BFDFFA ; ---------------------------------------------------------------------------
.text1:00BFDFFA
.text1:00BFDFFA loc_BFDFFA:                             ; CODE XREF: .text1:00BFE00Ej
.text1:00BFDFFA                 stc
.text1:00BFDFFB                 xor     ecx, 3
.text1:00BFDFFE                 jz      short loc_BFDF90
.text1:00BFE000
.text1:00BFE000 loc_BFE000:                             ; CODE XREF: .text1:00BFDFF0j
.text1:00BFE000                 jmp     short loc_BFE007
.text1:00BFE000 ; ---------------------------------------------------------------------------
.text1:00BFE002                 db 0B9h
.text1:00BFE003 ; ---------------------------------------------------------------------------
.text1:00BFE003
.text1:00BFE003 loc_BFE003:                             ; CODE XREF: .text1:loc_BFE007j
.text1:00BFE003                 jmp     short loc_BFE015
.text1:00BFE005 ; ---------------------------------------------------------------------------
.text1:00BFE005                 jz      short loc_BFDFF6
.text1:00BFE007
.text1:00BFE007 loc_BFE007:                             ; CODE XREF: .text1:loc_BFE000j
.text1:00BFE007                 jnb     short loc_BFE003
.text1:00BFE007 ; ---------------------------------------------------------------------------
.text1:00BFE009                 db 0F2h
.text1:00BFE00A ; ---------------------------------------------------------------------------
.text1:00BFE00A
.text1:00BFE00A loc_BFE00A:                             ; CODE XREF: .text1:00BFDFF8j
.text1:00BFE00A                 sbb     bl, bl
.text1:00BFE00C                 xor     ebx, ebx
.text1:00BFE00E                 jmp     short loc_BFDFFA
.text1:00BFE00E ; ---------------------------------------------------------------------------
.text1:00BFE010                 db 0E9h
.text1:00BFE011 ; ---------------------------------------------------------------------------
.text1:00BFE011
.text1:00BFE011 loc_BFE011:                             ; CODE XREF: .text1:loc_BFDFF2j
.text1:00BFE011                 jmp     short loc_BFDFF4
.text1:00BFE013 ; ---------------------------------------------------------------------------
.text1:00BFE013                 jmp     short loc_BFDFF2
.text1:00BFE015 ; ---------------------------------------------------------------------------
.text1:00BFE015
.text1:00BFE015 loc_BFE015:                             ; CODE XREF: .text1:loc_BFE003j
.text1:00BFE015                 repne sbb al, 0DBh
.text1:00BFE018                 jmp     short loc_BFE01D
.text1:00BFE01A ; ---------------------------------------------------------------------------
.text1:00BFE01A                 jmp     short loc_BFDFEE
.text1:00BFE01A ; ---------------------------------------------------------------------------
.text1:00BFE01C                 db 0B8h
.text1:00BFE01D ; ---------------------------------------------------------------------------
.text1:00BFE01D
.text1:00BFE01D loc_BFE01D:                             ; CODE XREF: .text1:00BFE018j
.text1:00BFE01D                 popa
.text1:00BFE01E                 popf
.text1:00BFE01F                 bswap   eax
.text1:00BFE021                 not     ecx
.text1:00BFE023                 bswap   eax
.text1:00BFE025                 not     ecx
.text1:00BFE027
.text1:00BFE027 loc_BFE027:                             ; CODE XREF: .text1:00BFDF98j
.text1:00BFE027                                         ; .text1:00BFDFB4j
.text1:00BFE027                 movzx   ecx, byte ptr [ebp-645h]
.text1:00BFE02E                 test    ecx, ecx
.text1:00BFE030                 jz      short loc_BFE065
.text1:00BFE032                 call    ds:GetCurrentProcessId
.text1:00BFE038                 push    eax
.text1:00BFE039                 push    offset Format   ; "%X:DAF"
.text1:00BFE03E                 push    104h
.text1:00BFE043                 lea     edx, [ebp-124h]
.text1:00BFE049                 push    edx
.text1:00BFE04A                 call    _sprintf_s
.text1:00BFE04F                 add     esp, 10h
.text1:00BFE052                 lea     eax, [ebp-124h]
.text1:00BFE058                 push    eax
.text1:00BFE059                 push    0
.text1:00BFE05B                 push    0
.text1:00BFE05D                 call    ds:CreateMutexA
.text1:00BFE063                 jmp     short loc_BFE0C4
.text1:00BFE065 ; ---------------------------------------------------------------------------
.text1:00BFE065
.text1:00BFE065 loc_BFE065:                             ; CODE XREF: .text1:00BFE030j
.text1:00BFE065                 cmp     ds:dword_CB53F8, 0
.text1:00BFE06C                 setz    cl
.text1:00BFE06F                 push    ecx
.text1:00BFE070                 call    loc_BE9AB0
.text1:00BFE075                 add     esp, 4
.text1:00BFE078                 movzx   edx, al
.text1:00BFE07B                 test    edx, edx
.text1:00BFE07D                 jnz     short loc_BFE0B0
.text1:00BFE07F                 mov     ds:dword_CB5538, 6
.text1:00BFE089                 call    ds:GetLastError
.text1:00BFE08F                 push    eax
.text1:00BFE090                 push    offset aErrorCodeD ; "(Error code %d)"
.text1:00BFE095                 push    100h
.text1:00BFE09A                 push    offset unk_CB5540
.text1:00BFE09F                 call    _sprintf_s
.text1:00BFE0A4                 add     esp, 10h
.text1:00BFE0A7                 xor     eax, eax
.text1:00BFE0A9                 jmp     loc_BFE164
.text1:00BFE0AE ; ---------------------------------------------------------------------------
.text1:00BFE0AE                 jmp     short loc_BFE0C4
.text1:00BFE0B0 ; ---------------------------------------------------------------------------
.text1:00BFE0B0
.text1:00BFE0B0 loc_BFE0B0:                             ; CODE XREF: .text1:00BFE07Dj
.text1:00BFE0B0                 push    0
.text1:00BFE0B2                 call    sub_BFE180
.text1:00BFE0B7                 add     esp, 4
.text1:00BFE0BA                 mov     eax, 1
.text1:00BFE0BF                 jmp     loc_BFE164
.text1:00BFE0C4 ; ---------------------------------------------------------------------------
.text1:00BFE0C4
.text1:00BFE0C4 loc_BFE0C4:                             ; CODE XREF: .text1:00BFDEB6j
.text1:00BFE0C4                                         ; .text1:00BFE063j ...
.text1:00BFE0C4                 jmp     short loc_BFE0EC
.text1:00BFE0C6 ; ---------------------------------------------------------------------------
.text1:00BFE0C6
.text1:00BFE0C6 loc_BFE0C6:                             ; CODE XREF: .text1:00BFDE68j
.text1:00BFE0C6                 mov     eax, ds:dword_CB565C
.text1:00BFE0CB                 mov     ecx, ds:dword_CB565C
.text1:00BFE0D1                 mov     edx, [eax+8]
.text1:00BFE0D4                 xor     edx, [ecx+80h]
.text1:00BFE0DA                 mov     eax, ds:dword_CB565C
.text1:00BFE0DF                 xor     edx, [eax+4]
.text1:00BFE0E2                 and     edx, 2
.text1:00BFE0E5                 jz      short loc_BFE0EC
.text1:00BFE0E7                 call    sub_C1D8E0
.text1:00BFE0EC
.text1:00BFE0EC loc_BFE0EC:                             ; CODE XREF: .text1:loc_BFE0C4j
.text1:00BFE0EC                                         ; .text1:00BFE0E5j
.text1:00BFE0EC                 call    sub_BFC550
.text1:00BFE0F1                 mov     [ebp-128h], eax
.text1:00BFE0F7                 push    0
.text1:00BFE0F9                 call    sub_BFE180
.text1:00BFE0FE                 add     esp, 4
.text1:00BFE101                 push    0
.text1:00BFE103                 call    ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z ; _set_new_handler(int (*)(uint))
.text1:00BFE108                 add     esp, 4
.text1:00BFE10B                 cmp     dword ptr [ebp-128h], 1
.text1:00BFE112                 jnz     short loc_BFE128
.text1:00BFE114                 push    offset dword_CB53F8
.text1:00BFE119                 call    ds:dword_CB5420
.text1:00BFE11F                 add     esp, 4
.text1:00BFE122                 mov     [ebp-128h], eax
.text1:00BFE128
.text1:00BFE128 loc_BFE128:                             ; CODE XREF: .text1:00BFE112j
.text1:00BFE128                 push    offset sub_BFC520
.text1:00BFE12D                 call    ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z ; _set_new_handler(int (*)(uint))
.text1:00BFE132                 add     esp, 4
.text1:00BFE135                 cmp     ds:dword_CB541C, 0
.text1:00BFE13C                 jz      short loc_BFE144
.text1:00BFE13E                 call    ds:dword_CB541C
.text1:00BFE144
.text1:00BFE144 loc_BFE144:                             ; CODE XREF: .text1:00BFE13Cj
.text1:00BFE144                 cmp     ds:dword_CB5530, 0
.text1:00BFE14B                 jz      short loc_BFE15E
.text1:00BFE14D                 push    0
.text1:00BFE14F                 push    0
.text1:00BFE151                 mov     ecx, ds:dword_CB552C
.text1:00BFE157                 push    ecx
.text1:00BFE158                 call    ds:dword_CB5530
.text1:00BFE15E
.text1:00BFE15E loc_BFE15E:                             ; CODE XREF: .text1:00BFE14Bj
.text1:00BFE15E                 mov     eax, [ebp-128h]
.text1:00BFE164
.text1:00BFE164 loc_BFE164:                             ; CODE XREF: .text1:00BFDAB7j
.text1:00BFE164                                         ; .text1:00BFDCACj ...
.text1:00BFE164                 mov     ecx, [ebp-0Ch]
.text1:00BFE167                 mov     large fs:0, ecx
.text1:00BFE16E                 pop     ecx
.text1:00BFE16F                 mov     ecx, [ebp-18h]
.text1:00BFE172                 xor     ecx, ebp
.text1:00BFE174                 call    sub_C4AAD2
.text1:00BFE179                 mov     esp, ebp
.text1:00BFE17B                 pop     ebp
.text1:00BFE17C                 retn
阅读(2039) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~