joyce8/EMBER2024-capa huggingface dataset:
Function at 0x45674c
Capabilities:
Get keyboard layout
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffda0
push ebx
xor edx, edx
mov dword [ebp - 0x260], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4568f7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x34], 0
jne 0x4568d8
mov dl, 1
mov eax, dword [0x415c50]
call fcn.004032ec
mov edx, dword [ebp - 4]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 4]
add eax, 0x38
call fcn.0040410c
lea eax, [ebp - 0x114]
push eax
push 0x40
call sub.user32.dll_GetKeyboardLayoutList
dec eax
test eax, eax
jl 0x4568c7
inc eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x114]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.00444504
test al, al
je 0x4568ba
lea eax, [ebp - 0xc]
push eax
push 0x20019
push 0
push 0
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov dword [ebp - 0x25c], eax
mov byte [ebp - 0x258], 0
lea ecx, [ebp - 0x25c]
mov edx, 0x456908
lea eax, [ebp - 0x254]
call fcn.004090a4
push eax
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x4568ba
xor eax, eax
push ebp
push 0x4568b3
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], pe_nt_image_headers32
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x214]
push eax
push 0
push 0
push 0x456940
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x45689c
lea eax, [ebp - 0x260]
lea edx, [ebp - 0x214]
mov ecx, pe_nt_image_headers32
call fcn.0040437c
mov edx, dword [ebp - 0x260]
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x3c]
jne 0x45689c
mov eax, dword [ebp - 4]
add eax, 0x38
lea edx, [ebp - 0x214]
mov ecx, pe_nt_image_headers32
call fcn.0040437c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4568ba
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
add dword [ebp - 0x14], 4
dec dword [ebp - 0x10]
jne 0x4567bd
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x34]
mov byte [eax + 0x1d], 0
mov dl, 1
call fcn.0041a608
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x34]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4568fe
lea eax, [ebp - 0x260]
call fcn.0040410c
ret

Function at 0x45722c
Capabilities:
Create thread
Set global application hook

