joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4261c0
Capabilities:
Check if file exists
Hide graphical window
Read .ini file

Disassembly:
sub esp, 0x880
push edi
push esi
push ebx
add esp, 0xfffffff8
push 0x52cb40
push 0x400
lea ebx, [esp + 0x460]
push ebx
push 0x426163
push 0x42616e
push 0x42617b
call sub.KERNEL32.dll_GetPrivateProfileStringA
push 0x52cb40
push 0x400
lea edi, [esp + 0x60]
push edi
push 0x422667
push 0x426182
push 0x42617b
call sub.KERNEL32.dll_GetPrivateProfileStringA
add esp, 0xfffffff8
push 0x52cb40
push 0x3e8
push 0x42618e
push 0x42617b
call sub.KERNEL32.dll_GetPrivateProfileIntA
mov dword [0x50e010], eax
add esp, 0x10
cmp byte [esp + 0x450], 0
je 0x4263e2
add esp, 0xfffffff8
push 0x2010
push 0
push 0
push 0
push ebx
push 0
call sub.USER32.dll_LoadImageA
mov edx, eax
mov dword [0x4f6144], edx
add esp, 8
test edx, edx
jne 0x426290
call sub.KERNEL32.dll_GetLastError
cmp eax, 2
je 0x4263e2
add esp, 0xfffffff4
push 0x426199
call fcn.00421298
jmp 0x4263df
add esp, 0xfffffffc
lea eax, [esp + 0x34]
push eax
push 0x18
push edx
call sub.GDI32.dll_GetObjectA
add esp, 0xfffffff4
push 0
lea eax, [esp + 0x34]
push eax
push 0
push 0x30
call sub.USER32.dll_SystemParametersInfoA
mov esi, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
sub ecx, esi
mov eax, ecx
shr eax, 0x1f
add ecx, eax
sar ecx, 1
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x48]
mov edx, dword [esp + 0x3c]
sub edx, ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
mov dword [esp + 0x24], edx
add ecx, esi
mov dword [esp + 0x28], ecx
add edx, ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x860], 0
mov dword [esp + 0x864], 0x4260b0
mov dword [esp + 0x868], 0
mov dword [esp + 0x86c], 0
mov eax, dword [0x52cd60]
mov dword [esp + 0x870], eax
add esp, 0xfffffff8
push 2
push eax
call sub.USER32.dll_LoadIconA
mov dword [esp + 0x87c], eax
mov dword [esp + 0x880], 0
add esp, 0xfffffffc
push 0
call sub.GDI32.dll_GetStockObject
mov dword [esp + 0x888], eax
mov dword [esp + 0x88c], 0
mov dword [esp + 0x890], 0x4261aa
lea eax, [esp + 0x86c]
push eax
call sub.USER32.dll_RegisterClassA
add esp, 0xfffffffc
push 0
push dword [0x52cd60]
push 0
push 0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, ecx
push eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, edx
push eax
push ecx
push edx
push 0x80000000
push edi
push 0x4261aa
push 0
call sub.USER32.dll_CreateWindowExA
mov dword [0x4f6148], eax
add esp, 0x20
add esp, 0xfffffff8
push 5
push eax
call sub.USER32.dll_ShowWindow
add esp, 0xfffffffc
push dword [0x4f6148]
call sub.USER32.dll_UpdateWindow
add esp, 0xfffffffc
call sub.KERNEL32.dll_GetTickCount
mov dword [0x50e000], eax
add esp, 0x10
pop ebx
pop esi
pop edi
add esp, 0x880
ret
Function at 0x4263ec
Capabilities:
Check for time delay via gettickcount
Hide graphical window

