joyce8/EMBER2024-capa huggingface dataset:
Function at 0x404729
Capabilities:
Identify system language via api

Disassembly:
push ecx
cmp byte [0x4d6000], 0
push ebx
push ebp
push esi
push edi
mov ebx, pe_overlay
mov ebp, 0x4d6000
je 0x404749
push ebp
call fcn.00406c8a
jmp 0x40474f
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov dword [esp + 0x10], eax
xor edi, edi
mov esi, dword [0x475a64]
mov eax, esi
dec esi
test eax, eax
je 0x4047ab
mov eax, dword [0x475a28]
mov ecx, dword [eax + 0x64]
mov edx, ecx
imul ecx, esi
neg edx
add ecx, dword [0x475a60]
mov ax, word [esp + 0x10]
mov edi, ecx
xor ax, word [ecx]
and eax, ebx
test ax, ax
je 0x404793
mov eax, esi
dec esi
add ecx, edx
test eax, eax
jne 0x404777
jmp 0x4047ab
mov eax, dword [edi + 2]
mov dword [0x46da00], eax
mov eax, dword [edi + 6]
mov dword [0x475ac4], eax
lea eax, [edi + 0xa]
mov dword [0x46d9fc], eax
cmp dword [0x46d9fc], 0
jne 0x4047c6
cmp bx, 0xffff
jne 0x4047c2
mov ebx, 0x3ff
jmp 0x404755
xor ebx, ebx
jmp 0x404755
movzx eax, word [edi]
push eax
push ebp
call fcn.00406c71
push 0xfffffffffffffffe
push 0x46da20
call fcn.00406d32
push eax
push dword [0x44b7b8]
call dword [sym.imp.USER32.dll_SetWindowTextA]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret

Function at 0x40655a
Capabilities:
Check if file exists
Create process on windows
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push dword [ebp + 0xc]
mov dword [0x4547e0], 0x44
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ecx, ecx
cmp eax, 0xffffffff
je 0x40657e
test al, 0x10
jne 0x406581
mov dword [ebp + 0xc], ecx
lea eax, [ebp - 0x10]
push eax
push 0x4547e0
push dword [ebp + 0xc]
push ecx
push ecx
push ecx
push ecx
push ecx
push dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x4065ac
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x10]
leave
ret 8
Function at 0x40663b
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x144
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
call fcn.004068f3
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], eax
and ebx, 1
mov dword [ebp + 8], ebx
je 0x406670
test eax, eax
je 0x406809
test byte [ebp + 0xc], 2
je 0x40679f
mov esi, 0x44c7e0
push edi
push esi
call fcn.00406d14
test ebx, ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
je 0x406690
push str..
push esi
call ebx
jmp 0x406696
push edi
call fcn.00406858
push 0x40a288
push edi
call ebx
push edi
call fcn.00406d25
mov ebx, eax
lea eax, [ebp - 0x144]
push eax
push esi
add ebx, edi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x406795
cmp byte [ebp - 0x118], 0x2e
jne 0x4066e4
cmp byte [ebp - 0x117], 0x2e
je 0x406778
cmp byte [ebp - 0x117], 0
je 0x406778
lea eax, [ebp - 0x118]
push eax
push ebx
call fcn.00406d14
test byte [ebp - 0x144], 0x10
je 0x40670f
mov eax, dword [ebp + 0xc]
and eax, 3
cmp al, 3
jne 0x406778
push dword [ebp + 0xc]
push edi
call fcn.0040663b
jmp 0x406778
push edi
push str.Delete:_DeleteFile___s__
call fcn.004070b8
mov eax, dword [ebp - 0x144]
pop ecx
pop ecx
and al, 0xfe
push eax
push edi
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x406770
test byte [ebp + 0xc], 4
push edi
je 0x40675c
push str.Delete:_DeleteFile_on_Reboot___s__
call fcn.004070b8
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.00406030
push 0
push edi
call fcn.00406a50
jmp 0x406778
push str.Delete:_DeleteFile_failed___s__
call fcn.004070b8
inc dword [0x475aa8]
pop ecx
pop ecx
jmp 0x406778
push edi
push 0xfffffffffffffff2
call fcn.00406030
lea eax, [ebp - 0x144]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x4066c1
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp dword [ebp + 8], 0
je 0x40679f
and byte [ebx - 1], 0
xor esi, esi
cmp dword [ebp - 4], esi
je 0x406809
cmp dword [ebp + 8], esi
je 0x406809
push edi
call fcn.00406810
push edi
push str.RMDir:_RemoveDirectory___s__
call fcn.004070b8
pop ecx
pop ecx
push edi
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
test eax, eax
jne 0x406801
test byte [ebp + 0xc], 4
push edi
je 0x4067ed
push str.RMDir:_RemoveDirectory_on_Reboot___s__
call fcn.004070b8
pop ecx
pop ecx
push edi
push 0xfffffffffffffff1
call fcn.00406030
push esi
push edi
call fcn.00406a50
jmp 0x406809
push str.RMDir:_RemoveDirectory_failed___s__
call fcn.004070b8
inc dword [0x475aa8]
pop ecx
pop ecx
jmp 0x406809
push edi
push 0xffffffffffffffe5
call fcn.00406030
pop edi
pop esi
pop ebx
leave
ret 8
Function at 0x4068f3
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push esi
push edi
push dword [esp + 0xc]
mov esi, 0x4507e0
push esi
call fcn.00406d14
push esi
call fcn.004068a4
test eax, eax
jne 0x406912
xor eax, eax
jmp 0x406961
test byte [0x475a30], 0x80
je 0x406926
mov cl, byte [eax]
test cl, cl
je 0x40690e
cmp cl, 0x5c
je 0x40690e
mov edi, eax
sub edi, esi
push esi
call fcn.00406d25
cmp eax, edi
push esi
jle 0x40694b
call fcn.004070d4
test eax, eax
je 0x406943
test byte [eax], 0x10
je 0x40690e
push esi
call fcn.00406858
jmp 0x40692a
call fcn.00406810
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov eax, ecx
pop edi
pop esi
ret 4

