joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4df9e0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
mov eax, dword [ebp + 8]
cmp byte [eax - 1], 0
je 0x4df9f4
mov ebx, 3
jmp 0x4df9f9
mov ebx, 1
push ebx
push 0
push 0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 8]
call fcn.00405958
push eax
push 0x4dfa24
mov eax, dword [0x4fc404]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.shell32.dll_ShellExecuteA
pop ebx
pop ebp
ret

Function at 0x4dfa2c
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa0
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 1], cl
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
call fcn.00405948
mov eax, dword [ebp - 0xc]
call fcn.00405948
lea esi, [ebp - 0x48]
xor eax, eax
push ebp
push 0x4dfbed
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
je 0x4dfbc5
lea edx, [ebp - 0x4c]
mov eax, dword [ebp - 8]
call fcn.0048982c
mov edx, dword [ebp - 0x4c]
lea eax, [ebp - 8]
call fcn.00405520
lea edx, [ebp - 0x50]
mov eax, dword [ebp - 0xc]
call fcn.0048982c
mov edx, dword [ebp - 0x50]
lea eax, [ebp - 0xc]
call fcn.00405520
lea eax, [ebp - 0x54]
push eax
mov ecx, 7
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004059b8
mov eax, dword [ebp - 0x54]
mov edx, 0x4dfc04
call fcn.004058a4
je 0x4dfb17
lea eax, [ebp - 0x58]
push eax
mov ecx, 8
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004059b8
mov eax, dword [ebp - 0x58]
mov edx, 0x4dfc14
call fcn.004058a4
je 0x4dfb17
lea eax, [ebp - 0x5c]
push eax
mov ecx, 6
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.004059b8
mov eax, dword [ebp - 0x5c]
mov edx, 0x4dfc28
call fcn.004058a4
jne 0x4dfb28
mov eax, dword [0x4fc174]
cmp dword [eax], 4
jg 0x4dfb28
push ebp
call fcn.004df9e0
pop ecx
mov eax, esi
xor ecx, ecx
mov edx, 0x3c
call fcn.00403ba0
mov dword [esi], 0x3c
mov dword [esi + 4], 0x40
mov eax, 0x4dfc30
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 8]
call fcn.00405958
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0xc]
call fcn.00405958
mov dword [esi + 0x14], eax
lea eax, [ebp - 0x60]
call fcn.0040ceac
mov eax, dword [ebp - 0x60]
call fcn.00405958
mov dword [esi + 0x18], eax
cmp byte [ebp - 1], 0
je 0x4dfb83
mov dword [esi + 0x1c], 3
jmp 0x4dfb8a
mov dword [esi + 0x1c], 1
or eax, 0xffffffff
call fcn.00403bc0
mov dword [esi + 8], eax
mov ebx, dword [esi + 8]
test ebx, ebx
jbe 0x4dfb8a
push ebx
call sub.user32.dll_IsWindow
test eax, eax
jne 0x4dfb8a
push esi
call sub.shell32.dll_ShellExecuteExA
test eax, eax
je 0x4dfbc5
cmp byte [ebp + 8], 0
je 0x4dfbc5
mov eax, dword [esi + 0x38]
test eax, eax
je 0x4dfbc5
push 0xffffffffffffffff
push eax
call sub.kernel32.dll_WaitForSingleObject
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dfbf4
lea eax, [ebp - 0x60]
mov edx, 6
call fcn.004054ac
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.004054ac
ret
Function at 0x4dfc38
Capabilities:
Compare security identifiers

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff0
mov eax, dword [0x4fc6a0]
cmp dword [eax], 2
je 0x4dfc51
mov byte [esp], 1
jmp 0x4dfd26
mov byte [esp], 0
lea eax, [esp + 4]
push eax
push 0xffffffffffffffff
push 8
call sub.kernel32.dll_GetCurrentThread
push eax
call sub.advapi32.dll_OpenThreadToken
mov ebx, eax
test ebx, ebx
jne 0x4dfc8f
call sub.kernel32.dll_GetLastError_1
cmp eax, 0x3f0
jne 0x4dfc8f
lea eax, [esp + 4]
push eax
push 8
call sub.kernel32.dll_GetCurrentProcess
push eax
call sub.advapi32.dll_OpenProcessToken
mov ebx, eax
test ebx, ebx
je 0x4dfd26
mov eax, 0x400
call fcn.00402e98
mov esi, eax
lea eax, [esp + 8]
push eax
push 0x400
push esi
push 2
mov eax, dword [esp + 0x14]
push eax
call sub.advapi32.dll_GetTokenInformation
mov ebx, eax
mov eax, dword [esp + 4]
push eax
call sub.kernel32.dll_CloseHandle_1
test ebx, ebx
je 0x4dfd1f
lea eax, [esp + 0xc]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0x220
push 0x20
push 2
push 0x4fb9b4
call sub.advapi32.dll_AllocateAndInitializeSid
mov ebx, dword [esi]
dec ebx
test ebx, ebx
jl 0x4dfd15
inc ebx
xor edi, edi
mov eax, dword [esi + edi*8 + 4]
push eax
mov eax, dword [esp + 0x10]
push eax
call sub.advapi32.dll_EqualSid
test eax, eax
je 0x4dfd11
mov byte [esp], 1
jmp 0x4dfd15
inc edi
dec ebx
jne 0x4dfcf8
mov eax, dword [esp + 0xc]
push eax
call sub.advapi32.dll_FreeSid
mov eax, esi
call fcn.00402ec8
mov al, byte [esp]
add esp, 0x10
pop edi
pop esi
pop ebx
ret

