joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40ecf0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
cmp dword [eax + 0x74], 0
jle 0x40ed30
push 0x41a
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x24]
add ecx, 4
call fcn.00403220
mov ecx, eax
call fcn.00403550
push eax
lea ecx, [ebp - 0x10]
call fcn.00408aa0
push 5
lea ecx, [ebp - 0x10]
call fcn.004048f0
push 0x3fe
lea edx, [ebp - 0x1c]
push edx
mov ecx, dword [ebp - 0x24]
add ecx, 4
call fcn.00403220
mov ecx, eax
call fcn.00403550
push eax
lea ecx, [ebp - 0xc]
call fcn.00408aa0
push 0
lea ecx, [ebp - 0xc]
call fcn.004048f0
push 0x384
mov ecx, dword [ebp - 0x24]
add ecx, 0x5c
call fcn.00408b80
push 0
mov ecx, dword [ebp - 0x24]
add ecx, 0x5c
call fcn.004048f0
push 5
mov ecx, dword [ebp - 0x24]
add ecx, 0x60
call fcn.004048f0
push 0x40b
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp - 0x24]
add ecx, 4
call fcn.00403220
mov ecx, eax
call fcn.00403550
push eax
lea ecx, [ebp - 8]
call fcn.00408aa0
push 5
lea ecx, [ebp - 8]
call fcn.004048f0
mov ecx, dword [ebp - 0x24]
cmp dword [ecx + 0x74], 0
jne 0x40edf0
lea ecx, [ebp - 0x14]
call fcn.00403510
push 0xf7
lea ecx, [ebp - 0x14]
call fcn.004036c0
lea ecx, [ebp - 0x14]
call fcn.00403550
push eax
mov ecx, dword [ebp - 0x24]
add ecx, 0x64
call fcn.004031e0
lea ecx, [ebp - 0x14]
call fcn.00403180
mov edx, dword [ebp - 0x24]
mov dword [edx + 0x58], 1
push 0
push 0
mov eax, dword [ebp - 0x24]
push eax
push 0x40eff0
push 0
push 0
call fcn.00422f9d
add esp, 0x18
mov ecx, dword [ebp - 0x24]
mov dword [ecx + 0x84], eax
lea edx, [ebp - 4]
push edx
mov ecx, dword [ebp - 0x24]
add ecx, 4
call fcn.00408440
push 1
lea ecx, [ebp - 4]
call fcn.0040f6c0
xor eax, eax
mov esp, ebp
pop ebp
ret 0x10
Function at 0x40f2a0
Capabilities:
Resume thread
Suspend thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 0x38], ecx
lea eax, [ebp - 0x2c]
push eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0x80]
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [ebp - 0x2c], 0x103
jne 0x40f2d6
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x80]
push ecx
call dword [sym.imp.KERNEL32.dll_SuspendThread]
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [ebp - 4], 0x103
jne 0x40f303
mov edx, dword [ebp - 0x38]
mov eax, dword [edx + 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_SuspendThread]
lea ecx, [ebp - 0x28]
call fcn.0040d910
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x28]
call fcn.00404dd0
cmp eax, 1
jne 0x40f337
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x28]
call fcn.0040d930
mov eax, dword [ebp - 0x30]
jmp 0x40f385
cmp dword [ebp - 0x2c], 0x103
jne 0x40f350
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 0x80]
push edx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
cmp dword [ebp - 4], 0x103
jne 0x40f369
mov eax, dword [ebp - 0x38]
mov ecx, dword [eax + 0x84]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
mov dword [ebp - 0x34], 1
lea ecx, [ebp - 0x28]
call fcn.0040d930
mov eax, dword [ebp - 0x34]
jmp 0x40f385
mov esp, ebp
pop ebp
ret