Function at 0x4069d8
Capabilities:
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, eax
push 0
inc ecx
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push dword [esp + 0x14]
push 0
push 1
push dword [esp + 0x1c]
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
ret 0xc

Function at 0x406a07
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push edi
push 0x63
pop edi
mov dword [ebp + 8], 0x61736e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0x1a
xor edx, edx
pop ecx
div ecx
push esi
lea eax, [ebp + 8]
push 0
push eax
push dword [ebp + 0xc]
add byte [ebp + 0xa], dl
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
test eax, eax
jne 0x406a4c
mov eax, edi
dec edi
test eax, eax
jne 0x406a12
and byte [esi], al
pop edi
pop esi
pop ebp
ret 8
mov eax, esi
jmp 0x406a46
Function at 0x406a50
Capabilities:
Get common file path
Get file size

Disassembly:
push ebx
push ebp
push esi
push edi
push str.KERNEL32.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
mov esi, dword [esp + 0x18]
je 0x406a88
push str.MoveFileExA
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x406a88
push 5
push esi
push dword [esp + 0x1c]
call eax
test eax, eax
jne 0x406bcd
mov ebx, dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
mov dword [0x455168], 0x4c554e
test esi, esi
mov edi, 0x400
mov ebp, 0x455168
je 0x406acc
push 1
push 0
push esi
call fcn.004069d8
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push ebp
push esi
call ebx
test eax, eax
je 0x406bd3
cmp eax, edi
jg 0x406bd3
mov esi, 0x454d68
push edi
push esi
push dword [esp + 0x1c]
call ebx
test eax, eax
je 0x406bd3
cmp eax, edi
jg 0x406bd3
push esi
push ebp
push str._s_s_r_n
push 0x454968
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov ebp, eax
push 0x3f0
push esi
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push str.wininit.ini
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
xor edi, edi
push edi
push 0x8000080
push 4
push edi
push edi
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x406bcd
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
push edi
lea eax, [esi + ebp + 0xa]
push eax
push edi
push 4
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x406bb5
push edi
push edi
push edi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
test edi, edi
je 0x406ba9
push str._Rename__r_n
push edi
call fcn.00406966
test eax, eax
jne 0x406bda
lea eax, [edi + esi]
push str._Rename__r_n
push eax
call fcn.00406d14
add esi, 0xa
mov eax, esi
push ebp
add eax, edi
push 0x454968
push eax
call fcn.004069b2
push edi
add esi, ebp
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
push edi
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [0x475ab0]
pop edi
pop esi
pop ebp
pop ebx
ret 8
add eax, 0xa
push 0x40a9a0
push eax
call fcn.00406966
test eax, eax
je 0x406b90
inc eax
lea edx, [edi + esi]
cmp eax, edx
mov ecx, eax
jae 0x406c03
mov dl, byte [ecx]
mov byte [ecx + ebp], dl
inc ecx
lea edx, [edi + esi]
cmp ecx, edx
jb 0x406bf6
sub eax, edi
jmp 0x406b92
Function at 0x406c07
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
lea eax, [ebp + 0xc]
push esi
mov esi, dword [ebp + 0x14]
xor ebx, ebx
push eax
push 0x20019
push ebx
push dword [ebp + 0xc]
mov byte [esi], bl
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x406c6b
lea eax, [ebp + 8]
mov dword [ebp + 8], 0x4000
push eax
lea eax, [ebp + 0x14]
push esi
push eax
push ebx
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x406c5a
cmp dword [ebp + 0x14], 1
je 0x406c5c
cmp dword [ebp + 0x14], 2
je 0x406c5c
mov byte [esi], bl
push dword [ebp + 0xc]
mov byte [esi + 0x3fff], bl
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
pop ebx
pop ebp
ret 0x10
Function at 0x40701a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
xor ebx, ebx
cmp dword [ebp + 8], ebx
je 0x40703f
mov eax, dword [0x40a8c8]
cmp eax, 0xffffffff
je 0x407036
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or dword [0x40a8c8], 0xffffffff
jmp 0x4070b3
cmp dword [0x455980], ebx
je 0x4070b3
cmp byte [0x455580], bl
je 0x40707e
cmp dword [0x40a8c8], 0xffffffff
jne 0x407087
push 4
push 0x40000000
push 0x455580
call fcn.004069d8
cmp eax, 0xffffffff
mov dword [0x40a8c8], eax
je 0x4070b3
push 2
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp dword [0x40a8c8], 0xffffffff
je 0x4070b3
push esi
mov esi, 0x45d9c0
push 0x40aa70
push esi
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 8]
push ebx
push eax
push esi
call fcn.00406d25
push eax
push esi
push dword [0x40a8c8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
pop ebx
pop ebp
ret 4
Function at 0x431005
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
mov eax, section..rsrc
nop
mov ebx, 0x40915c
nop
mov ecx, 0x186407a2
nop
nop
nop
nop
nop
test eax, eax
nop
nop
nop
je 0x43104e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x431024
nop
mov eax, section..data
nop
mov ebx, 0x42f3f8
nop
nop
mov ecx, 0x2d275810
nop
nop
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x431084
xor dword [eax], ecx
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x43106c
nop
nop
nop
nop
nop
popal
nop
nop
nop
nop
jmp 0x401219
Function at 0x401000
Capabilities:
Link many functions at runtime

Disassembly:
mov eax, dword [0x44e2b8]
test eax, eax
jne 0x401020
mov eax, dword [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x44e2b8], eax
test eax, eax
jne 0x401020
ret 8
cmp dword [0x44e2bc], 0
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
jne 0x401046
push str.SetParentId
push eax
call esi
mov dword [0x44e2bc], eax
test eax, eax
je 0x4010bd
mov eax, dword [0x44e2b8]
cmp dword [0x44e2c0], 0
jne 0x401065
push str.SetCommand
push eax
call esi
mov dword [0x44e2c0], eax
test eax, eax
je 0x4010bd
mov eax, dword [0x44e2b8]
cmp dword [0x44e2c4], 0
jne 0x401084
push str.SetGameId
push eax
call esi
mov dword [0x44e2c4], eax
test eax, eax
je 0x4010bd
mov eax, dword [0x44e2b8]
cmp dword [0x44e2c8], 0
jne 0x4010a3
push str.GetDllDataLen
push eax
call esi
mov dword [0x44e2c8], eax
test eax, eax
je 0x4010bd
mov eax, dword [0x44e2b8]
cmp dword [0x44e2cc], 0
jne 0x4010c3
push str.GetDllData
push eax
call esi
mov dword [0x44e2cc], eax
test eax, eax
jne 0x4010c3
xor eax, eax
pop esi
ret 8
mov eax, dword [0x44e2bc]
test eax, eax
je 0x4010d6
mov ecx, dword [esp + 0xc]
push ecx
call eax
add esp, 4
xor ecx, ecx
call fcn.004010f0
mov eax, 1
pop esi
ret 8
Function at 0x401270
Capabilities:
Create thread

Disassembly:
push ecx
push 0
push eax
push 0
push 0
push 0
push closesocket
push 0
push closesocket
push 0xcf0000
push 0x42dd18
push 0x42dc50
push 0
mov dword [0x42dde0], eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
test eax, eax
jne 0x4012a8
pop ecx
ret
push str.highlow2.exe
push 0x40
push 0x42c454
call fcn.00410268
push 0x426930
push 0x40
push 0x42c954
call fcn.00410268
push 0x42693c
push 0x40
push 0x42c4d4
call fcn.00410268
push 0x426958
push 0x40
push 0x42c9d4
call fcn.00410268
push str.poker7.exe
push 0x40
push 0x42c554
call fcn.00410268
push 0x42698c
push 0x40
push 0x42ca54
call fcn.00410268
add esp, 0x48
push str.Baduki.exe
push 0x40
push 0x42c5d4
call fcn.00410268
push 0x4269b4
push 0x40
push 0x42cad4
call fcn.00410268
push str.HOOLA3.exe
push 0x40
push 0x42c654
call fcn.00410268
push 0x4269e0
push 0x40
push 0x42cb54
call fcn.00410268
push str.DuelPoker.exe
push 0x40
push 0x42c6d4
call fcn.00410268
push 0x426a10
push 0x40
push 0x42cbd4
call fcn.00410268
add esp, 0x48
push str.PMLauncher.exe
push 0x40
push 0x42c754
call fcn.00410268
push 0x426a40
push 0x40
push 0x42cc54
call fcn.00410268
push str._PMLauncher.exe
push 0x40
push 0x42c7d4
call fcn.00410268
push 0x426a40
push 0x40
push 0x42ccd4
call fcn.00410268
push str.Newbadugi.exe
push 0x40
push 0x42c854
call fcn.00410268
push 0x426a88
push 0x40
push 0x42cd54
call fcn.00410268
add esp, 0x48
push 0x100
push 0
push 0x44dde8
mov dword [0x42c450], 9
call fcn.00411850
add esp, 0xc
xor eax, eax
jmp 0x401410
movzx ecx, word [eax + 0x426a94]
mov word [eax + 0x44ddec], cx
add eax, 2
test cx, cx
jne 0x401410
xor eax, eax
jmp 0x401430
movzx ecx, word [eax + 0x426a98]
mov word [eax + 0x44de1c], cx
add eax, 2
test cx, cx
jne 0x401430
xor eax, eax
jmp 0x401450
movzx ecx, word [eax + str.218.54.31.166]
mov word [eax + 0x44ddf0], cx
add eax, 2
test cx, cx
jne 0x401450
mov dword [0x44de18], 0x51
xor eax, eax
movzx ecx, word [eax + str.MyCom]
mov word [eax + 0x44de3a], cx
add eax, 2
test cx, cx
jne 0x401472
push esi
mov dword [0x44ded4], 5
mov dword [0x44dedc], 0x32
call fcn.004029e0
push str.IsWow64Process
push str.kernel32
mov dword [0x44e0f0], eax
mov dword [0x42ce54], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x4014e8
lea eax, [esp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call esi
cmp eax, 1
je 0x4014e8
xor eax, eax
jmp 0x4014ec
mov eax, dword [esp + 4]
mov dword [0x42ce58], eax
call fcn.00402870
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
push 0
push 0
push 0x4015f0
push 0
push 0
mov dword [0x46eaf2], 0x4021d0
call esi
push 0
push 0
push 0
push 0x401a30
push 0
push 0
call esi
mov eax, 1
pop esi
pop ecx
ret
Function at 0x402480
Capabilities:
Get common file path
Read file on windows

Disassembly:
sub esp, 0x214
mov eax, dword [0x42b0a0]
xor eax, esp
mov dword [esp + 0x210], eax
push edi
push 0x206
xor edi, edi
lea ecx, [esp + 0x12]
xor eax, eax
push edi
push ecx
mov word [esp + 0x18], ax
call fcn.00411850
add esp, 0xc
mov dword [esp + 4], edi
cmp esi, edi
je 0x40254f
mov eax, str.golfinfo.ini
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x4024c5
sub eax, edx
sar eax, 1
je 0x40254f
lea edx, [esp + 0xc]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push str.golfinfo.ini
lea eax, [esp + 0x10]
push 0x104
push eax
call fcn.00410359
push 0x426bbc
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x18]
push edx
call fcn.0040fe00
mov eax, dword [esp + 0x1c]
add esp, 0x18
cmp eax, edi
je 0x40254f
push eax
push 1
push 0x200
push esi
call fcn.00410676
mov eax, dword [esp + 0x14]
push eax
call fcn.004100ae
add esp, 0x14
mov eax, 1
pop edi
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.0040fb84
add esp, 0x214
ret
mov ecx, dword [esp + 0x214]
mov eax, edi
pop edi
xor ecx, esp
call fcn.0040fb84
add esp, 0x214
ret

Function at 0x402730
Capabilities:
Delete file
Read file on windows
Write file on windows

Disassembly:
sub esp, 8
push ebx
push esi
push edi
push 0x3e8
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0x426bbc
lea eax, [esp + 0x10]
push 0x44dee8
push eax
call fcn.0040fe00
mov eax, dword [esp + 0x18]
add esp, 0xc
test eax, eax
je 0x402861
push 2
push 0
push eax
call fcn.00410aef
mov ecx, dword [esp + 0x18]
add esp, 0xc
push ecx
call fcn.00410d11
mov esi, eax
add esp, 4
push esi
call fcn.00410d7f
mov edx, dword [esp + 0x10]
add esp, 4
push 0
push 0
push edx
mov edi, eax
call fcn.00410aef
mov eax, dword [esp + 0x18]
add esp, 0xc
push eax
push esi
push 1
push edi
call fcn.00410676
add esp, 0x10
cmp esi, eax
jne 0x402843
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00410a31
add esp, 4
call fcn.00410a43
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x428d98]
fmul qword [0x428d90]
fadd qword [0x428d88]
call fcn.00412800
cmp esi, eax
jl 0x402843
mov ebx, edi
sub ebx, eax
add ebx, esi
call fcn.004026e0
mov ecx, dword [esp + 0xc]
push ecx
call fcn.004100ae
add esp, 4
push 0x44dee8
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push 0x4268b4
lea edx, [esp + 0x10]
push 0x44dee8
push edx
call fcn.0040fe00
mov eax, dword [esp + 0x18]
add esp, 0xc
test eax, eax
je 0x402861
push eax
push esi
push 1
push edi
call fcn.0040ffb5
add esp, 0x10
mov eax, dword [esp + 0xc]
test eax, eax
je 0x402854
push eax
call fcn.004100ae
add esp, 4
test edi, edi
je 0x402861
push edi
call fcn.0040fb79
add esp, 4
pop edi
pop esi
pop ebx
add esp, 8
ret
Function at 0x402870
Capabilities:
Create thread
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x274
mov eax, dword [0x42b0a0]
xor eax, esp
mov dword [esp + 0x270], eax
push edi
xor eax, eax
push 0x62
push eax
lea ecx, [esp + 0x212]
push ecx
mov word [esp + 0x214], ax
call fcn.00411850
add esp, 0xc
push 0x200
lea edx, [esp + 0xc]
push 0
push edx
call fcn.00411850
add esp, 0xc
lea edi, [esp + 8]
call fcn.00402570
test eax, eax
je 0x4029bf
xor eax, eax
nop
movzx ecx, word [esp + eax + 0xc]
mov word [eax + 0x44ddf0], cx
add eax, 2
test cx, cx
jne 0x4028d0
movzx eax, word [esp + 0x8c]
mov dword [0x44de18], eax
xor eax, eax
jmp 0x402900
movzx ecx, word [esp + eax + 0x8e]
mov word [eax + 0x44de1c], cx
add eax, 2
test cx, cx
jne 0x402900
cmp dword [0x44e0f0], 3
jne 0x402949
push 0x104
push 0x44dee8
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x426be0
push 0x104
push 0x44dee8
call fcn.00410359
add esp, 0xc
jmp 0x402959
push 0x44dee8
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [esp + 0x1b0]
push ecx
push 0x104
push 0x44dee8
call fcn.00410359
add esp, 0xc
push 0x426be4
push 0x104
push 0x44dee8
call fcn.00410359
add esp, 0xc
call fcn.00402730
push 0
push 0
push 0
push 0x402610
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea edi, [esp + 0x208]
call fcn.00402640
mov edx, edi
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov ecx, dword [esp + 0x274]
pop edi
xor ecx, esp
call fcn.0040fb84
mov esp, ebp
pop ebp
ret