Function at 0x4dfe30
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
xor edx, edx
mov dword [ebp - 0xc], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4dfebc
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x4dfe9f
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.004dfdc8
mov eax, dword [ebp - 0xc]
call fcn.00405958
push eax
call sub.kernel32.dll_GetFileAttributesA
test eax, eax
jns 0x4dfe85
call fcn.00404574
mov dword [ebp - 4], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dfea6
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_SetErrorMode
ret
Function at 0x4ed680
Capabilities:
Hash data with md5

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x58
call fcn.00403ba0
mov dword [ebx], 0x67452301
mov dword [ebx + 4], 0xefcdab89
mov dword [ebx + 8], 0x98badcfe
mov dword [ebx + 0xc], 0x10325476
pop ebx
ret

Function at 0x4f2d14
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x4f2e2d
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea edx, [ebp - 0x14]
mov eax, dword [0x4fc404]
mov eax, dword [eax]
call fcn.00469574
mov eax, dword [ebp - 0x14]
call fcn.00405958
push eax
call sub.kernel32.dll_CreateFileA_1
mov esi, eax
cmp esi, 0xffffffff
je 0x4f2e17
push 2
push 0
push 0xfffffffffffffff6
push esi
call sub.kernel32.dll_SetFilePointer_1
lea eax, [ebp - 0xf]
xor ecx, ecx
mov edx, 0xb
call fcn.00403ba0
push 0
lea eax, [ebp - 4]
push eax
push 0xa
lea eax, [ebp - 0xf]
push eax
push esi
call sub.kernel32.dll_ReadFile_1
mov edx, 0x4f2e3c
lea eax, [ebp - 0xf]
call fcn.0040cfd0
test eax, eax
jne 0x4f2dcc
push 2
push 0
push 0xfffffffffffffff2
push esi
call sub.kernel32.dll_SetFilePointer_1
push 0
lea eax, [ebp - 4]
push eax
push 4
push 0x522328
push esi
call sub.kernel32.dll_ReadFile_1
mov bl, 1
jmp 0x4f2e11
mov edx, 0x4f2e48
lea eax, [ebp - 0xf]
call fcn.0040cfd0
test eax, eax
jne 0x4f2e11
push 2
push 0
push 0xfffffffffffffff2
push esi
call sub.kernel32.dll_SetFilePointer_1
push 0
lea eax, [ebp - 4]
push eax
push 4
push 0x522328
push esi
call sub.kernel32.dll_ReadFile_1
push 0
push esi
call sub.kernel32.dll_GetFileSize_1
sub eax, dword [0x522328]
mov dword [0x522328], eax
mov bl, 1
push esi
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f2e34
lea eax, [ebp - 0x14]
call fcn.00405488
ret
Function at 0x401370
Capabilities:
Clear file content
Write file on windows