Disassembly:
sub esp, 0xc
cmp dword [0x4f6148], 0
je 0x42644b
jmp 0x42640d
add esp, 0xfffffff4
push 0x64
call sub.KERNEL32.dll_Sleep
add esp, 0xc
call sub.KERNEL32.dll_GetTickCount
sub eax, dword [0x50e000]
cmp eax, dword [0x50e010]
jb 0x426400
add esp, 0xfffffff8
push 0
push dword [0x4f6148]
call sub.USER32.dll_ShowWindow
add esp, 0xfffffffc
push dword [0x4f6148]
call sub.USER32.dll_DestroyWindow
mov dword [0x4f6148], 0
add esp, 0xc
mov eax, dword [0x4f6144]
test eax, eax
je 0x42646a
add esp, 0xfffffff4
push eax
call sub.GDI32.dll_DeleteObject
mov dword [0x4f6144], 0
add esp, 0xc
add esp, 0xc
ret
Function at 0x446b70
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
mov eax, dword [edx + 8]
test eax, eax
je 0x446b8a
nop
lea esi, [esi]
xor byte [eax], 0x20
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x446b80
mov dword [edx + 0xc], 0
mov dword [edx + 8], 0
ret
Function at 0x469c21
Capabilities:
Delete file

Disassembly:
sub esp, 0x21c
push ebp
push edi
push esi
push ebx
mov ebp, dword [esp + 0x230]
mov edi, dword [esp + 0x234]
add esp, 0xfffffff8
push 0
push 0
push edi
push ebp
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov ebx, eax
add esp, 8
cmp ebx, 0x104
jg 0x469c84
add esp, 0xfffffff8
push ebx
lea esi, [esp + 0x1c]
push esi
push edi
push ebp
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov word [esi + ebx*2], 0
add esp, 0xfffffffc
push esi
call fcn.0041b644
add esp, 0x10
test eax, eax
jne 0x469c84
add esp, 0xfffffff4
push esi
call sub.KERNEL32.dll_DeleteFileW
add esp, 0xc
test eax, eax
je 0x469c84
mov eax, 1
jmp 0x469c91
mov eax, dword [0x51cb90]
mov eax, dword [eax + 0x140]
call eax
pop ebx
pop esi
pop edi
pop ebp
add esp, 0x21c
ret

Function at 0x469f21
Capabilities:
Move file

Disassembly:
sub esp, 0x42c
push ebp
push edi
push esi
push ebx
mov ebp, dword [esp + 0x440]
mov esi, dword [esp + 0x444]
add esp, 0xfffffff8
push 0
push 0
push esi
push ebp
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov ebx, eax
add esp, 8
cmp ebx, 0x104
jg 0x469fe4
add esp, 0xfffffff8
push ebx
lea edi, [esp + 0x22c]
push edi
push esi
push ebp
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov word [edi + ebx*2], 0
push 0
push 0
mov eax, dword [esp + 0x45c]
push eax
mov eax, dword [esp + 0x45c]
push eax
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov ebx, eax
add esp, 8
cmp ebx, 0x104
jg 0x469fe4
add esp, 0xfffffff8
push ebx
lea esi, [esp + 0x1c]
push esi
mov eax, dword [esp + 0x45c]
push eax
mov eax, dword [esp + 0x45c]
push eax
push 0
push 0xfde9
call sub.KERNEL32.dll_MultiByteToWideChar
mov word [esi + ebx*2], 0
add esp, 0xfffffffc
push edi
call fcn.0041b644
add esp, 0x10
test eax, eax
jne 0x469fe4
add esp, 0xfffffff8
push esi
push edi
call sub.KERNEL32.dll_MoveFileW
add esp, 8
test eax, eax
je 0x469fe4
mov eax, 1
jmp 0x469ff1
mov eax, dword [0x51cb90]
mov eax, dword [eax + 0x140]
call eax
pop ebx
pop esi
pop edi
pop ebp
add esp, 0x42c
ret

Function at 0x46a264
Capabilities:
Clear file content