Function at 0x4029e0
Capabilities:
Check os version

Disassembly:
sub esp, 0x120
mov eax, dword [0x42b0a0]
xor eax, esp
mov dword [esp + 0x11c], eax
push esi
push 0x118
xor esi, esi
lea eax, [esp + 0xc]
push esi
push eax
call fcn.00411850
add esp, 0xc
lea ecx, [esp + 4]
push ecx
mov dword [esp + 8], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x402ab9
mov eax, dword [esp + 8]
cmp eax, 5
jne 0x402a85
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x402a5e
cmp word [esp + 0x118], 4
jb 0x402ab9
mov esi, 1
mov eax, esi
pop esi
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.0040fb84
add esp, 0x120
ret
cmp eax, 2
jae 0x402a68
cmp eax, 1
jne 0x402ab9
mov esi, 3
mov eax, esi
pop esi
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.0040fb84
add esp, 0x120
ret
cmp eax, 6
jne 0x402ab9
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x402aaf
mov esi, 4
mov eax, esi
pop esi
mov ecx, dword [esp + 0x11c]
xor ecx, esp
call fcn.0040fb84
add esp, 0x120
ret
cmp eax, 1
jne 0x402ab9
mov esi, 5
mov ecx, dword [esp + 0x120]
mov eax, esi
pop esi
xor ecx, esp
call fcn.0040fb84
add esp, 0x120
ret
Function at 0x402b40
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push ebx
push esi
push edi
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.IDR_BINARY
mov esi, eax
push 0x83
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov ebx, eax
test ebx, ebx
je 0x402bd3
push ebp
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push ebx
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebp, eax
push ebp
call dword [sym.imp.KERNEL32.dll_LockResource]
mov esi, edi
and esi, 0x1ff
neg esi
sbb esi, esi
mov ecx, edi
neg esi
shr ecx, 9
add esi, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
shl esi, 9
push esi
mov dword [eax], edi
call fcn.00410d7f
push esi
mov ebx, eax
push 0
push ebx
call fcn.00411850
mov edx, dword [esp + 0x20]
push edi
push edx
push ebx
call fcn.004114e0
add esp, 0x1c
push ebp
call dword [sym.imp.KERNEL32.dll_FreeResource]
pop ebp
pop edi
pop esi
mov eax, ebx
pop ebx
pop ecx
ret
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x402f50
Capabilities:
Enumerate processes

