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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x868
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x44
push 0
lea eax, [ebp - 0x868]
push eax
call fcn.004886d0
add esp, 0xc
mov dword [ebp - 0x868], 0x44
mov dword [ebp - 0x83c], 1
mov word [ebp - 0x838], 0
push 0x400
lea ecx, [ebp - 0x808]
push ecx
push 0xffffffffffffffff
mov edx, dword [ebp + 8]
push edx
push 0
push 0
call dword [0x4e5704]
lea eax, [ebp - 0x81c]
push eax
lea ecx, [ebp - 0x868]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp + 8]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x40acc0
or eax, 0xffffffff
jmp 0x40ad03
mov ecx, dword [ebp - 0x818]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
mov edx, dword [ebp - 0x81c]
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x80c]
push eax
mov ecx, dword [ebp - 0x81c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov edx, dword [ebp - 0x81c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x80c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret
Function at 0x40f150
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x324
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 8], eax
cmp dword [ebp + 8], 0
je 0x40f17f
push 0x5c
mov eax, dword [ebp + 8]
push eax
call fcn.004894f0
add esp, 8
mov dword [ebp - 0x324], eax
jmp 0x40f189
mov dword [ebp - 0x324], 0
mov ecx, dword [ebp - 0x324]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x40f19f
xor eax, eax
jmp 0x40f319
mov edx, dword [ebp - 4]
sub edx, dword [ebp + 8]
add edx, 1
push edx
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x320]
push ecx
call fcn.00489d00
add esp, 0xc
mov edx, dword [ebp - 4]
sub edx, dword [ebp + 8]
mov byte [ebp + edx - 0x31f], 0
mov dword [ebp - 0x10c], 1
jmp 0x40f1e5
mov eax, dword [ebp - 0x10c]
add eax, 1
mov dword [ebp - 0x10c], eax
mov ecx, dword [ebp - 0x10c]
push ecx
push 0x4b45f4
lea edx, [ebp - 0x210]
push edx
call fcn.00489bd8
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
push 0xff
lea ecx, [ebp - 0x108]
push ecx
push 0x4afcba
lea edx, [ebp - 0x210]
push edx
push 0x4b4780
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
movsx eax, byte [ebp - 0x108]
test eax, eax
jne 0x40f234
jmp 0x40f24f
lea ecx, [ebp - 0x108]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.0049c8ee
add esp, 8
test eax, eax
jne 0x40f24d
jmp 0x40f24f
jmp 0x40f1d6
movsx eax, byte [ebp - 0x108]
test eax, eax
jne 0x40f289
mov ecx, dword [ebp - 0x10c]
push ecx
push 0
call fcn.0040f330
add esp, 4
and eax, 0xffffff
and edx, 0
push edx
push eax
push str.UPI_08x_02x.ini
lea edx, [ebp - 0x108]
push edx
call fcn.00489bd8
add esp, 0x14
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x320]
push ecx
call fcn.00489af0
add esp, 8
lea edx, [ebp - 0x320]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00440600
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0
jne 0x40f317
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 0xc]
push edx
lea eax, [ebp - 0x210]
push eax
push 0x4b4798
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov ecx, dword [ebp - 0x10c]
push ecx
push 0x4b464c
lea edx, [ebp - 0x210]
push edx
call fcn.00489bd8
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x108]
push ecx
lea edx, [ebp - 0x210]
push edx
push 0x4b47a0
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov eax, 1
jmp 0x40f319
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret
Function at 0x417520
Capabilities:
Create udp socket
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2d0
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 4], eax
mov byte [ebp - 0x1b5], 0
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x18], 0
lea eax, [ebp - 0x1b0]
push eax
push 2
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x41757a
mov al, byte [ebp - 0x1b5]
jmp 0x417725
push 0x10
push 0
lea ecx, [ebp - 0x14]
push ecx
call fcn.004886d0
add esp, 0xc
mov word [ebp - 0x14], 2
mov dword [ebp - 0x10], 0
push 0
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x12], ax
push 0x10
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x4175c2
mov al, byte [ebp - 0x1b5]
jmp 0x417725
push 2
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.00459d60
add esp, 8
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x1c0], 0
jmp 0x4175f1
mov edx, dword [ebp - 0x1c0]
add edx, 1
mov dword [ebp - 0x1c0], edx
cmp dword [ebp - 0x1c0], 4
jge 0x41770e
push pe_nt_image_headers32
push 0
lea eax, [ebp - 0x2c0]
push eax
call fcn.004886d0
add esp, 0xc
mov dword [ebp - 0x2c0], 3
push 1
lea ecx, [ebp - 0x2bc]
push ecx
call fcn.00414a70
add esp, 8
push 0
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x28a]
push edx
mov eax, dword [ebp - 0x1c0]
push eax
call fcn.00417740
add esp, 0x18
push 0x10
push 0
lea ecx, [ebp - 0x2d0]
push ecx
call fcn.004886d0
add esp, 0xc
mov word [ebp - 0x2d0], 2
push 0xa1
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x2ce], ax
mov edx, dword [ebp + 8]
mov dword [ebp - 0x2cc], edx
push 0x7d0
push 0
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0x2c0]
push ecx
mov edx, dword [ebp - 0x1b4]
push edx
call fcn.00459f70
add esp, 0x14
mov dword [ebp - 0x1bc], eax
mov eax, 1
test eax, eax
je 0x4176bf
jmp 0x4176d3
mov ecx, dword [ebp - 0x1bc]
push ecx
push str.OSnmpSendEx_ret_d_n
call fcn.00414a60
add esp, 8
cmp dword [ebp - 0x1bc], 0
jl 0x4176fc
push 0
lea edx, [ebp - 0x1b5]
push edx
push 0x4178b0
mov eax, dword [ebp - 0x1b4]
push eax
call fcn.0045b1e0
add esp, 0x10
mov dword [ebp - 0x18], eax
movzx ecx, byte [ebp - 0x1b5]
test ecx, ecx
jne 0x417709
jmp 0x41770e
jmp 0x4175e2
push 1
mov edx, dword [ebp - 0x1b4]
push edx
call fcn.00459db0
add esp, 8
mov al, byte [ebp - 0x1b5]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret
Function at 0x417990
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0x4b59b0
mov dword [ebp - 0x18], 0x417c30
mov dword [ebp - 0x14], str.getnameinfo
mov dword [ebp - 0x10], 0x418490
mov dword [ebp - 0xc], 0x4b5994
mov dword [ebp - 8], fcn.00417bc0
mov dword [ebp - 0x24], 0
mov dword [ebp - 4], 0
cmp dword [0x4e5930], 0
je 0x4179fb
movzx eax, word [ebp + 8]
mov eax, dword [eax*8 + 0x4df1c8]
jmp 0x417bab
push 0x104
lea ecx, [ebp - 0x240]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jne 0x417a16
jmp 0x417b0b
lea edx, [ebp - 0x240]
push edx
push 0x10c
lea eax, [ebp - 0x138]
push eax
call fcn.0048a0fd
add esp, 0xc
push str.ws2_32
push 0x10c
lea ecx, [ebp - 0x138]
push ecx
call fcn.0048a08c
add esp, 0xc
lea edx, [ebp - 0x138]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x417a89
push 0x4b59b0
mov eax, dword [ebp - 0x20]
push eax
call dword [0x4e56bc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x417a89
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x20], 0
je 0x417a91
jmp 0x417b0b
lea edx, [ebp - 0x240]
push edx
push 0x10c
lea eax, [ebp - 0x138]
push eax
call fcn.0048a0fd
add esp, 0xc
push str.wship6
push 0x10c
lea ecx, [ebp - 0x138]
push ecx
call fcn.0048a08c
add esp, 0xc
lea edx, [ebp - 0x138]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x417b04
push 0x4b59b0
mov eax, dword [ebp - 0x20]
push eax
call dword [0x4e56bc]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x417b04
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x20], 0
jmp 0x417b0b
cmp dword [ebp - 0x20], 0
je 0x417b96
mov dword [ebp - 4], 0
jmp 0x417b27
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 3
jge 0x417b65
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*8 - 0x1c]
push ecx
mov edx, dword [ebp - 0x20]
push edx
call dword [0x4e56bc]
mov ecx, dword [ebp - 4]
mov dword [ebp + ecx*8 - 0x18], eax
mov edx, dword [ebp - 4]
cmp dword [ebp + edx*8 - 0x18], 0
jne 0x417b63
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [ebp - 0x20], 0
jmp 0x417b65
jmp 0x417b1e
cmp dword [ebp - 0x20], 0
je 0x417b96
mov dword [ebp - 4], 0
jmp 0x417b7d
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 3
jge 0x417b96
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + eax*8 - 0x18]
mov dword [edx*8 + 0x4df1c8], ecx
jmp 0x417b74
mov dword [0x4e5930], 1
movzx edx, word [ebp + 8]
mov eax, dword [edx*8 + 0x4df1c8]
mov ecx, dword [ebp - 0x28]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret 4
Function at 0x4182e0
Capabilities:
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 0
mov ecx, dword [ebp - 0xc]
mov dword [ecx], 0
mov edx, dword [ebp + 0x18]
mov byte [edx], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x4183a8
mov ecx, dword [ebp - 8]
movsx edx, word [ecx + 8]
cmp edx, 2
jne 0x418388
mov eax, dword [ebp - 8]
movsx ecx, word [eax + 0xa]
cmp ecx, 4
jne 0x418388
mov edx, dword [ebp - 8]
mov eax, dword [edx + 0xc]
mov dword [ebp - 4], eax
jmp 0x418345
mov ecx, dword [ebp - 4]
add ecx, 4
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
cmp dword [edx], 0
je 0x418388
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
mov ax, word [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00418090
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc]
cmp dword [edx], 0
jne 0x41837b
mov eax, 8
jmp 0x4183ee
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
add ecx, 0x1c
mov dword [ebp - 0xc], ecx
jmp 0x41833c
push 0x400
mov edx, dword [ebp - 8]
mov eax, dword [edx]
push eax
push 0x401
mov ecx, dword [ebp + 0x18]
push ecx
call fcn.0048a468
add esp, 0x10
xor eax, eax
jmp 0x4183ee
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sub edx, 0x2af9
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 3
ja case.default.0x4183c6
mov eax, dword [ebp - 0x10]
jmp dword [eax*4 + 0x4183f4]
mov eax, 0x2af9
jmp 0x4183ee
mov eax, 0x2afa
jmp 0x4183ee
mov eax, 0x2afb
jmp 0x4183ee
mov eax, 0x2af9
jmp 0x4183ee
mov eax, 0x2af9
mov esp, ebp
pop ebp
ret 0x18