Disassembly:
sub esp, 8
cmp dword [0x442328], 0
push esi
je 0x401387
mov eax, 1
pop esi
add esp, 8
ret
cmp dword [0x442344], 8
mov esi, dword [0x442330]
jae 0x40139b
mov esi, 0x442330
call fcn.00401e40
mov dword [0x442328], eax
mov eax, dword [0x442308]
cmp eax, 0xffffffff
je 0x4013c5
call fcn.00401ea0
mov eax, dword [0x442308]
push eax
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov eax, dword [0x442308]
mov byte [esp + 4], 0xff
mov byte [esp + 5], 0xfe
cmp eax, 0xffffffff
je 0x4013f1
push 0
lea ecx, [esp + 0xc]
push ecx
push 2
lea edx, [esp + 0x10]
push edx
push eax
mov dword [esp + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [0x442328]
pop esi
add esp, 8
ret

Function at 0x401400
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4335a0
mov eax, dword fs:[0]
push eax
sub esp, 0x54
mov eax, dword [0x43fdf0]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebx
push esi
mov eax, dword [0x43fdf0]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
xor ebx, ebx
xor eax, eax
mov esi, ecx
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], ax
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x6c], ebx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [esp + 0x1c]
movzx eax, word [esp + 0x1a]
movzx ecx, word [esp + 0x18]
push esi
push edx
movzx edx, word [esp + 0x1e]
push eax
movzx eax, word [esp + 0x1e]
push ecx
movzx ecx, word [esp + 0x20]
push edx
push eax
push ecx
push str.__4d__.2d__.2d__.2d:_.2d:_.2d___s_r_n
lea esi, [esp + 0x40]
call fcn.00401ff0
add esp, 0x20
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x74], 1
call fcn.00401580
mov esi, 8
mov byte [esp + 0x68], bl
cmp dword [esp + 0x38], esi
jb 0x4014c0
mov edx, dword [esp + 0x24]
push edx
call fcn.0042270a
add esp, 4
call fcn.00401370
test eax, eax
je 0x4014fa
mov ecx, dword [esp + 0x40]
cmp dword [esp + 0x54], esi
jae 0x4014d7
lea ecx, [esp + 0x40]
mov eax, dword [0x442308]
cmp eax, 0xffffffff
je 0x4014fa
push ebx
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x58]
add edx, edx
push edx
push ecx
push eax
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [esp + 0x54], esi
jb 0x40150d
mov eax, dword [esp + 0x40]
push eax
call fcn.0042270a
add esp, 4
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop esi
pop ebx
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.00422af0
mov esp, ebp
pop ebp
ret
Function at 0x401900
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push 0xffffffffffffffff
push 0x433568
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
push edi
mov eax, dword [0x43fdf0]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov ecx, dword [esp + 0x40]
xor edi, edi
push 0xffffffffffffffff
push edi
xor eax, eax
push ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], 7
mov dword [esp + 0x30], edi
mov word [esp + 0x20], ax
call fcn.00401580
mov edx, dword [esp + 0x44]
mov eax, edx
mov dword [esp + 0x34], edi
lea esi, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x401960
sub eax, esi
sar eax, 1
push eax
push edx
lea ecx, [esp + 0x18]
call fcn.00401a30
mov esi, dword [esp + 0x3c]
push 0xffffffffffffffff
push edi
xor edx, edx
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], edi
push eax
mov ecx, esi
mov word [esi + 4], dx
call fcn.00401580
cmp dword [esp + 0x28], 8
jb 0x4019ad
mov eax, dword [esp + 0x14]
push eax
call fcn.0042270a
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
add esp, 0x2c
ret