Function at 0x411d80
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ecx, 0x441210
call fcn.00412480
test eax, eax
jne 0x411da6
jmp 0x411e62
lea eax, [ebp - 8]
push eax
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x411df4
lea ecx, [ebp - 0x218]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x411df2
lea eax, [ebp - 0x218]
push eax
mov ecx, 0x441210
call fcn.00402c60
push str.duowanyy
mov ecx, 0x441210
call fcn.004049b0
jmp 0x411e03
push str.C:Program_Filesduowanyy
mov ecx, 0x441210
call fcn.00402c60
push 0x437bb4
lea ecx, [ebp - 0xc]
call fcn.00404910
lea ecx, [ebp - 0xc]
call fcn.00412480
test eax, eax
jne 0x411e47
lea ecx, [ebp - 0xc]
push ecx
push 0x437bb8
lea edx, [ebp - 0x21c]
push edx
call fcn.004124a0
push eax
mov ecx, 0x441210
call fcn.00408390
lea ecx, [ebp - 0x21c]
call fcn.00403180
mov eax, dword [0x441210]
push eax
push str.InitSetupPath__initialized_setup_path_is__s
call fcn.004010c0
add esp, 8
lea ecx, [ebp - 0xc]
call fcn.00403180
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00422e00
mov esp, ebp
pop ebp
ret
Function at 0x411fe0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x330
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x114
push 0
lea eax, [ebp - 0x330]
push eax
call fcn.00423050
add esp, 0xc
mov dword [ebp - 0x330], 0x114
lea ecx, [ebp - 0x330]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x32c], 4
jbe 0x41203b
cmp dword [ebp - 0x32c], 5
jne 0x41203f
cmp dword [ebp - 0x328], 0
jne 0x41203f
mov al, 1
jmp 0x412079
push 0x104
lea edx, [ebp - 0x210]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x210]
push ecx
call fcn.00411ec0
add esp, 4
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0
jne 0x412077
xor al, al
jmp 0x412079
mov al, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422e00
mov esp, ebp
pop ebp
ret
Function at 0x413ea0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x454
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x454], ecx
call fcn.00413810
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x2c]
call fcn.00416920
mov eax, dword [ebp - 0x454]
push eax
lea ecx, [ebp - 0x18]
call fcn.00414190
lea ecx, [ebp - 0x438]
call fcn.00416920
push 0x400
mov ecx, dword [ebp + 8]
push ecx
call fcn.00413870
add esp, 8
mov dword [ebp - 8], eax
push 2
push 0
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x413f1e
call fcn.00413880
mov dword [ebp - 0x444], eax
jmp 0x414073
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
jne 0x413f4f
call fcn.00413880
mov dword [ebp - 0x444], eax
jmp 0x414073
mov eax, dword [ebp - 0x440]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x448], eax
cmp dword [ebp - 0x448], 0
jne 0x413f7f
call fcn.00413880
mov dword [ebp - 0x444], eax
jmp 0x414073
mov edx, dword [ebp - 0x440]
push edx
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x448]
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0x1c]
add edx, 1
cmp edx, dword [ebp - 0x1c]
jae 0x413fcf
mov dword [ebp - 0x44c], 0x8007000e
lea ecx, [ebp - 0x438]
call fcn.00416d00
lea ecx, [ebp - 0x2c]
call fcn.00416940
mov eax, dword [ebp - 0x44c]
jmp 0x4140a8
mov eax, dword [ebp - 0x1c]
add eax, 1
push eax
lea ecx, [ebp - 0x438]
call fcn.00416cd0
lea ecx, [ebp - 0x438]
call fcn.00403550
test eax, eax
jne 0x413ffc
mov dword [ebp - 0x444], 0x8007000e
jmp 0x414073
mov ecx, dword [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x438]
call fcn.00403550
push eax
mov edx, dword [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0xc]
push eax
push 0
call fcn.00413810
push eax
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x43c], eax
cmp dword [ebp - 0x43c], 0
jne 0x41403e
call fcn.00413880
mov dword [ebp - 0x444], eax
jmp 0x414073
lea ecx, [ebp - 0x438]
call fcn.00403550
xor ecx, ecx
mov edx, dword [ebp - 0x43c]
mov word [eax + edx*2], cx
mov eax, dword [ebp + 0x14]
push eax
lea ecx, [ebp - 0x438]
call fcn.00403550
push eax
lea ecx, [ebp - 0x18]
call fcn.004141c0
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x10], 0
je 0x414083
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, dword [ebp - 0x444]
mov dword [ebp - 0x450], edx
lea ecx, [ebp - 0x438]
call fcn.00416d00
lea ecx, [ebp - 0x2c]
call fcn.00416940
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x30]
xor ecx, ebp
call fcn.00422e00
mov esp, ebp
pop ebp
ret 0x10
Function at 0x415980
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x230
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x230], ecx
lea ecx, [ebp - 0x14]
call fcn.00415750
mov eax, dword [ebp - 0x230]
mov ecx, dword [eax + 4]
or ecx, 0x2001f
push ecx
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x230]
mov ecx, dword [eax]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00415920
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4159eb
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x224], edx
lea ecx, [ebp - 0x14]
call fcn.00415780
mov eax, dword [ebp - 0x224]
jmp 0x415a7c
mov dword [ebp - 4], 0x100
lea eax, [ebp - 0xc]
push eax
push 0
push 0
push 0
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x220]
push edx
push 0
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x415a51
lea ecx, [ebp - 0x220]
push ecx
lea ecx, [ebp - 0x14]
call fcn.00415980
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x415a48
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x228], edx
lea ecx, [ebp - 0x14]
call fcn.00415780
mov eax, dword [ebp - 0x228]
jmp 0x415a7c
mov dword [ebp - 4], 0x100
jmp 0x4159f2
lea ecx, [ebp - 0x14]
call fcn.00415860
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x230]
call fcn.00415800
mov dword [ebp - 0x22c], eax
lea ecx, [ebp - 0x14]
call fcn.00415780
mov eax, dword [ebp - 0x22c]
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00422e00
mov esp, ebp
pop ebp
ret 4
Function at 0x415fe0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 0x14], ecx
xor eax, eax
jne 0x415fe9
xor ecx, ecx
jne 0x415fe9
xor edx, edx
cmp dword [ebp + 0xc], 0
setne dl
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0
jne 0x41600a
mov eax, 0xd
jmp 0x416065
xor eax, eax
jne 0x415ff1
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
lea edx, [ecx + eax*2]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax*2]
mov dword [ebp - 4], edx
cmp dword [ebp - 0xc], 1
jne 0x41601b
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
push 7
push 0
mov edx, dword [ebp + 8]
push edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esp, ebp
pop ebp
ret 8

Function at 0x4170c0
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], 0
jmp 0x4170d8
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0x100
jae 0x41712b
mov ecx, dword [ebp - 4]
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], 0
jmp 0x4170f9
mov edx, dword [ebp - 0xc]
add edx, 1
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 8
jge 0x41711c
mov eax, dword [ebp - 8]
shr eax, 1
mov ecx, dword [ebp - 8]
and ecx, 1
sub ecx, 1
not ecx
and ecx, 0xedb88320
xor eax, ecx
mov dword [ebp - 8], eax
jmp 0x4170f0
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov dword [edx*4 + 0x441278], eax
jmp 0x4170cf
mov esp, ebp
pop ebp
ret

Function at 0x4180a0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x4180bb
xor eax, eax
jmp 0x418143
mov edx, dword [ebp + 0x10]
mov dword [edx], 0
cmp dword [ebp - 4], 0x400000
jbe 0x4180d6
mov dword [ebp - 0x14], 0x400000
jmp 0x4180dc
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 0
push 0
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x10]
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0x10]
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
cmp dword [ebp - 8], 0
jne 0x418133
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x418143
cmp dword [ebp - 0x10], 0
jne 0x41813b
jmp 0x418141
cmp dword [ebp - 4], 0
ja 0x4180c4
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x418150
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
jne 0x41816b
xor eax, eax
jmp 0x4181f3
mov edx, dword [ebp + 0x10]
mov dword [edx], 0
cmp dword [ebp - 4], 0x400000
jbe 0x418186
mov dword [ebp - 0x14], 0x400000
jmp 0x41818c
mov eax, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], 0
push 0
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0xc]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x10]
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0x10]
mov dword [ebp - 4], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
cmp dword [ebp - 8], 0
jne 0x4181e3
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x4181f3
cmp dword [ebp - 0x10], 0
jne 0x4181eb
jmp 0x4181f1
cmp dword [ebp - 4], 0
ja 0x418174
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x41f800
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov byte [eax + 0x68], 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x10], 0
mov edx, dword [ebp - 4]
mov dword [edx + 0x14], 0
mov eax, dword [ebp - 4]
mov dword [eax], 0x67452301
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], 0xefcdab89
mov edx, dword [ebp - 4]
mov dword [edx + 8], 0x98badcfe
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0x10325476
mov esp, ebp
pop ebp
ret