Disassembly:
push ecx
mov eax, dword [0x48dbb8]
cmp byte [eax + 0xa5], 0
jne 0x45729d
cmp dword [0x48dbd0], 0
jne 0x45725e
call sub.kernel32.dll_GetCurrentThreadId_1
push eax
push 0
mov eax, 0x4571e8
push eax
push 3
call sub.user32.dll_SetWindowsHookExA
mov dword [0x48dbd0], eax
cmp dword [0x48dbcc], 0
jne 0x457279
push 0
push 0
push 0
push 0
call sub.kernel32.dll_CreateEventA
mov dword [0x48dbcc], eax
cmp dword [0x48dbd4], 0
jne 0x45729d
push esp
push 0
push 0
push 0x45718c
push 0x3e8
push 0
call sub.kernel32.dll_CreateThread_1
mov dword [0x48dbd4], eax
pop edx
ret
Function at 0x457394
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffefc
push ebx
push esi
test dl, dl
je 0x4573ab
add esp, 0xfffffff0
call fcn.00403640
mov byte [ebp - 1], dl
mov ebx, eax
xor edx, edx
mov eax, ebx
call fcn.0041ea64
mov eax, dword [0x48c288]
cmp word [eax + 2], 0
jne 0x4573d3
mov eax, dword [0x48c288]
mov dword [eax + 4], ebx
mov dword [eax], fcn.00458a84
mov eax, dword [0x48c3ac]
cmp word [eax + 2], 0
jne 0x4573ed
mov eax, dword [0x48c3ac]
mov dword [eax + 4], ebx
mov dword [eax], fcn.00458c7c
mov byte [ebx + 0x34], 0
mov dl, 1
mov eax, dword [0x415478]
call fcn.004032ec
mov dword [ebx + 0x90], eax
mov dl, 1
mov eax, dword [0x415478]
call fcn.004032ec
mov dword [ebx + 0xa8], eax
xor eax, eax
mov dword [ebx + 0x60], eax
xor eax, eax
mov dword [ebx + 0x84], eax
mov dword [ebx + 0x5c], 0xff000018
mov dword [ebx + 0x78], 0x1f4
mov byte [ebx + 0x7c], 1
xor eax, eax
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x74], 0x9c4
mov byte [ebx + 0x88], 0
mov byte [ebx + 0x9d], 1
mov byte [ebx + 0xb4], 1
mov dl, 1
mov eax, dword [0x421050]
call fcn.00428e80
mov esi, eax
mov dword [ebx + 0x98], esi
push 0x457574
mov eax, dword [0x48c134]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov edx, eax
mov eax, esi
call fcn.00429250
mov eax, dword [ebx + 0x98]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], 0x45921c
push pe_nt_image_headers32
lea eax, [ebp - 0x101]
push eax
mov eax, dword [0x48c134]
mov eax, dword [eax]
push eax
call sub.kernel32.dll_GetModuleFileNameA_1
lea eax, [ebp - 0x101]
push eax
lea eax, [ebp - 0x101]
push eax
call sub.user32.dll_OemToCharA
lea eax, [ebp - 0x101]
mov dl, 0x5c
call fcn.0040c970
test eax, eax
je 0x4574e2
lea edx, [eax + 1]
lea eax, [ebp - 0x101]
call fcn.00408a98
lea eax, [ebp - 0x101]
mov dl, 0x2e
call fcn.0040c998
test eax, eax
je 0x4574f6
mov byte [eax], 0
lea eax, [ebp - 0x101]
inc eax
push eax
call sub.user32.dll_CharLowerA
lea eax, [ebx + 0x8c]
lea edx, [ebp - 0x101]
mov ecx, pe_nt_image_headers32
call fcn.0040437c
mov eax, dword [0x48bf38]
cmp byte [eax], 0
jne 0x45752a
mov eax, ebx
call fcn.0045769c
mov byte [ebx + 0x59], 1
mov byte [ebx + 0x5a], 1
mov byte [ebx + 0x5b], 1
mov byte [ebx + 0x9e], 1
xor eax, eax
mov dword [ebx + 0xa0], eax
mov eax, ebx
call fcn.004593f8
mov eax, ebx
call fcn.00459dbc
mov eax, ebx
cmp byte [ebp - 1], 0
je 0x45756a
call fcn.00403698
pop dword fs:[0]
add esp, 0xc
mov eax, ebx
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x45791c
Capabilities:
Enumerate gui resources

Disassembly:
push ebx
push esi
add esp, 0xfffffff8
mov ebx, eax
mov eax, dword [0x48dbb8]
cmp dword [eax + 0x30], 0
je 0x4579c6
cmp dword [ebx + 0x94], 0
jne 0x4579c0
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
mov byte [esp + 4], dl
mov eax, esp
push eax
push 0x4578ac
call sub.user32.dll_EnumWindows
mov eax, dword [ebx + 0x90]
cmp dword [eax + 8], 0
je 0x4579c0
push 3
mov eax, dword [esp + 4]
push eax
call sub.user32.dll_GetWindow
mov esi, eax
mov dword [esp], esi
push 0xffffffffffffffec
push esi
call sub.user32.dll_GetWindowLongA
test al, 8
je 0x457986
mov dword [esp], 0xfffffffe
mov eax, dword [ebx + 0x90]
mov esi, dword [eax + 8]
dec esi
cmp esi, 0
jl 0x4579c0
push 0x213
push 0
push 0
push 0
push 0
mov eax, dword [esp + 0x14]
push eax
mov edx, esi
mov eax, dword [ebx + 0x90]
call fcn.00417c90
push eax
call sub.user32.dll_SetWindowPos
dec esi
cmp esi, 0xffffffff
jne 0x457995
inc dword [ebx + 0x94]
pop ecx
pop edx
pop esi
pop ebx
ret

Function at 0x458528
Capabilities:
Get graphical window text

Disassembly:
push ebx
push esi
add esp, 0xffffff00
mov esi, edx
mov ebx, eax
cmp byte [ebx + 0xa4], 0
je 0x45855d
push pe_nt_image_headers32
lea eax, [esp + 4]
push eax
mov eax, dword [ebx + 0x30]
push eax
call sub.user32.dll_GetWindowTextA
mov ecx, eax
mov edx, esp
mov eax, esi
call fcn.004041fc
jmp 0x45856a
mov eax, esi
mov edx, dword [ebx + 0x8c]
call fcn.00404160
add esp, 0x100
pop esi
pop ebx
ret

Function at 0x4595d4
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
mov ebx, eax
mov esi, dword [ebx + 0x84]
test esi, esi
je 0x459615
mov eax, esi
call fcn.0043fb80
test al, al
je 0x459615
mov eax, dword [ebx + 0x84]
call fcn.0043f87c
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x459615
push 0
mov eax, dword [ebx + 0x84]
call fcn.0043f87c
push eax
call sub.user32.dll_ShowWindow
pop esi
pop ebx
ret
Function at 0x466f64
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
mov edi, ecx
mov esi, edx
mov ebx, eax
lea eax, [ebp - 0x10]
mov edx, dword [0x4149cc]
call fcn.00404a98
xor eax, eax
push ebp
push 0x4670a8
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x48b438], 0
jne 0x466fb7
mov ecx, dword [0x48bf5c]
mov dl, 1
mov eax, dword [0x407348]
call fcn.0040bba8
call fcn.00403aa8
lea eax, [ebp - 0x20]
xor ecx, ecx
mov edx, 0x10
call fcn.00402d30
mov eax, ebx
call fcn.00404948
mov dword [ebp - 0x1c], eax
push esi
push edi
mov esi, 0x4670b8
lea edi, [ebp - 0x30]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xc]
call fcn.00405a1c
xor eax, eax
mov dword [ebp - 8], eax
mov eax, ebx
call fcn.00404958
test eax, eax
jle 0x46704f
mov dword [ebp - 4], 0x10
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x40]
push eax
call sub.kernel32.dll_GetComputerNameA
test eax, eax
je 0x467048
lea eax, [ebp - 0x44]
mov edx, ebx
call fcn.00404394
mov eax, dword [ebp - 0x44]
push eax
lea eax, [ebp - 0x48]
lea edx, [ebp - 0x40]
mov ecx, 0x10
call fcn.0040437c
mov eax, dword [ebp - 0x48]
pop edx
call fcn.004081cc
test eax, eax
jne 0x467048
mov ebx, 0x15
jmp 0x467054
mov ebx, 0x10
jmp 0x467054
mov ebx, 0x15
lea eax, [ebp - 0x10]
push eax
push 1
lea eax, [ebp - 0x20]
push eax
push ebx
push 0
push esi
call dword [0x48b438]
call fcn.00466e60
mov eax, dword [ebp - 8]
call fcn.00466e60
mov eax, edi
mov edx, dword [ebp - 0xc]
call fcn.00405a34
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4670af
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.00404130
lea eax, [ebp - 0x10]
mov edx, dword [0x4149cc]
call fcn.00404b68
ret
Function at 0x475354
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov bl, byte [0x47538c]
push 0x10
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x47536a
or bl, 1
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x475379
or bl, 4
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x475388
or bl, 2
mov eax, ebx
pop ebx
ret

Function at 0x475a50
Capabilities:
Hide graphical window

Disassembly:
mov eax, dword [0x48c378]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x475a7d
mov edx, dword [0x48c378]
xor edx, edx
call fcn.00451f68
push 0
mov eax, dword [0x48c378]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_ShowWindow
ret

Function at 0x478bbc
Capabilities:
Check for software breakpoints

Disassembly:
push ebx
mov ebx, eax
cmp dword [ebx + 0x14], 0xca
jne 0x478bea
mov eax, ebx
call fcn.00479670
cmp dword [ebx + 0x40], 0
je 0x478be3
mov dword [ebx + 0x14], 0xcf
mov eax, 1
pop ebx
ret
mov dword [ebx + 0x14], 0xcb
cmp dword [ebx + 0x14], 0xcb
jne 0x478c5b
mov edx, dword [ebx + 0x1b4]
cmp dword [edx + 0x10], 0
je 0x478c4d
cmp dword [ebx + 8], 0
je 0x478c0c
mov eax, ebx
mov edx, dword [eax + 8]
call dword [edx]
mov eax, ebx
mov edx, dword [eax + 0x1b4]
call dword [edx]
test eax, eax
jne 0x478c1e
xor eax, eax
pop ebx
ret
cmp eax, 2
je 0x478c4d
cmp dword [ebx + 8], 0
je 0x478bff
cmp eax, 3
je 0x478c31
dec eax
jne 0x478bff
mov edx, dword [ebx + 8]
inc dword [edx + 4]
mov ecx, dword [edx + 4]
mov eax, dword [ebx + 8]
cmp ecx, dword [eax + 8]
jl 0x478bff
mov edx, dword [ebx + 0x140]
add dword [eax + 8], edx
jmp 0x478bff
mov ecx, dword [ebx + 0x90]
mov dword [ebx + 0x98], ecx
jmp 0x478c79
cmp dword [ebx + 0x14], 0xcc
je 0x478c79
mov eax, dword [ebx]
mov dword [eax + 0x14], 0x14
mov edx, dword [ebx + 0x14]
mov dword [eax + 0x18], edx
mov eax, ebx
mov edx, dword [eax]
call dword [edx]
mov eax, ebx
call fcn.00478c84
pop ebx
ret
Function at 0x4100f8
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebx
push esi
add esp, 0xffffffec
mov esi, edx
mov ebx, eax
mov eax, esi
call fcn.0040348c
cmp dword [ebx + 0x78], 0xffffffff
je 0x41013a
mov dword [esp], 0x10
push esp
lea eax, [esp + 8]
push eax
mov eax, dword [ebx + 0x78]
push eax
call sub.wsock32.dll_getsockname
test eax, eax
jne 0x41013a
push dword [esp + 8]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
mov eax, esi
call fcn.00403644
add esp, 0x14
pop esi
pop ebx
ret

Function at 0x410188
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebx
mov ebx, eax
xor eax, eax
mov dword [ebx + 0x48], eax
cmp dword [ebx + 0x78], 0xffffffff
je 0x41019d
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x3c]
cmp byte [ebx + 8], 0
jne 0x4101b3
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebx + 0x78], eax
jmp 0x4101c1
push 0x11
push 2
push 2
call sub.wsock32.dll_socket
mov dword [ebx + 0x78], eax
cmp dword [ebx + 0x78], 0xffffffff
jne 0x4101dc
mov dl, 3
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov edx, 0x4101e8
mov al, 3
call fcn.0040ecd8
pop ebx
ret

Function at 0x410a68
Capabilities:
Send data
Send data on socket

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff0
mov ebp, ecx
mov edi, edx
mov ebx, eax
xor esi, esi
cmp byte [ebx + 8], 1
jne 0x410ac3
mov eax, esp
xor ecx, ecx
mov edx, 0x10
call fcn.00402880
mov word [esp], 2
mov ax, word [ebx + 0x9c]
push eax
call sub.wsock32.dll_htons
mov word [esp + 2], ax
mov eax, dword [ebx + 0x94]
mov dword [esp + 4], eax
push 0x10
lea eax, [esp + 4]
push eax
push 0
push ebp
push edi
mov eax, dword [ebx + 0x78]
push eax
call sub.wsock32.dll_sendto
jmp 0x410ad2
push ebp
push 0
mov ecx, edi
mov edx, dword [ebx + 0x78]
mov eax, ebx
call fcn.0040fd08
test eax, eax
jle 0x410adf
mov esi, eax
xor eax, eax
mov dword [ebx + 0x48], eax
jmp 0x410af0
inc eax
jne 0x410af0
call sub.wsock32.dll_WSAGetLastError
mov edx, eax
mov eax, ebx
call fcn.00410d24
mov eax, esi
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x417d38
Capabilities:
Query or enumerate registry key

Disassembly:
push ebx
push esi
mov ebx, edx
mov esi, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x1c
call fcn.00402880
lea eax, [ebx + 0x14]
push eax
push 0
lea eax, [ebx + 0x10]
push eax
lea eax, [ebx + 0xc]
push eax
lea eax, [ebx + 8]
push eax
push 0
lea eax, [ebx + 4]
push eax
push ebx
push 0
push 0
push 0
mov eax, dword [esi + 4]
push eax
call sub.advapi32.dll_RegQueryInfoKeyA
test eax, eax
sete al
mov edx, dword [0x4248c0]
cmp byte [edx + 8], 0
je 0x417d9c
mov edx, dword [0x4248bc]
cmp dword [edx], 2
jne 0x417d9c
mov edx, dword [ebx + 4]
add dword [ebx + 4], edx
mov edx, dword [ebx + 0xc]
add dword [ebx + 0xc], edx
pop esi
pop ebx
ret

Function at 0x417da0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x417e58
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x40]
lea edx, [ebp - 0x28]
mov eax, edi
call fcn.00417d38
test al, al
je 0x417e3a
mov ecx, dword [ebp - 0x1c]
inc ecx
lea eax, [ebp - 0xc]
xor edx, edx
call fcn.00403574
mov ebx, dword [ebp - 0x20]
dec ebx
test ebx, ebx
jl 0x417e3a
inc ebx
xor esi, esi
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 8], eax
push 0
push 0
push 0
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.004038d0
push eax
push esi
mov eax, dword [edi + 4]
push eax
call sub.advapi32.dll_RegEnumValueA
mov eax, dword [ebp - 0xc]
call fcn.004038d0
mov edx, eax
lea eax, [ebp - 0x2c]
call fcn.00403644
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x34]
inc esi
dec ebx
jne 0x417df3
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x417e5f
lea eax, [ebp - 0x2c]
call fcn.0040348c
lea eax, [ebp - 0xc]
call fcn.0040348c
ret

Function at 0x418010
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov ebx, eax
mov al, byte [ebp + 8]
call fcn.00417a98
mov esi, eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
push esi
push 0
mov eax, edi
call fcn.004038d0
push eax
mov eax, dword [ebx + 4]
push eax
call sub.advapi32.dll_RegSetValueExA
test eax, eax
je 0x41806e
mov dword [ebp - 0xc], edi
mov byte [ebp - 8], 0xb
lea eax, [ebp - 0xc]
push eax
push 0
mov ecx, dword [0x4247f0]
mov dl, 1
mov eax, dword [0x417990]
call fcn.00409328
call fcn.00402ed8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x418078
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
mov dword [ebp - 4], eax
lea eax, [ebp + 0xc]
push eax
push edi
lea eax, [ebp - 4]
push eax
push 0
mov eax, esi
call fcn.004038d0
push eax
mov eax, dword [ebx + 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
je 0x4180d0
mov dword [ebp - 0xc], esi
mov byte [ebp - 8], 0xb
lea eax, [ebp - 0xc]
push eax
push 0
mov ecx, dword [0x4248d0]
mov dl, 1
mov eax, dword [0x417990]
call fcn.00409328
call fcn.00402ed8
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
call fcn.00417ac8
mov edx, dword [ebp + 8]
mov byte [edx], al
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x4182c8
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x120], ebx
mov dword [ebp - 0x11c], ebx
test dl, dl
je 0x4182ee
add esp, 0xfffffff0
call fcn.00402c1c
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x41841c
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x115]
mov edx, ecx
call fcn.0040730c
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x115]
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov ebx, eax
test ebx, ebx
je 0x4183fe
mov eax, ebx
call fcn.00407400
mov edi, eax
push edi
push ebx
push 0
lea eax, [ebp - 0x115]
push eax
call sub.version.dll_GetFileVersionInfoA
mov dword [ebp - 0x14], 0xff
xor ebx, ebx
mov esi, 0x4244e0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x11c]
mov ecx, dword [esi]
mov edx, 0x418450
call fcn.00403758
mov edx, dword [ebp - 0x11c]
lea eax, [ebp - 0x115]
call fcn.0040730c
push eax
push edi
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x4183ac
lea edx, [ebp - 0x120]
mov eax, dword [ebp - 0x10]
call fcn.004073ec
mov edx, dword [ebp - 0x120]
xor eax, eax
mov al, bl
mov ecx, dword [ebp - 4]
lea eax, [ecx + eax*4 + 4]
call fcn.004034e0
jmp 0x4183bc
xor eax, eax
mov al, bl
mov edx, dword [ebp - 4]
lea eax, [edx + eax*4 + 4]
call fcn.0040348c
inc ebx
add esi, 4
cmp bl, 0xa
jne 0x418350
cmp dword [ebp + 8], 0
je 0x4183f7
mov dword [ebp - 0x14], 0x34
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x418470
push edi
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x4183f7
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
call fcn.00405d4c
mov eax, edi
call fcn.00407440
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x418423
lea eax, [ebp - 0x120]
mov edx, 2
call fcn.004034b0
ret
Function at 0x41ae24
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ebx
mov ebx, eax
xor eax, eax
push ebp
push 0x41aea9
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xc]
xor eax, eax
call fcn.00402800
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 8]
call fcn.004071a4
mov edx, dword [ebp - 8]
lea eax, [ebp - 4]
mov ecx, 0x41aec0
call fcn.00403758
push 8
push 0x41aed0
push dword [ebp - 4]
push 0x41aee0
push ebx
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.004037cc
mov eax, dword [ebp - 0x10]
call fcn.004038d0
push eax
call sub.kernel32.dll_WinExec
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41aeb0
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.004034b0
ret

Function at 0x4229ec
Capabilities:
Hide graphical window

Disassembly:
push ebx
push esi
add esp, 0xffffffac
mov ebx, eax
mov dword [esp], 8
mov dword [esp + 4], 4
mov eax, esp
call fcn.0040b2ec
lea eax, [esp + 0x44]
push eax
push ebx
call sub.user32.dll_GetClientRect
push 0
mov eax, dword [0x4254d4]
push eax
push 0x7d1
push ebx
push 0x16
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
push eax
push 0
push 0
push 0x40000900
push 0x422b78
push 0x422b7c
push 0
call sub.user32.dll_CreateWindowExA
mov esi, eax
mov ecx, 3
lea edx, [esp + 8]
mov eax, edx
mov byte [eax + 9], 0
mov byte [eax + 8], 4
xor ebx, ebx
mov dword [eax + 0xc], ebx
xor ebx, ebx
mov dword [eax + 0x10], ebx
add edx, 0x14
dec ecx
jne 0x422a52
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], 0x2711
mov dword [esp + 0x20], 0x2712
mov dword [esp + 0x34], 0x2713
push 1
push 3
push 8
push 0x10
push 0x10
call sub.comctl32.dll_ImageList_Create
mov dword [0x4258c0], eax
push 0x1020
push 0x10
push 0x30
push 0
push 0x422b8c
mov eax, dword [0x4254d4]
push eax
call sub.user32.dll_LoadImageA
mov ebx, eax
push 0
push ebx
mov eax, dword [0x4258c0]
push eax
call sub.comctl32.dll_ImageList_Add
push ebx
call sub.gdi32.dll_DeleteObject
push 1
push 3
push 8
push 0x10
push 0x10
call sub.comctl32.dll_ImageList_Create
mov dword [0x4258c4], eax
push 0
push 0x10
push 0x30
push 0
push 0x422b98
mov eax, dword [0x4254d4]
push eax
call sub.user32.dll_LoadImageA
mov ebx, eax
push 0
push ebx
mov eax, dword [0x4258c4]
push eax
call sub.comctl32.dll_ImageList_Add
push ebx
call sub.gdi32.dll_DeleteObject
push 0
push 0x14
push 0x41e
push esi
call sub.user32.dll_SendMessageA
mov eax, dword [0x4258c0]
push eax
push 0
push 0x430
push esi
call sub.user32.dll_SendMessageA
mov eax, dword [0x4258c4]
push eax
push 0
push 0x436
push esi
call sub.user32.dll_SendMessageA
lea eax, [esp + 8]
push eax
push 3
push 0x414
push esi
call sub.user32.dll_SendMessageA
push 5
push esi
call sub.user32.dll_ShowWindow
mov eax, esi
add esp, 0x54
pop esi
pop ebx
ret