Disassembly:
sub esp, 0x234
mov eax, dword [0x42b0a0]
xor eax, esp
mov dword [esp + 0x230], eax
push ebp
push esi
push edi
xor edi, edi
push edi
push 2
mov esi, ecx
mov dword [esp + 0x14], edi
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x402f8f
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x40300c
push 0x22c
lea eax, [esp + 0x14]
push 0
push eax
call fcn.00411850
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
push ebp
mov dword [esp + 0x18], 0x22c
call sub.KERNEL32.dll_Process32FirstW
cmp eax, 1
je 0x402fc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x403005
push ebx
xor edi, edi
cmp dword [esi], edi
jle 0x402fea
lea ebx, [esi + 4]
lea ecx, [ecx]
lea edx, [esp + 0x38]
push ebx
push edx
call fcn.00410f7e
add esp, 8
test eax, eax
je 0x403026
inc edi
sub ebx, 0xffffff80
cmp edi, dword [esi]
jl 0x402fd0
lea eax, [esp + 0x14]
push eax
push ebp
call sub.KERNEL32.dll_Process32NextW
cmp eax, 1
je 0x402fc4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [esp + 0x10]
pop ebx
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x23c]
mov eax, edi
pop edi
pop esi
pop ebp
xor ecx, esp
call fcn.0040fb84
add esp, 0x234
ret
lea ecx, [esp + 0x38]
push ecx
lea edx, [esi + 0xa14]
push 0x40
push edx
mov dword [esp + 0x1c], 1
mov dword [esi + 0xa0c], edi
call fcn.00410268
mov ecx, dword [esi + 0xa0c]
mov eax, dword [esp + 0x28]
shl ecx, 7
lea edx, [ecx + esi + 0x504]
push edx
mov dword [esi + 0xa10], eax
push 0x40
add esi, 0xa98
push esi
call fcn.00410268
add esp, 0x18
jmp 0x403000