Disassembly:
sub esp, 0x18
push ebx
add esp, 0xfffffff4
mov ebx, dword [esp + 0x2c]
dec ebx
push ebx
call sub.KERNEL32.dll_SetEndOfFile
push ebx
call sub.KERNEL32.dll_CloseHandle
add esp, 0xc
pop ebx
add esp, 0x18
ret
Function at 0x46a408
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x2c
push ebp
push edi
push esi
push ebx
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x48]
mov ebp, dword [esp + 0x4c]
add esp, 0xfffffff4
push ebp
call fcn.0046a38c
mov dword [esp + 0x38], eax
add esp, 0xfffffff4
push 0
lea ebx, [esp + 0x4c]
push ebx
imul esi, edi
push esi
mov eax, dword [esp + 0x68]
push eax
jmp 0x46a498
call sub.KERNEL32.dll_GetLastError
add esp, 0xfffffff4
push esi
push dword [esp + 0x3c]
push 0x46a3c4
push 0x46a3f6
push 2
call fcn.004211b0
add esp, 0x20
cmp eax, 3
je 0x46a4aa
add esp, 0xfffffffc
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
sar edx, 0x1f
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
push edx
push eax
push ebp
call fcn.0046a4bc
add esp, 0xfffffff4
push 0
push ebx
push esi
mov edx, dword [esp + 0x68]
push edx
lea eax, [ebp - 1]
push eax
call sub.KERNEL32.dll_ReadFile
add esp, 0x1c
cmp dword [esp + 0x2c], esi
jne 0x46a444
mov eax, dword [esp + 0x2c]
xor edx, edx
div edi
pop ebx
pop esi
pop edi
pop ebp
add esp, 0x2c
ret

Function at 0x46a4f8
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x28
push ebx
mov ebx, dword [esp + 0x34]
add esp, 0xfffffff4
push 0
lea eax, [esp + 0x2c]
push eax
mov eax, ebx
imul eax, dword [esp + 0x4c]
push eax
push dword [esp + 0x48]
mov eax, dword [esp + 0x58]
dec eax
push eax
call sub.KERNEL32.dll_WriteFile
mov eax, dword [esp + 0x28]
xor edx, edx
div ebx
add esp, 0xc
pop ebx
add esp, 0x28
ret

Function at 0x4a34a0
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x24
push esi
push ebx
mov esi, dword [esp + 0x30]
push 6
lea ebx, [esp + 0x14]
push ebx
push 0x5a
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
dec eax
push eax
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x24
ret

Function at 0x4a34d4
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x24
push esi
push ebx
mov esi, dword [esp + 0x30]
push 6
lea ebx, [esp + 0x14]
push ebx
push 0x59
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
dec eax
push eax
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x24
ret

Function at 0x4a3503
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x28
push ebx
push 6
lea ebx, [esp + 0x14]
push ebx
push 0x1b
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
test eax, eax
jne 0x4a3518
xor eax, eax
jmp 0x4a351d
mov eax, 1
pop ebx
add esp, 0x28
ret

Function at 0x4a352e
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x1c
push 6
lea eax, [esp + 4]
push eax
push 0x14
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
dec eax
add esp, 0x1c
ret

Function at 0x4a3550
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x24
push esi
push ebx
mov esi, dword [esp + 0x30]
push 6
lea ebx, [esp + 0x14]
push ebx
push 0x14
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
dec eax
push eax
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x24
ret
Function at 0x4a3580
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x24
push edi
push esi
push 2
lea esi, [esp + 0x22]
push esi
push 0xd
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
test eax, eax
je 0x4a35a8
mov edi, 0x4a3571
mov ecx, 2
cld
test al, 0
repe cmpsb byte [esi], byte es:[edi]
je 0x4a35a8
xor eax, eax
jmp 0x4a35ad
mov eax, 1
pop esi
pop edi
add esp, 0x24
ret

Function at 0x4a35c4
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x24
push esi
push ebx
mov esi, dword [esp + 0x30]
push 4
lea ebx, [esp + 0x20]
push ebx
push 0xf
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
push 1
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x24
ret

Function at 0x4a35f8
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x24
push esi
push ebx
mov esi, dword [esp + 0x30]
push 4
lea ebx, [esp + 0x20]
push ebx
push 0xe
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
push 1
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x24
ret

Function at 0x4a368b
Capabilities:
Get geographical location

Disassembly:
sub esp, 0xc
push 0
push 0
push 0x20
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
dec eax
add esp, 0xc
ret

Function at 0x4a36ac
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x64
push esi
push ebx
mov esi, dword [esp + 0x70]
push 0x50
lea ebx, [esp + 0x14]
push ebx
push 0x20
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
dec eax
push eax
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x64
ret

Function at 0x4a36d7
Capabilities:
Get geographical location

Disassembly:
sub esp, 0xc
push 0
push 0
push 0x1f
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
dec eax
add esp, 0xc
ret