Function at 0x4187d0
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x2c]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov esp, ebp
pop ebp
ret
Function at 0x41dce0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x424
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x424], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 4]
sub edx, dword [ecx + eax*4]
cmp edx, 0x2710
jbe 0x41dddf
lea eax, [ebp - 0x418]
push eax
push 0x4b59c4
push 0x400
lea ecx, [ebp - 0x410]
push ecx
push 0xffffffffffffffff
mov edx, dword [ebp + 0xc]
push edx
push 0
push 0
call dword [0x4e571c]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x424]
cmp dword [ecx + eax*4 + 0x28], 0
je 0x41dd77
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x424]
mov ecx, dword [eax + edx*4 + 0x28]
mov dword [ebp - 0x41c], ecx
mov edx, dword [ebp - 0x41c]
push edx
call fcn.00476457
add esp, 4
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x424]
cmp dword [ecx + eax*4 + 0x50], 0
je 0x41dda9
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x424]
mov ecx, dword [eax + edx*4 + 0x50]
mov dword [ebp - 0x420], ecx
mov edx, dword [ebp - 0x420]
push edx
call fcn.00476457
add esp, 4
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x414]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x424]
lea ecx, [eax + edx*4 + 0x50]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x424]
lea ecx, [eax + edx*4 + 0x28]
push ecx
lea edx, [ebp - 0x410]
push edx
call fcn.00470990
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x424]
mov dword [edx + ecx*4], eax
call fcn.00448ea0
cmp eax, dword [ebp + 0x10]
jne 0x41de0c
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x424]
mov eax, dword [ecx + eax*4 + 0x28]
jmp 0x41de19
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x424]
mov eax, dword [eax + edx*4 + 0x50]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret 0xc
Function at 0x41e3f0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push str.______________________________________________________________b
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [ebp + 8]
push eax
call dword [0x4e570c]
cmp dword [ebp + 0xc], 0x135
je 0x41e446
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [edx*8 + 0x4b8314]
push eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx*8 + 0x4b8310]
push edx
call fcn.00449260
add esp, 0x18
test eax, eax
jne 0x41e44d
xor eax, eax
jmp 0x41e53d
push 0x4b9158
mov eax, dword [ebp + 0x10]
push eax
call fcn.0041f540
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x41e538
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004885d6
add esp, 4
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047645c
add esp, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp + 0x10]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 8]
sar eax, 1
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.0048899c
add esp, 0xc
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 8]
sar eax, 1
mov ecx, dword [ebp - 0x10]
lea edx, [ecx + eax*2]
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 0x10]
mov word [eax], 0xa
mov ecx, dword [ebp - 0x10]
add ecx, 2
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 4]
add edx, 4
mov dword [ebp - 8], edx
push 0x4b9160
mov eax, dword [ebp - 8]
push eax
call fcn.0041f540
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x41e4a8
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00488f19
add esp, 8
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00488f19
add esp, 8
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x18]
push eax
call fcn.00476457
add esp, 4
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x41f6c0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8d4
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov dword [ebp - 4], 0
mov eax, dword [ebp + 8]
push eax
push str._s
lea ecx, [ebp - 0x210]
push ecx
call dword [0x4e580c]
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov dword [edx], 0
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebp - 0x210]
push ecx
call dword [0x4e5674]
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0xffffffff
je 0x41f8f8
mov dword [ebp - 0x46c], 0
mov edx, dword [ebp - 0x468]
and edx, 0x10
je 0x41f8cf
movzx eax, word [ebp - 0x43c]
cmp eax, 0x2e
je 0x41f8cf
lea ecx, [ebp - 0x43c]
push ecx
mov edx, dword [ebp + 8]
push edx
push str._s_sLang.ini
lea eax, [ebp - 0x678]
push eax
call dword [0x4e580c]
add esp, 0x10
lea ecx, [ebp - 0x678]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41f783
jmp 0x41f8cf
push 0
push 0x64
lea edx, [ebp - 0x740]
push edx
push 0
lea eax, [ebp - 0x678]
push eax
call fcn.0041e3f0
add esp, 0x14
test eax, eax
je 0x41f8cf
push 0
push 0xc8
lea ecx, [ebp - 0x8d0]
push ecx
push 1
lea edx, [ebp - 0x678]
push edx
call fcn.0041e3f0
add esp, 0x14
test eax, eax
je 0x41f8cf
push 1
lea eax, [ebp - 0x8d0]
push eax
call fcn.004885d6
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x678]
push ecx
call fcn.004885d6
add esp, 4
lea edx, [eax + eax + 2]
lea eax, [edx + esi*2 + 0x12]
push eax
call fcn.004890e1
add esp, 8
mov dword [ebp - 0x8d4], eax
lea ecx, [ebp - 0x740]
push ecx
call fcn.0041f940
add esp, 4
mov edx, dword [ebp - 0x8d4]
mov word [edx], ax
mov eax, dword [ebp - 0x8d4]
add eax, 0x10
mov ecx, dword [ebp - 0x8d4]
mov dword [ecx + 4], eax
lea edx, [ebp - 0x8d0]
push edx
call fcn.004885d6
add esp, 4
mov ecx, dword [ebp - 0x8d4]
mov edx, dword [ecx + 4]
lea eax, [edx + eax*2 + 2]
mov ecx, dword [ebp - 0x8d4]
mov dword [ecx + 8], eax
lea edx, [ebp - 0x8d0]
push edx
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 4]
push ecx
call fcn.00488f19
add esp, 8
lea edx, [ebp - 0x678]
push edx
mov eax, dword [ebp - 0x8d4]
mov ecx, dword [eax + 8]
push ecx
call fcn.00488f19
add esp, 8
mov edx, dword [ebp - 0x8d4]
mov dword [edx + 0xc], 0
cmp dword [ebp - 0x46c], 0
jne 0x41f8ab
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x8d4]
mov dword [eax], ecx
jmp 0x41f8ba
mov edx, dword [ebp - 0x46c]
mov eax, dword [ebp - 0x8d4]
mov dword [edx + 0xc], eax
mov ecx, dword [ebp - 0x8d4]
mov dword [ebp - 0x46c], ecx
mov edx, dword [ebp - 4]
add edx, 1
mov dword [ebp - 4], edx
lea eax, [ebp - 0x468]
push eax
mov ecx, dword [ebp - 0x214]
push ecx
call dword [0x4e5678]
test eax, eax
jne 0x41f72e
mov edx, dword [ebp - 0x214]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 4]
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret
Function at 0x42ab00
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x234
mov eax, dword [0x4e412c]
xor eax, ebp
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x230], ecx
mov ecx, 0x5376f0
call fcn.00411980
push eax
lea eax, [ebp - 0x220]
push eax
call fcn.00488f19
add esp, 8
push 0x5c
lea ecx, [ebp - 0x220]
push ecx
call fcn.00403720
add esp, 8
mov dword [ebp - 4], eax
lea edx, [ebp - 0x220]
push edx
call fcn.004885d6
add esp, 4
lea eax, [ebp + eax*2 - 0x222]
cmp dword [ebp - 4], eax
jne 0x42ab6a
mov ecx, dword [ebp - 4]
mov word [ecx], 0
mov edx, dword [ebp + 8]
push edx
push str.EULA_s
lea eax, [ebp - 0x220]
push eax
call fcn.004885d6
add esp, 4
lea ecx, [ebp + eax*2 - 0x220]
push ecx
call fcn.0048aa67
add esp, 0xc
push 0
push 0x80
push 3
push 0
push 1
push bind
lea edx, [ebp - 0x220]
push edx
call dword [0x4e5664]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x42abc0
cmp dword [ebp - 0x10], 0xffffffff
jne 0x42abc5
jmp 0x42acac
push 0
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0047645c
add esp, 4
mov dword [ebp - 0x228], eax
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x224], eax
push 0
lea ecx, [ebp - 8]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x224]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x42ac37
mov edx, dword [ebp - 8]
shr edx, 1
mov eax, dword [ebp - 0x224]
mov word [eax + edx*2], 0
jmp 0x42ac42
mov ecx, dword [ebp - 0x224]
mov word [ecx], 0
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x224]
movzx ecx, word [eax]
cmp ecx, 0xfeff
jne 0x42ac6e
mov edx, dword [ebp - 0x224]
add edx, 2
mov dword [ebp - 0x234], edx
jmp 0x42ac7a
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x234], eax
mov ecx, dword [ebp - 0x234]
push ecx
push 0x3eb
mov ecx, dword [ebp - 0x230]
call fcn.0047bd95
mov edx, dword [ebp - 0x224]
mov dword [ebp - 0x22c], edx
mov eax, dword [ebp - 0x22c]
push eax
call fcn.00476457
add esp, 4
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00488550
mov esp, ebp
pop ebp
ret 4
Function at 0x440cc0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4aa52b
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x4e412c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x14]
call fcn.00412610
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00412610
mov byte [ebp - 4], 2
mov dword [ebp - 0x10], 0x104
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x10]
push edx
lea ecx, [ebp - 0x14]
call fcn.00401740
push eax
push 1
push 0
push 0
call sub.WINSPOOL.DRV_GetPrinterDriverDirectoryW
test eax, eax
je 0x440d7a
push 0xffffffffffffffff
lea ecx, [ebp - 0x14]
call fcn.00403b60
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x14]
push ecx
push str._s3_s
lea edx, [ebp - 0x20]
push edx
call fcn.00403f50
add esp, 0x10
lea ecx, [ebp - 0x20]
call fcn.00401510
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x440d7a
mov dword [ebp - 0x18], 1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00412630
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00412630
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00412630
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret