joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5a9a20
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x100
mov ebx, ecx
mov eax, dword [0x5f3024]
xor eax, ebp
mov dword [esp + 0xf8], eax
pcmpeqd xmm0, xmm0
lea esi, [esp + 0xb0]
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
lea edi, [ecx + 0x10]
mov ecx, edi
call fcn.0053f090
mov ecx, ebx
push esi
push 0
push 0x40
push edx
push eax
call fcn.005ad910
test al, al
je 0x5a9adf
movzx eax, word [esp + 0xb0]
cmp eax, 0x5a4d
jne 0x5a9b0d
mov ecx, edi
call fcn.0053f090
mov edi, eax
mov eax, dword [esp + 0xec]
mov esi, eax
sar esi, 0x1f
add edi, eax
adc esi, edx
mov ecx, ebx
push dword [ebp + 8]
push 0
push 0xf8
push esi
push edi
call fcn.005ad910
test al, al
je 0x5a9b42
mov eax, dword [ebp + 8]
cmp dword [eax], 0x4550
jne 0x5a9b74
mov eax, dword [ebp + 0xc]
mov bl, 1
test eax, eax
je 0x5a9af3
mov dword [eax], edi
mov dword [eax + 4], esi
jmp 0x5a9af3
push 1
call fcn.004cfe20
add esp, 4
test al, al
jne 0x5a9baa
xor ebx, ebx
mov ecx, dword [esp + 0xf8]
xor ecx, ebp
call fcn.0050db32
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 1
call fcn.004cfe20
add esp, 4
test al, al
je 0x5a9af1
lea edi, [esp + 0xc]
mov ecx, edi
push 1
push 0x15a
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00458830
lea eax, [esp + 0x14]
push 0x21
push str.invalid_e_magic_in_dos_header_of
jmp 0x5a9bcc
push 1
call fcn.004cfe20
add esp, 4
test al, al
je 0x5a9af1
lea edi, [esp + 0xc]
mov ecx, edi
push 1
push 0x162
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00458830
lea eax, [esp + 0x14]
push 0x1f
push str.could_not_read_nt_headers_from
jmp 0x5a9bcc
push 1
call fcn.004cfe20
add esp, 4
test al, al
je 0x5a9af1
lea edi, [esp + 0xc]
mov ecx, edi
push 1
push 0x168
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00458830
lea eax, [esp + 0x14]
push 0x23
push str.invalid_signature_in_nt_headers_of
jmp 0x5a9bcc
lea edi, [esp + 0xc]
mov ecx, edi
push 1
push 0x154
push str....._third_partycrashpadcrashpad_snapshotwinpe_image_reader.cc
call fcn.00458830
lea eax, [esp + 0x14]
push 0x1f
push str.could_not_read_dos_header_from
push eax
call fcn.0053f210
add esp, 0xc
movzx ecx, byte [ebx + 0xb]
test cl, cl
jns 0x5a9be4
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx]
jmp 0x5a9be7
and ecx, 0x7f
push ecx
push ebx
push eax
call fcn.0053f210
add esp, 0xc
mov ecx, edi
call fcn.00458c70
jmp 0x5a9af1
Function at 0x419760
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, 0x40f015
lea edi, [esi - 0xe015]
push edi
or ebp, 0xffffffff
jmp 0x419782
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x419789
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x419778
nop
push 1
nop
pop eax
add ebx, ebx
jne 0x41979b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x419790
jne 0x4197ac
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x419790
sub ecx, ecx
sub eax, 3
jb 0x4197c0
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x419832
mov ebp, eax
add ebx, ebx
jne 0x4197cb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x4197d8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x4197fc
inc ecx
add ebx, ebx
jne 0x4197e8
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x4197dd
jne 0x4197f9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x4197dd
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x41981c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x41980d
jmp 0x41977e
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x41981c
add edi, ecx
jmp 0x41977e
pop esi
push esi
pop edi
mov ecx, 0x2b3
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x41983a
cmp byte [edi], 5
jne 0x41983a
mov eax, dword [edi]
mov bl, byte [edi + 4]
shr ax, 8
rol eax, 0x10
xchg ah, al
sub eax, edi
sub bl, 0xe8
add eax, esi
mov dword [edi], eax
add edi, 5
mov al, bl
loop 0x41983f
lea edi, [esi + 0x17000]
mov eax, dword [edi]
or eax, eax
je 0x4198b7
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x19000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x1908c]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x41986c
push edi
pop ecx
jns 0x41989b
movzx eax, word [edi]
inc edi
push eax
inc edi
mov ecx, 0xaef24857
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x19090]
or eax, eax
je 0x4198b1
mov dword [ebx], eax
add ebx, 4
jmp 0x419889
call dword [esi + 0x190a0]
mov ebp, dword [esi + 0x19094]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x19f]
and byte [eax], 0x7f
and byte [eax + 0x28], 0x7f
pop eax
push eax
push esp
push eax
push ebx
push edi
call ebp
pop eax
popal
lea eax, [esp - 0x80]
push 0
cmp esp, eax
jne 0x4198eb
sub esp, 0xffffff80
jmp 0x404c20

Function at 0x9145a0
Capabilities:
Encode data using xor

Disassembly:
jmp 0x9145aa
pushal
call 0x9145b0
pop ebp
sub ebp, 0x10
sub ebp, 0x5145a0
jmp 0x9145c6
mov eax, 0x5145a0
add eax, ebp
add eax, 0x4c
mov ecx, 0x5e7
mov edx, 0x466d88e7
xor byte [eax], dl
inc eax
dec ecx
jne 0x9145dd
jmp 0x9145f0
insb byte es:[edi], dx
sub ch, byte [esi + ebp*2 - 0x25]
out 0xe7, eax
out 0x66, eax
pop ds
out 0xe7, eax
out 0xe4, eax
sub bl, byte [edi - 0x1f]
out 0xe7, eax
out 0x5d, eax
iretd
Function at 0x431bd5
Capabilities:
Create directory
Delete directory

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
sub esp, 0xa28
push ebx
mov ebx, dword [ebp + 0xc]
lea eax, [ebp + 0xc]
push eax
lea ecx, [ebp - 0xa28]
push ecx
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
jne 0x431c07
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
lea eax, [ebp - 0xa28]
push eax
lea ecx, [ebp - 0x208]
push str.___s
push ecx
call fcn.004131bb
lea edx, [ebp - 0x208]
push edx
call fcn.004110e1
mov edi, eax
add esp, 0x10
cmp word [ebp + edi*2 - 0x20a], 0x5c
jne 0x431c51
cmp word [ebp + edi*2 - 0x20c], 0x3a
je 0x431c51
xor eax, eax
mov word [ebp + edi*2 - 0x20a], ax
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x431c6b
cmp byte [ebp + 0x10], al
jne 0x431c6b
pop edi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push esi
push 0
push 0x2200000
push 3
push 0
push 0
push 0x40000000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
je 0x431d1e
push 0x14
lea ecx, [ebp - 0x820]
push 0
push ecx
call fcn.00412e60
lea edx, [edi + edi]
mov word [ebp - 0x816], dx
mov eax, dword [ebp - 0x816]
push 0x104
lea ecx, [ebp - 0x208]
push ecx
lea edx, [ebp - 0x810]
add eax, 2
push edx
mov dword [ebp - 0x820], 0xa0000003
mov word [ebp - 0x814], ax
call fcn.00412eda
mov eax, dword [ebp - 0x816]
add esp, 0x18
push 0
add eax, 0xc
lea ecx, [ebp + 8]
push ecx
push 0
movzx edx, ax
push 0
add edx, 8
push edx
mov word [ebp - 0x81c], ax
lea eax, [ebp - 0x820]
push eax
push 0x900a4
push esi
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
push esi
test eax, eax
jne 0x431d30
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
pop esi
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
pop edi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0xc

Function at 0x431fe8
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x464]
test eax, eax
je 0x432000
cmp eax, 0x10000
jne 0x432024
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x45c]
push eax
push 0x10000
push 1
push ecx
call fcn.00414c24
add esp, 0x10
mov dword [esi + 0x464], 0
mov ecx, dword [esi + 0x464]
mov edx, dword [esi + 0x45c]
mov al, byte [ecx + edx]
inc ecx
mov dword [esi + 0x464], ecx
pop esi
pop ebp
ret 4

Function at 0x432075
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov dl, byte [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov ecx, dword [esi + 0x460]
mov eax, dword [esi + 0x458]
mov byte [eax + ecx], dl
inc dword [esi + 0x460]
cmp dword [esi + 0x460], 0x10000
jne 0x4320c4
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x458]
push eax
push 0x10000
push 1
push ecx
call fcn.004141d6
add esp, 0x10
mov dword [esi + 0x460], 0
pop esi
pop ebp
ret 8
Function at 0x432252
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov dword [0x4a7540], eax
mov edx, 1
mov eax, 0x4a7540
push edi
mov ecx, dword [eax]
mov edi, ecx
shr edi, 0x1e
xor edi, ecx
imul edi, edi, 0x6c078965
add edi, edx
mov dword [eax + 4], edi
add eax, 4
inc edx
cmp eax, 0x4a7efc
jl 0x432268
mov dword [0x49205c], 1
mov dword [0x4a7f10], 1
pop edi
pop ebp
ret

Function at 0x433187
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
mov esi, dword [ebp + 8]
push edi
test esi, esi
js 0x433223
jne 0x4331aa
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp esi, 0xf
jae 0x43321c
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp - 0x18]
push eax
call edi
test eax, eax
je 0x43321c
lea ecx, [ebp - 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [ebp - 0x10]
push edx
call edi
fnstcw word [ebp + 0xa]
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
sbb ecx, dword [ebp - 0x14]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
fild qword [ebp - 0x20]
movzx eax, word [ebp + 0xa]
fild qword [ebp - 0x28]
or eax, 0xc00
mov dword [ebp - 4], eax
fdivp st(1)
fmul qword [0x48cd28]
fldcw word [ebp - 4]
fistp qword [ebp - 8]
mov edx, dword [ebp - 8]
fldcw word [ebp + 0xa]
cmp edx, esi
jb 0x4331c9
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push esi
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x4333a3
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 4]
push eax
push 0x28
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x433403
lea ecx, [ebp - 0x10]
push ecx
push str.SeShutdownPrivilege
push 0
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
mov eax, dword [ebp - 4]
push 0
push 0
push 0
lea edx, [ebp - 0x14]
push edx
push 0
push eax
mov dword [ebp - 0x14], 1
mov dword [ebp - 8], 2
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x43340a
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
cmp ebx, 0x20
je 0x433456
cmp ebx, 0x40
je 0x433469
test bl, 0xb
jne 0x433427
push 0
push ebx
call dword [sym.imp.USER32.dll_ExitWindowsEx]
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
test bl, 0x14
je 0x433433
mov ecx, 1
xor eax, eax
test bl, 2
je 0x43343f
mov eax, 1
mov edx, dword [ebp + 0xc]
push edx
push eax
push ecx
push 0
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_InitiateSystemShutdownExW]
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
push 0
push eax
call dword [sym.imp.KERNEL32.dll_SetSystemPowerState]
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
push eax
push eax
call dword [sym.imp.KERNEL32.dll_SetSystemPowerState]
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x433478
Capabilities:
Get hostname
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x298
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
lea eax, [ebp - 0x298]
push eax
push 0x101
call dword [sym.imp.WSOCK32.dll_WSAStartup]
test eax, eax
jne 0x433555
push 0x100
lea ecx, [ebp - 0x108]
push ecx
call dword [sym.imp.WSOCK32.dll_gethostname]
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.WSOCK32.dll_gethostbyname]
test eax, eax
je 0x433555
mov eax, dword [eax + 0xc]
xor edx, edx
cmp dword [eax], edx
je 0x4334e1
mov ecx, eax
lea ecx, [ecx]
add ecx, 4
inc edx
cmp dword [ecx], 0
jne 0x4334d8
cmp esi, edx
jle 0x4334ff
push str.0.0.0.0
push edi
call fcn.00411487
add esp, 8
call dword [sym.imp.WSOCK32.dll_WSACleanup]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + esi*4 - 4]
push 4
push eax
lea ecx, [ebp - 4]
push ecx
call fcn.00410d80
mov edx, dword [ebp - 4]
add esp, 0xc
push edx
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.00413570
lea ecx, [ebp - 0x108]
push 0xffffffffffffffff
push ecx
call fcn.0043297c
mov esi, eax
push esi
push edi
call fcn.00411487
push esi
call fcn.004110fc
add esp, 0x1c
call dword [sym.imp.WSOCK32.dll_WSACleanup]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x484e64
push edi
call fcn.00411487
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x4335b2
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x20c
push 0x104
push eax
lea ecx, [ebp - 0x20c]
push ecx
call fcn.00433229
lea edx, [ebp - 0x20c]
push edx
call fcn.004110e1
add esp, 0x10
test eax, eax
je 0x4335fa
cmp word [ebp + eax*2 - 0x20e], 0x5c
lea eax, [ebp + eax*2 - 0x20e]
jne 0x4335fa
xor ecx, ecx
mov word [eax], cx
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4336a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x433634
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x433639
mov al, 1
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x4336a4
push esi
push edi
lea edi, [ebp - 0x20c]
call fcn.0040f260
mov esi, eax
push 0x5c
push esi
call fcn.00413daa
add esp, 8
test eax, eax
jne 0x433668
push esi
call fcn.004110fc
add esp, 4
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret
push ebx
xor ecx, ecx
push esi
mov word [eax], cx
call fcn.004335b2
push esi
mov bl, al
call fcn.004110fc
add esp, 8
test bl, bl
je 0x433697
push 0
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
setne bl
mov al, bl
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test al, 0x10
jne 0x43362e
xor al, al
mov esp, ebp
pop ebp
ret

Function at 0x43397d
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x433997
test al, 0x10
je 0x433997
mov al, 1
pop ebp
ret
xor al, al
pop ebp
ret
Function at 0x43399b
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x254
push esi
mov esi, dword [ebp + 8]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4339da
lea eax, [esp + 8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
jne 0x4339cf
or eax, eax
pop esi
mov esp, ebp
pop ebp
ret
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 8]
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x441c02
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [ebp - 0x20]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x220]
push edx
push 0
push esi
mov dword [ebp - 4], 0xff
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
je 0x441d06
mov edi, dword [ebp + 0xc]
mov eax, edi
or eax, 0x20019
mov dword [ebp - 0xc], eax
jmp 0x441c55
mov eax, dword [ebp - 0xc]
lea ecx, [ebp - 8]
push ecx
push eax
push 0
lea edx, [ebp - 0x220]
push edx
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x441d18
mov eax, dword [ebp - 8]
push edi
push eax
call fcn.00441c02
mov ecx, dword [ebp - 8]
add esp, 8
push ecx
mov bl, al
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x441d18
lea edx, [ebp - 0x18]
xor ebx, ebx
push edx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x10], ebx
call fcn.00430c1e
test al, al
je 0x441cbf
push ebx
push edi
lea eax, [ebp - 0x220]
push eax
push esi
lea ecx, [ebp - 0x18]
push ecx
call fcn.00441bdf
call eax
jmp 0x441ccd
lea edx, [ebp - 0x220]
push edx
push esi
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
cmp eax, ebx
jne 0x441d0f
lea eax, [ebp - 0x18]
push eax
call fcn.00430e20
lea ecx, [ebp - 0x20]
push ecx
push ebx
push ebx
push ebx
lea edx, [ebp - 4]
push edx
lea eax, [ebp - 0x220]
push eax
push ebx
push esi
mov dword [ebp - 4], 0xff
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x441c52
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x18]
push ecx
call fcn.00430e20
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x442285
Capabilities:
Query remote server for available data
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
mov eax, 1
push 0
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
push 0
lea eax, [ebp + 0xc]
push eax
push ebx
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
cmp dword [ebp + 0xc], 0
jne 0x4422b8
mov dword [ebp + 0xc], 0x400
cmp dword [ebp + 8], 0
je 0x442312
lea esp, [esp]
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.004318f4
add esp, 4
mov edi, eax
mov eax, dword [ebp + 0xc]
lea edx, [ebp + 8]
push edx
push eax
push edi
push ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x442342
mov eax, dword [ebp + 8]
test eax, eax
je 0x442309
push eax
push edi
lea ecx, [esi + 0x44]
push ecx
call fcn.0043188f
mov eax, dword [ebp + 8]
add dword [esi + 8], eax
adc dword [esi + 0xc], 0
test eax, eax
jne 0x4422c5
jmp 0x442312
push edi
call fcn.004110fc
add esp, 4
mov edx, dword [esi + 8]
or edx, dword [esi + 0xc]
jne 0x44232f
push edx
push 0xdeadbeef
push 0x21
push esi
call fcn.00442252
pop edi
pop esi
pop ebx
pop ebp
ret 8
push 1
push 0
push 0
push esi
call fcn.00442252
pop edi
pop esi
pop ebx
pop ebp
ret 8
push edi
call fcn.004110fc
add esp, 4
push 0
push 0xdeadbeef
push 0x20
push esi
call fcn.00442252
pop edi
pop esi
pop ebx
pop ebp
ret 8
Function at 0x443253
Capabilities:
Create pipe

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0xc], 0xc
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
test al, 0x10
je 0x443331
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x4432a3
push 1
push esi
push eax
call fcn.004325b1
mov eax, dword [esi]
add esp, 0xc
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov dword [esi], 0
mov eax, dword [esi]
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [ebp + 0x10]
push 0
lea ecx, [ebp - 0xc]
push ecx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x44330e
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret 0xc
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esi], eax
test eax, eax
je 0x4432e4
cmp eax, 0xffffffff
jne 0x44328e
push 0
push 0x80
push 3
lea eax, [ebp - 0xc]
push eax
push 1
push accept
push 0x488090
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x4432a3
test eax, eax
je 0x4432a3
mov edx, dword [esi]
push 1
lea ecx, [ebp + 0xc]
push ecx
push edx
call fcn.004325b1
push esi
call fcn.004325e5
mov eax, dword [ebp + 0xc]
add esp, 0x10
mov dword [esi], eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
test al, 1
je 0x4432d1
mov eax, dword [esi]
test eax, eax
je 0x4432b2
pop esi
mov esp, ebp
pop ebp
ret 0xc

Function at 0x443346
Capabilities:
Create pipe

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xc], 0xc
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
test al, 0x10
je 0x443425
push ecx
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x443398
push 1
push esi
push eax
call fcn.004325b1
mov eax, dword [esi]
add esp, 0xc
pop esi
mov esp, ebp
pop ebp
ret 0x14
mov dword [esi], 0
mov eax, dword [esi]
pop esi
mov esp, ebp
pop ebp
ret 0x14
mov edx, dword [ebp + 0x18]
push 0
lea ecx, [ebp - 0xc]
push ecx
push esi
push edx
call dword [sym.imp.KERNEL32.dll_CreatePipe]
test eax, eax
jne 0x443402
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret 0x14
push ecx
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [esi], eax
test eax, eax
je 0x4433d8
cmp eax, 0xffffffff
jne 0x443383
push 0
push 0x80
push 3
lea eax, [ebp - 0xc]
push eax
push 2
push 0x40000000
push 0x488090
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x443398
test eax, eax
je 0x443398
mov edx, dword [esi]
push 1
lea ecx, [ebp + 0x14]
push ecx
push edx
call fcn.004325b1
push esi
call fcn.004325e5
mov eax, dword [ebp + 0x14]
add esp, 0x10
mov dword [esi], eax
pop esi
mov esp, ebp
pop ebp
ret 0x14
test dword [ebp + 0xc], eax
je 0x4433c6
mov eax, dword [esi]
test eax, eax
je 0x4433a7
pop esi
mov esp, ebp
pop ebp
ret 0x14
Function at 0x443465
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
xor edx, edx
push ecx
mov dword [ebp + 0x10], edx
call fcn.00432602
test al, al
je 0x4434b5
test ebx, ebx
je 0x4434b5
test edi, edi
je 0x4434b5
push esi
push edx
lea eax, [ebp + 0x10]
push eax
lea esi, [ecx + 0x18]
mov ecx, dword [esi]
push edi
push ebx
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4434ab
push esi
call fcn.004325e5
add esp, 4
mov eax, dword [ebp + 0x10]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
pop edi
mov eax, edx
pop ebx
pop ebp
ret 0xc

Function at 0x4438c5
Capabilities:
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
cmp byte [ebp + 0xc], 1
push esi
mov esi, dword [ebp + 8]
jne 0x4438e3
push esi
call fcn.0043337b
add esp, 4
test al, al
jne 0x4438fc
push 1
jmp 0x4438e5
push 0
push 0
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
pop esi
pop ebp
ret

Function at 0x443b8b
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
push edi
mov edi, dword [ebp + 0x18]
xor esi, esi
mov byte [0x4974ee], 0
test edi, edi
je 0x443bd0
mov byte [0x4974ef], 1
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 8], eax
lea eax, [ebp + 0x18]
push eax
push esi
lea ecx, [ebp - 8]
push ecx
push 0x443a65
push esi
push esi
mov dword [ebp - 4], edi
call fcn.00413c9f
add esp, 0x18
mov esi, eax
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp + 8]
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov edi, eax
test esi, esi
je 0x443c03
push 0xffffffffffffffff
push esi
mov byte [0x4974ef], 0
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x4974ee], 1
jne 0x443c15
pop edi
or eax, 0xffffffff
pop esi
mov esp, ebp
pop ebp
ret
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x443d3a
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
push esi
call fcn.00443d1d
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
push 0
lea eax, [ebp + 8]
push eax
mov eax, dword [esi]
push ecx
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp + 8]
add dword [esi + 0x10], eax
adc dword [esi + 0x14], 0
pop esi
pop ebp
ret 0xc