Function at 0x4a36f8
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x64
push esi
push ebx
mov esi, dword [esp + 0x70]
push 0x50
lea ebx, [esp + 0x14]
push ebx
push 0x1f
push 0x400
call sub.KERNEL32.dll_GetLocaleInfoA
add esp, 0xfffffffc
dec eax
push eax
push ebx
push esi
call fcn.004f1f10
add esp, 0x10
pop ebx
pop esi
add esp, 0x64
ret
Function at 0x4a47cd
Capabilities:
Create thread
Resume thread

Disassembly:
sub esp, 0x28
push ebx
add esp, 0xfffffff8
push 0x1c0
push 1
call fcn.004f1e60
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x4a47bf
xor eax, eax
jmp 0x4a48a1
cmp dword [esp + 0x30], 0
je 0x4a488a
add esp, 0xfffffff8
push 8
push 0x401
call fcn.004f1e60
mov dword [ebx + 0x48], eax
add esp, 0xfffffff8
push 0x201
push 1
call fcn.004f1e60
mov dword [ebx + 0x50], eax
add esp, 0x20
push 0
push 0
push 0
push 0
call sub.KERNEL32.dll_CreateEventA
mov dword [ebx + 0x40], eax
add esp, 0xfffffffc
push 0
push 0
push 0
call sub.KERNEL32.dll_CreateMutexA
mov dword [ebx + 0x3c], eax
add esp, 0xfffffffc
lea eax, [esp + 0x24]
push eax
push 4
push ebx
push 0x4a42a0
push 0
push 0
call sub.KERNEL32.dll_CreateThread
mov dword [ebx + 0x44], eax
add esp, 8
test eax, eax
jne 0x4a4845
add esp, 0xfffffff4
push 0x4a4754
call fcn.00421298
add esp, 0x10
add esp, 0xfffffff8
push 0xf
push dword [ebx + 0x44]
call sub.KERNEL32.dll_SetThreadPriority
add esp, 8
test eax, eax
jne 0x4a4869
add esp, 0xfffffff4
push 0x4a476a
call fcn.00421298
add esp, 0x10
add esp, 0xfffffff4
push dword [ebx + 0x44]
call sub.KERNEL32.dll_ResumeThread
add esp, 0xc
test eax, eax
jne 0x4a489f
add esp, 0xfffffff4
push 0x4a4785
call fcn.00421298
jmp 0x4a489c
add esp, 0xfffffff8
push 8
push 0x401
call fcn.004f1e60
mov dword [ebx + 0x64], eax
add esp, 0x10
mov eax, ebx
pop ebx
add esp, 0x28
ret
Function at 0x4ed8c8
Capabilities:
Create thread