Function at 0x403df0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0xc], ecx
push 0
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.004031e0
push eax
lea ecx, [ebp - 4]
call fcn.00403b70
push 1
push 0xf060
lea ecx, [ebp - 4]
call fcn.00403c70
push 0
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.00403260
cmp dword [ebp - 0xc], 0
je 0x403e3c
mov eax, dword [ebp - 0xc]
add eax, 4
mov dword [ebp - 0x10], eax
jmp 0x403e43
mov dword [ebp - 0x10], 0
push 1
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.00411040
add esp, 8
push 0x80
mov ecx, 0x441214
call fcn.004031b0
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
mov edx, dword [ebp - 0xc]
mov dword [edx + 0x28], eax
push 1
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x28]
push ecx
mov ecx, dword [ebp - 0xc]
add ecx, 4
call fcn.00403230
push 0
push 0
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 4]
push eax
push 0x404210
push 0
push 0
call fcn.00422c8d
add esp, 0x18
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x24], eax
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [0x4411fc], eax
mov dword [ebp - 8], 1
lea ecx, [ebp - 4]
call fcn.00403c40
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret 0x10
Function at 0x404090
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
mov dword [ebp - 0x54], ecx
push 0
mov ecx, dword [ebp - 0x54]
add ecx, 4
call fcn.00404860
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x28]
call fcn.0040db20
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x28]
call fcn.00404b20
cmp eax, 1
jne 0x404106
mov ecx, dword [0x441200]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 4]
push edx
push 0x404210
push 0
push 0
call fcn.00422c8d
add esp, 0x18
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x24], eax
jmp 0x404180
lea ecx, [ebp - 0x4c]
call fcn.0040d680
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x4c]
call fcn.00404d40
cmp eax, 1
jne 0x40413c
push 0
push 0
push 0x404
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
jmp 0x404178
mov ecx, dword [0x441200]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x54]
mov eax, dword [edx + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ecx + 4]
push edx
push 0x404210
push 0
push 0
call fcn.00422c8d
add esp, 0x18
mov ecx, dword [ebp - 0x54]
mov dword [ecx + 0x24], eax
lea ecx, [ebp - 0x4c]
call fcn.0040d6a0
mov dword [ebp - 0x50], 0
lea ecx, [ebp - 0x28]
call fcn.0040db50
mov eax, dword [ebp - 0x50]
mov esp, ebp
pop ebp
ret 0x10
Function at 0x4042c0
Capabilities:
Check if file exists
Copy file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x434810]
mov dword [ebp - 0x10], eax
mov ecx, dword [0x434814]
mov dword [ebp - 0xc], ecx
mov dx, word [0x434818]
mov word [ebp - 8], dx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x404301
mov al, 1
jmp 0x4043e5
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00404880
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0x14]
call fcn.00404920
lea ecx, [ebp - 0x14]
call fcn.00412ea0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405a10
add esp, 8
test eax, eax
je 0x404388
mov dword [ebp - 0x18], 0
jmp 0x404344
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x64
jge 0x404388
lea edx, [ebp - 0x10]
push edx
lea ecx, [ebp - 0x14]
call fcn.00412ea0
push eax
call fcn.00405890
add esp, 8
lea ecx, [ebp - 0x14]
call fcn.00412ea0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405a10
add esp, 8
test eax, eax
jne 0x40437a
jmp 0x404388
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00404920
jmp 0x40433b
push 0
mov edx, dword [ebp + 8]
push edx
lea ecx, [ebp - 0x14]
call fcn.00412ea0
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x4043d6
lea ecx, [ebp - 0x14]
call fcn.00412ea0
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4043c5
mov byte [ebp - 0x19], 1
lea ecx, [ebp - 0x14]
call fcn.00403160
mov al, byte [ebp - 0x19]
jmp 0x4043e5
mov byte [ebp - 0x1a], 0
lea ecx, [ebp - 0x14]
call fcn.00403160
mov al, byte [ebp - 0x1a]
jmp 0x4043e5
mov byte [ebp - 0x1b], 1
lea ecx, [ebp - 0x14]
call fcn.00403160
mov al, byte [ebp - 0x1b]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422af0
mov esp, ebp
pop ebp
ret
Function at 0x404400
Capabilities:
Enumerate process modules
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x67c
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 0xc], eax
push str.CCheckEnvirDlg::CheckYYDLL__check_yy_checker.dll_begin.
call fcn.004010c0
add esp, 4
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 4], eax
mov dword [ebp - 0x240], 0
push 0x228
push 0
lea eax, [ebp - 0x23c]
push eax
call fcn.00422d40
add esp, 0xc
mov dword [ebp - 0x240], 0x22c
lea ecx, [ebp - 0x240]
push ecx
mov edx, dword [ebp - 4]
push edx
call sub.KERNEL32.dll_Process32FirstW
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4045a8
mov dword [ebp - 0x668], 0
push 0x424
push 0
lea eax, [ebp - 0x664]
push eax
call fcn.00422d40
add esp, 0xc
mov ecx, dword [ebp - 0x238]
push ecx
push 8
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x668], 0x428
lea edx, [ebp - 0x668]
push edx
mov eax, dword [ebp - 0x670]
push eax
call sub.KERNEL32.dll_Module32FirstW
mov dword [ebp - 0x66c], eax
cmp dword [ebp - 0x66c], 0
je 0x404590
lea ecx, [ebp - 0x648]
push ecx
lea ecx, [ebp - 0x674]
call fcn.00404880
push str.yy_checker.dll
lea ecx, [ebp - 0x674]
call fcn.00404ae0
test eax, eax
jne 0x404567
lea edx, [ebp - 0x448]
push edx
lea ecx, [ebp - 0x678]
call fcn.00404880
lea ecx, [ebp - 0x678]
call fcn.00412ea0
push eax
call fcn.004042c0
add esp, 4
movzx eax, al
test eax, eax
jne 0x40455c
push str.CCheckEnvirDlg::CheckYYDLL__check_yy_checker.dll_return_true.
call fcn.004010c0
add esp, 4
mov byte [ebp - 0x679], 1
lea ecx, [ebp - 0x678]
call fcn.00403160
lea ecx, [ebp - 0x674]
call fcn.00403160
mov al, byte [ebp - 0x679]
jmp 0x4045c1
lea ecx, [ebp - 0x678]
call fcn.00403160
lea ecx, [ebp - 0x668]
push ecx
mov edx, dword [ebp - 0x670]
push edx
call sub.KERNEL32.dll_Module32NextW
mov dword [ebp - 0x66c], eax
lea ecx, [ebp - 0x674]
call fcn.00403160
jmp 0x4044ca
lea eax, [ebp - 0x240]
push eax
mov ecx, dword [ebp - 4]
push ecx
call sub.KERNEL32.dll_Process32NextW
mov dword [ebp - 8], eax
jmp 0x404469
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.CCheckEnvirDlg::CheckYYDLL__check_yy_checker.dll_return_false.
call fcn.004010c0
add esp, 4
xor al, al
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00422af0
mov esp, ebp
pop ebp
ret