Function at 0x420560
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x208
push 0
lea eax, [ebp - 0x228]
push eax
call fcn.00423050
add esp, 0xc
push 0
push 0x1a
lea ecx, [ebp - 0x228]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x4397fc
lea edx, [ebp - 0x228]
push edx
lea ecx, [ebp - 0x244]
call fcn.004020d0
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00401900
add esp, 0xc
lea ecx, [ebp - 0x244]
call fcn.00401130
lea ecx, [ebp - 0x20]
call fcn.00401550
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
lea ecx, [ebp - 0x20]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004019d0
lea ecx, [ebp - 0x20]
call fcn.00401130
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00422e00
mov esp, ebp
pop ebp
ret

Function at 0x422655
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
cmp dword [0x4416b0], 0
push esi
jne 0x4225c8
call fcn.004224ee
test eax, eax
je 0x42260b
mov eax, dword [0x4416b0]
cmp eax, 1
jne 0x4225e9
push 0xd
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
test eax, eax
je 0x42260b
pop esi
ret
push eax
call dword [0x4416b8]
test eax, eax
jne 0x422653
push 0x40
mov eax, 0x1000
push eax
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov esi, eax
test esi, esi
jne 0x42260f
xor eax, eax
pop esi
ret
mov eax, dword [esi]
push edi
push dword [0x4416b0]
call dword [0x4416b8]
mov edi, eax
test edi, edi
je 0x422634
push 0x8000
push 0
push esi
call dword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x422650
mov edi, esi
add esi, 0xff0
push edi
push dword [0x4416b0]
call dword [0x4416b4]
add edi, 0x10
cmp edi, esi
jb 0x42263c
mov eax, edi
pop edi
pop esi
ret
jmp 0x4225b5

Function at 0x422e00
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x43fdf0]
jne 0x422e0a
repz ret
jmp fcn.004254d1
Function at 0x43016b
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.00425649
and dword [ebp - 4], 0
cmp dword [0x442220], 0
mov ebx, eax
jne 0x43021c
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x4302cd
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x4302cd
push eax
call fcn.004255d7
mov dword [esp], 0x43b304
push edi
mov dword [0x442220], eax
call esi
push eax
call fcn.004255d7
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x442224], eax
call esi
push eax
call fcn.004255d7
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x442228], eax
call esi
push eax
call fcn.004255d7
pop ecx
mov dword [0x442230], eax
test eax, eax
je 0x43021c
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.004255d7
pop ecx
mov dword [0x44222c], eax
mov eax, dword [0x44222c]
cmp eax, ebx
je 0x430274
cmp dword [0x442230], ebx
je 0x430274
push eax
call fcn.00425652
push dword [0x442230]
mov esi, eax
call fcn.00425652
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x430274
test edi, edi
je 0x430274
call esi
test eax, eax
je 0x43026b
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x43026b
test byte [ebp - 0xc], 1
jne 0x430274
or dword [ebp + 0x10], 0x200000
jmp 0x4302ad
mov eax, dword [0x442224]
cmp eax, ebx
je 0x4302ad
push eax
call fcn.00425652
pop ecx
test eax, eax
je 0x4302ad
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x4302ad
mov eax, dword [0x442228]
cmp eax, ebx
je 0x4302ad
push eax
call fcn.00425652
pop ecx
test eax, eax
je 0x4302ad
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x442220]
call fcn.00425652
pop ecx
test eax, eax
je 0x4302cd
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x4302cf
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret

Function at 0x401c2e
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
and byte [ebp - 0x100], 0
push edi
push 0x3f
xor eax, eax
pop ecx
lea edi, [ebp - 0xff]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 8
lea eax, [ebp - 0x100]
push 0x404008
push eax
call fcn.00401ca0
mov ecx, 0x401bdc
mov eax, 0x4017fd
sub ecx, eax
push ecx
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.00401d18
push 0x100
lea eax, [ebp - 0x100]
push 0
push eax
call fcn.004020d0
add esp, 0x24
call fcn.00401846
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx
Function at 0x403304
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [0x45e020]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x40339c
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x40337c
xor eax, eax
push ebp
push 0x403375
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 4
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x4033b8
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40337c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov ax, word [0x45e020]
and ax, 0xffc0
mov dx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [0x45e020], ax
mov esp, ebp
pop ebp
ret

Function at 0x404098
Capabilities:
Write file on windows

Disassembly:
push ecx
cmp byte [0x460048], 0
je 0x4040f9
cmp word [0x46021c], 0xd7b2
jne 0x4040c1
cmp dword [0x460224], 0
jbe 0x4040c1
mov eax, 0x460218
call dword [0x460234]
push 0
lea eax, [esp + 4]
push eax
push 0x1e
push 0x45e06c
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x404120
push 0xfffffffffffffff5
call sub.kernel32.dll_GetStdHandle
push eax
call sub.kernel32.dll_WriteFile
pop edx
ret
cmp byte [0x45e030], 0
jne 0x404115
push 0
push 0x45e064
push 0x45e06c
push 0
call sub.user32.dll_MessageBoxA
pop edx
ret
Function at 0x405e9c
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
xor edx, edx
mov dword [ebp - 0x10], edx
xor edx, edx
push ebp
push 0x405f02
push dword fs:[edx]
mov dword fs:[edx], esp
push 7
lea edx, [ebp - 0xb]
push edx
push 0x1004
push eax
call sub.kernel32.dll_GetLocaleInfoA
lea eax, [ebp - 0x10]
lea edx, [ebp - 0xb]
mov ecx, 7
call fcn.0040448c
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 4]
call fcn.00402ec8
mov ebx, eax
cmp dword [ebp - 4], 0
je 0x405eec
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405f09
lea eax, [ebp - 0x10]
call fcn.0040421c
ret

Function at 0x40b2d0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 8]
push pe_nt_image_headers32
lea ecx, [ebp - 0x100]
push ecx
push edx
push eax
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x40b309
mov ecx, eax
dec ecx
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.0040430c
jmp 0x40b312
mov eax, ebx
mov edx, esi
call fcn.00404270
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x40b31c
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
push edi
push ecx
mov ebx, ecx
mov esi, edx
mov edi, eax
push 2
lea eax, [esp + 4]
push eax
push esi
push edi
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x40b33d
mov al, byte [esp]
jmp 0x40b33f
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x40b9d4
Capabilities:
Write file on windows

Disassembly:
add esp, 0xfffffbbc
push 0x400
lea ecx, [esp + 0x48]
call 0x40b83c
mov eax, dword [0x45f148]
cmp byte [eax], 0
je 0x40ba50
mov eax, dword [0x45ef70]
call fcn.00402d34
call fcn.00402bb4
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x48]
push eax
call sub.user32.dll_CharToOemA
push 0
lea eax, [esp + 4]
push eax
lea eax, [esp + 0x4c]
call fcn.00408aac
push eax
lea eax, [esp + 0x50]
push eax
push 0xfffffffffffffff4
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [esp + 4]
push eax
push 2
push 0x40ba98
push 0xfffffffffffffff4
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
jmp 0x40ba86
push 0x40
lea eax, [esp + 8]
push eax
mov eax, dword [0x45ef1c]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x460664]
call fcn.00405308
push eax
call sub.user32.dll_LoadStringA_1
push 0x2010
lea eax, [esp + 8]
push eax
lea eax, [esp + 0x4c]
push eax
push 0
call sub.user32.dll_MessageBoxA_1
add esp, 0x444
ret