Disassembly:
sub esp, 0x50
push edi
push esi
push ebx
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x18], 0
cmp dword [0x502a28], 0
je 0x4ed8b0
call fcn.004efffc
cmp dword [0x502a24], 0
jne 0x4ed909
add esp, 0xfffffff4
push 0x502a24
push 0x41c270
push 1
push 0
push 0x41c220
call sub.OLE32.dll_CoCreateInstance
mov ebx, eax
add esp, 0xc
test ebx, ebx
jl 0x4ed902
add esp, 0xfffffff8
mov eax, dword [0x502a24]
mov edx, dword [eax]
push 0
push eax
mov eax, dword [edx + 0x14]
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
jge 0x4ed909
mov dword [0x502a24], 0
xor eax, eax
jmp 0x4edad1
mov dword [0x5029f8], 1
mov eax, dword [esp + 0x68]
mov dword [0x502a48], eax
add esp, 0xfffffff8
lea eax, [esp + 0x24]
push eax
push 0
push 0
push 0x4ed2d0
push 0
push 0
call sub.KERNEL32.dll_CreateThread
mov dword [0x502a30], eax
add esp, 8
test eax, eax
jne 0x4ed95e
add esp, 0xfffffff4
push 0x4ed868
call fcn.00421298
call fcn.004efffc
xor eax, eax
add esp, 0x10
jmp 0x4edad1
add esp, 0xfffffff8
push 2
push eax
call sub.KERNEL32.dll_SetThreadPriority
add esp, 8
test eax, eax
jne 0x4ed980
add esp, 0xfffffff4
push 0x4ed430
call fcn.00421298
add esp, 0x10
mov dword [0x502a38], 1
mov edx, 2
test edi, edi
je 0x4ed998
mov edx, 4
mov eax, edx
shl eax, 0xa
mov dword [0x502a34], eax
mov dword [esp + 0x30], 0x14
mov dword [esp + 0x34], 0x80000000
add eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], 0
mov word [0x5405b0], 1
test edi, edi
je 0x4ed9d8
mov word [0x5405b2], 2
jmp 0x4ed9e1
mov word [0x5405b2], 1
mov dword [0x5405b4], esi
imul esi, edx
mov dword [0x5405b8], esi
mov word [0x5405bc], dx
mov word [0x5405be], 0x10
mov dword [esp + 0x40], 0x5405b0
mov edx, dword [0x502a24]
mov ecx, dword [edx]
push 0
push 0x502a28
lea eax, [esp + 0x38]
push eax
push edx
mov eax, dword [ecx + 0xc]
call eax
mov ebx, eax
test ebx, ebx
jl 0x4ed902
add esp, 0xfffffffc
mov edx, dword [0x502a28]
mov ecx, dword [edx]
lea eax, [esp + 0x1c]
push eax
push 0x41c290
push edx
mov eax, dword [ecx]
call eax
mov ebx, eax
add esp, 4
test ebx, ebx
jl 0x4edaa1
mov eax, dword [0x502a34]
lea edx, [eax - 1]
mov dword [esp + 0x20], edx
lea eax, [eax*2 - 1]
mov dword [esp + 0x28], eax
mov eax, dword [0x502a2c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
add esp, 0xfffffffc
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
lea eax, [esp + 0x24]
push eax
push 2
push edx
mov eax, dword [ecx + 0xc]
call eax
mov ebx, eax
add esp, 0xfffffff8
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
add esp, 0xc
test ebx, ebx
jge 0x4edaab
call fcn.004efffc
jmp 0x4ed902
add esp, 0xfffffff8
mov eax, dword [0x502a28]
mov edx, dword [eax]
push 1
push eax
mov eax, dword [edx + 0x24]
call eax
mov ebx, eax
add esp, 8
test ebx, ebx
jge 0x4ed902
call fcn.004efffc
xor eax, eax
pop ebx
pop esi
pop edi
add esp, 0x50
ret
Function at 0x4f1f88
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x64
push ebx
call fcn.004f20a8
call sub.KERNEL32.dll_GetCommandLineA
mov ebx, eax
add esp, 0xfffffff4
lea eax, [ebp - 0x50]
push eax
call sub.KERNEL32.dll_GetStartupInfoA
add esp, 0xc
test ebx, ebx
je 0x4f1ff4
jmp 0x4f1fb1
inc ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x4f1fb0
cmp al, 9
je 0x4f1fb0
mov al, byte [ebx]
cmp al, 0x22
jne 0x4f1fdb
lea esi, [esi]
inc ebx
mov al, byte [ebx]
cmp al, 0x22
je 0x4f1fe9
test al, al
jne 0x4f1fc8
jmp 0x4f1fea
inc ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x4f1fe9
cmp al, 9
je 0x4f1fea
test al, al
jne 0x4f1fd8
jmp 0x4f1fea
inc ebx
mov al, byte [ebx]
cmp al, 0x20
je 0x4f1fe9
cmp al, 9
je 0x4f1fe9
mov eax, 0xa
test byte [ebp - 0x24], 1
je 0x4f2003
movzx eax, word [ebp - 0x20]
push eax
push ebx
push 0
add esp, 0xfffffff4
push 0
call sub.KERNEL32.dll_GetModuleHandleA
add esp, 0xc
push eax
call fcn.0041eca0
mov ebx, dword [ebp - 0x68]
leave
ret
Function at 0x4035f2
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x414
mov eax, dword [0x46b034]
xor eax, esp
mov dword [esp + 0x410], eax
cmp dword [ebp + 0x1c], 0
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x18]
push esi
push edi
mov esi, ecx
mov dword [esp + 0x10], edx
jne 0x40377e
xor edi, edi
inc edi
cmp dword [ebp + 0xc], 0x110
push 2
pop edx
jne 0x403699
push ecx
push ecx
mov dword [esi + 0x98], edi
call fcn.004037e0
mov dword [ebx], eax
cmp dword [esi + 0x98], 0
jne 0x4036be
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.00402a27
add esp, 0xc
test eax, eax
jne 0x4036be
cmp dword [ebp + 0xc], 0x111
mov eax, dword [esi + 0x50]
mov dword [esp + 0x14], eax
jne 0x403727
cmp di, word [ebp + 0x10]
jne 0x403751
push edi
push dword [esi + 4]
mov dword [esi + 0x50], edi
call dword [sym.imp.USER32.dll_EndDialog]
and dword [ebx], 0
jmp 0x40374b
cmp dword [ebp + 0xc], 0x111
jne 0x40364c
mov eax, dword [ebp + 0x10]
movzx eax, ax
mov ecx, eax
cmp dx, ax
jne 0x4036c5
push edx
push dword [esi + 4]
call dword [sym.imp.USER32.dll_EndDialog]
xor edi, edi
inc edi
mov dword [ebx], edi
mov eax, edi
jmp 0x403780
cmp di, cx
jne 0x40370d
push 0x400
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.0041cff0
add esp, 0xc
lea eax, [esp + 0x18]
push 0x200
push eax
push dword [esi + 0x60]
call dword [sym.imp.USER32.dll_GetWindowTextW]
lea eax, [esp + 0x18]
push eax
lea ecx, [esi + 0x80]
call fcn.0040220d
push edi
push dword [esi + 4]
call dword [sym.imp.USER32.dll_EndDialog]
jmp 0x4036bc
push 0x4d
pop eax
cmp ax, cx
jne 0x40364c
sub esp, 0x10
mov ecx, esi
call fcn.00403c38
mov dword [ebx], eax
jmp 0x4036be
cmp dword [ebp + 0xc], 0x10
jne 0x403734
push 2
jmp 0x403685
cmp dword [ebp + 0xc], 0x110
jne 0x403751
push ecx
push ecx
mov ecx, esi
mov dword [esi + 0x50], edi
call fcn.0040291a
mov dword [ebx], eax
cmp dword [esi + 0x50], 0
jne 0x40376b
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x10]
push ebx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.00402a27
add esp, 0xc
test eax, eax
je 0x403777
mov eax, dword [esp + 0x14]
mov dword [esi + 0x50], eax
jmp 0x4036be
mov eax, dword [esp + 0x14]
mov dword [esi + 0x50], eax
xor eax, eax
mov ecx, dword [esp + 0x41c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0041b2a7
mov esp, ebp
pop ebp
ret 0x18

Function at 0x407570
Capabilities:
Create thread

Disassembly:
push 4
mov eax, 0x44d090
call fcn.0041bbae
mov esi, ecx
push 4
xor ebx, ebx
call fcn.0041b2e6
mov edx, dword [ebp + 8]
mov dword [ebp + 8], eax
mov dword [eax], edx
lea edi, [esi + 4]
mov dword [ebp - 4], ebx
push edi
push ebx
push eax
push 0x407961
push ebx
push ebx
call fcn.00426f9d
add esp, 0x1c
mov dword [esi], eax
test eax, eax
je 0x4075b7
mov eax, esi
call fcn.0041bb7c
ret 4
push 6
mov dword [edi], ebx
call fcn.0041a32d
int3
Function at 0x408142
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebx
xor ebx, ebx
test ecx, ecx
je 0x408165
cmp word [ecx], bx
je 0x408165
push ecx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x408165
push 1
test al, 0x10
movzx ebx, bl
pop ecx
cmove ebx, ecx
mov al, bl
pop ebx
ret

Function at 0x408222
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x46b034]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
xor eax, eax
push esi
push edi
push 0xa
pop ecx
push dword [ebp + 8]
lea edi, [ebp - 0x2c]
mov esi, edx
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2c]
push 0x462440
push eax
call fcn.00406821
add esp, 0xc
lea eax, [ebp - 0x2c]
push esi
push eax
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov esi, eax
test esi, esi
je 0x4082d0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
je 0x4082d0
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
test edi, edi
je 0x4082d0
push esi
push 0
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
test esi, esi
je 0x4082d0
lea eax, [esi + 1]
cmp eax, dword [ebx + 0x10]
ja 0x4082b0
cmp dword [ebx + 0x14], 0x10
mov edx, ebx
jb 0x4082a6
mov edx, dword [ebx]
xor ecx, ecx
mov dword [ebx + 0x10], eax
mov byte [edx + eax], cl
jmp 0x4082bc
sub eax, dword [ebx + 0x10]
push ecx
push eax
mov ecx, ebx
call fcn.00408a44
push ecx
mov ecx, ebx
call fcn.00406775
push esi
push edi
call fcn.0040212c
xor ecx, ecx
inc ecx
jmp 0x4082d2
xor ecx, ecx
mov eax, ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041b2a7
leave
ret