Function at 0x4045d0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push 0x4349b0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x441200], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xb7
jne 0x40460b
push str.CCheckEnvirDlg::CheckSetupExist__return_true.
call fcn.004010c0
add esp, 4
mov al, 1
jmp 0x40460d
xor al, al
mov esp, ebp
pop ebp
ret

Function at 0x405370
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
push 0
push 0
push 0
push str.http:__www.duowan.com
push 0x434bf8
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
xor eax, eax
mov esp, ebp
pop ebp
ret 0x10
Function at 0x405890
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 0x28], eax
cmp dword [ebp + 8], 0
je 0x4058b7
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4058be
mov al, 1
jmp 0x4059f6
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x4059f4
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0x23c], eax
mov eax, dword [ebp - 0x23c]
and eax, 0xfffffffe
mov dword [ebp - 0x23c], eax
mov ecx, dword [ebp - 0x23c]
and ecx, 0xfffffffd
mov dword [ebp - 0x23c], ecx
mov edx, dword [ebp - 0x23c]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
je 0x405924
mov al, 1
jmp 0x4059f6
xor edx, edx
mov word [ebp - 0x238], dx
push 0x20a
push 0
lea eax, [ebp - 0x236]
push eax
call fcn.00422d40
add esp, 0xc
push 0x104
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x238]
push edx
call fcn.00422fe5
add esp, 0xc
push 0x1e
push 0
lea eax, [ebp - 0x20]
push eax
call fcn.00422d40
add esp, 0xc
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 3
lea ecx, [ebp - 0x238]
mov dword [ebp - 0x18], ecx
mov edx, 0x614
mov word [ebp - 0x10], dx
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x4059f4
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x240]
call fcn.00404880
mov edx, dword [ebp + 0xc]
push edx
lea ecx, [ebp - 0x240]
call fcn.00404920
lea ecx, [ebp - 0x240]
call fcn.00412ea0
push eax
mov eax, dword [ebp + 8]
push eax
call fcn.00405a10
add esp, 8
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x241], al
lea ecx, [ebp - 0x240]
call fcn.00403160
mov al, byte [ebp - 0x241]
jmp 0x4059f6
mov al, 1
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.00422af0
mov esp, ebp
pop ebp
ret
Function at 0x405a10
Capabilities:
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44c
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 8], eax
xor eax, eax
mov word [ebp - 0x448], ax
push 0x20a
push 0
lea ecx, [ebp - 0x446]
push ecx
call fcn.00422d40
add esp, 0xc
push 0x102
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x448]
push eax
call fcn.00422fe5
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0x218], cx
push 0x20a
push 0
lea edx, [ebp - 0x216]
push edx
call fcn.00422d40
add esp, 0xc
push 0x102
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x218]
push ecx
call fcn.00422fe5
add esp, 0xc
push 0x1e
push 0
lea edx, [ebp - 0x238]
push edx
call fcn.00422d40
add esp, 0xc
mov dword [ebp - 0x238], 0
mov dword [ebp - 0x234], 4
lea eax, [ebp - 0x448]
mov dword [ebp - 0x230], eax
lea ecx, [ebp - 0x218]
mov dword [ebp - 0x22c], ecx
mov edx, 0x614
mov word [ebp - 0x228], dx
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x405b2b
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x405b2b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
jne 0x405b23
mov dword [ebp - 0x44c], 1
mov eax, dword [ebp - 0x44c]
jmp 0x405b2d
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00422af0
mov esp, ebp
pop ebp
ret

Function at 0x406050
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov dword [ebp - 0x30], ecx
cmp dword [ebp + 0xc], 1
jne 0x4060db
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x28]
call fcn.0040db20
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x28]
call fcn.00404b20
cmp eax, 1
jne 0x4060b2
mov ecx, dword [ebp - 0x30]
mov edx, dword [ecx + 0x74]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 4]
push ecx
push 0x4067a0
push 0
push 0
call fcn.00422c8d
add esp, 0x18
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x74], eax
jmp 0x4060c7
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov dword [ebp - 0x2c], 0
lea ecx, [ebp - 0x28]
call fcn.0040db50
mov eax, dword [ebp - 0x2c]
jmp 0x4060ff
push 0
push 0
mov edx, dword [ebp - 0x30]
mov eax, dword [edx + 4]
push eax
push 0x4069d0
push 0
push 0
call fcn.00422c8d
add esp, 0x18
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x6c], eax
xor eax, eax
mov esp, ebp
pop ebp
ret 0x10