Function at 0x4082e3
Capabilities:
Get file version info

Disassembly:
push 0x18
mov eax, 0x44d1d0
call fcn.0041bc17
mov esi, edx
mov ebx, ecx
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x18]
push eax
push ebx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
push eax
mov dword [ebp - 0x1c], eax
call fcn.0041b56c
pop ecx
mov edi, eax
xor eax, eax
push edi
push dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
push eax
push ebx
mov dword [ebp - 0x14], eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x408367
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x462348
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x408367
mov ax, word [ecx + 0xa]
mov word [esi], ax
mov ax, word [ecx + 8]
mov word [esi + 2], ax
mov ax, word [ecx + 0xe]
mov word [esi + 4], ax
mov ax, word [ecx + 0xc]
mov word [esi + 6], ax
xor esi, esi
inc esi
test edi, edi
je 0x408380
push edi
call fcn.0041b567
pop ecx
jmp 0x408380
mov eax, esi
call fcn.0041bb7c
ret
Function at 0x40838d
Capabilities:
Get common file path

Disassembly:
push 0x854
mov eax, 0x44d208
call fcn.0041bbe1
mov ebx, ecx
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.0041cff0
add esp, 0xc
lea eax, [ebp - 0x810]
push eax
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x840]
call fcn.00401a79
and dword [ebp - 4], 0
lea edi, [ebp - 0x828]
xor eax, eax
stosd dword es:[edi], eax
push 7
pop ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x814], ecx
mov word [ebp - 0x828], ax
push 8
mov byte [ebp - 4], 1
pop edi
cmp ecx, edi
lea eax, [ebp - 0x828]
push 0xa
cmovae eax, dword [ebp - 0x828]
lea edx, [ebp - 0x828]
and dword [ebp - 0x818], 0
xor ecx, ecx
mov word [eax], cx
pop ecx
call fcn.00409de7
lea eax, [ebp - 0x828]
push eax
lea edx, [ebp - 0x840]
lea ecx, [ebp - 0x858]
call fcn.00408d65
pop ecx
cmp dword [eax + 0x14], edi
jb 0x40844a
mov eax, dword [eax]
push 0
push eax
call fcn.00426968
pop ecx
pop ecx
lea ecx, [ebp - 0x858]
mov esi, eax
call fcn.004024e4
test esi, esi
jne 0x40846d
mov ecx, dword [ebp - 0x814]
jmp 0x408401
lea eax, [ebp - 0x828]
push eax
lea edx, [ebp - 0x840]
lea ecx, [ebp - 0x858]
call fcn.00408d65
pop ecx
push eax
mov ecx, ebx
call fcn.00401a42
lea ecx, [ebp - 0x858]
call fcn.004024e4
cmp dword [ebx + 0x14], edi
jb 0x4084a0
mov ebx, dword [ebx]
mov eax, dword [ebp - 0x814]
cmp eax, edi
jb 0x4084f4
mov ecx, dword [ebp - 0x828]
lea eax, [eax*2 + 2]
mov dword [ebp - 0x85c], eax
mov dword [ebp - 0x860], ecx
cmp eax, 0x1000
jb 0x4084eb
lea eax, [ebp - 0x85c]
push eax
lea eax, [ebp - 0x860]
push eax
call fcn.00402494
mov eax, dword [ebp - 0x85c]
pop ecx
pop ecx
mov ecx, dword [ebp - 0x860]
push eax
push ecx
call fcn.0041b2b5
pop ecx
pop ecx
and dword [ebp - 0x818], 0
lea ecx, [ebp - 0x840]
xor eax, eax
mov dword [ebp - 0x814], 7
mov word [ebp - 0x828], ax
call fcn.004024e4
mov eax, ebx
call fcn.0041bb90
ret