joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4045fc
Capabilities:
Get geographical location
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
mov dword [ebp - 4], eax
push 0x105
lea eax, [ebp - 0x11d]
push eax
push 0
call sub.KERNEL32.DLL_GetModuleFileNameA_1
mov byte [ebp - 0x12], 0
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
push 0x4047b8
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
je 0x40465d
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
push 0x4047d4
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x4046cf
xor eax, eax
push ebp
push 0x4046c8
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x18], 5
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
lea eax, [ebp - 0x11d]
call fcn.00404454
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x4046b1
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
push 0x4047f4
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4046cf
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_lstrcpyA
push 5
lea eax, [ebp - 0xd]
push eax
push 3
call sub.KERNEL32.DLL_GetThreadLocale
push eax
call sub.KERNEL32.DLL_GetLocaleInfoA
xor esi, esi
cmp byte [ebp - 0x11d], 0
je 0x4047b0
cmp byte [ebp - 0xd], 0
jne 0x404711
cmp byte [ebp - 0x12], 0
je 0x4047b0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_lstrlenA
mov ebx, eax
lea eax, [ebp - 0x11d]
add ebx, eax
jmp 0x40472a
dec ebx
cmp byte [ebx], 0x2e
je 0x404739
lea eax, [ebp - 0x11d]
cmp ebx, eax
jne 0x404729
lea eax, [ebp - 0x11d]
cmp ebx, eax
je 0x4047b0
inc ebx
cmp byte [ebp - 0x12], 0
je 0x404766
lea eax, [ebp - 0x12]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x4047b0
cmp byte [ebp - 0xd], 0
je 0x4047b0
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x4047b0
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.KERNEL32.DLL_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.KERNEL32.DLL_LoadLibraryExA
mov esi, eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x404b98
Capabilities:
Read file on windows

Disassembly:
push ebx
push esi
mov ebx, eax
mov esi, edx
mov edx, dword [ebx + 4]
sub edx, 0xd7b1
cmp edx, 2
ja 0x404bf4
push ecx
push 0
mov eax, esp
push 0
push eax
mov eax, dword [ebx + 8]
mul ecx
push eax
push esi
push dword [ebx]
call sub.KERNEL32.DLL_ReadFile
dec eax
pop eax
pop ecx
jne 0x404be6
xor edx, edx
div dword [ebx + 8]
mov edx, dword [esp + 0xc]
test edx, edx
je 0x404bdb
mov dword [edx], eax
pop esi
pop ebx
ret 4
cmp eax, ecx
je 0x404bd6
mov eax, 0x64
jmp 0x404beb
call sub.KERNEL32.DLL_GetLastError_1
call fcn.00402618
xor eax, eax
jmp 0x404bd6
mov eax, 0x67
jmp 0x404beb

Function at 0x404bfc
Capabilities:
Write file on windows

Disassembly:
push ebx
push esi
mov ebx, eax
mov esi, edx
mov eax, dword [eax + 4]
sub eax, 0xd7b2
cmp eax, 1
ja 0x404c57
push ecx
push 0
mov eax, esp
push 0
push eax
mov eax, dword [ebx + 8]
mul ecx
push eax
push esi
push dword [ebx]
call sub.KERNEL32.DLL_WriteFile
dec eax
pop eax
pop ecx
jne 0x404c49
xor edx, edx
div dword [ebx + 8]
mov edx, dword [esp + 0xc]
test edx, edx
je 0x404c3e
mov dword [edx], eax
pop esi
pop ebx
ret 4
cmp eax, ecx
je 0x404c39
mov eax, 0x65
jmp 0x404c4e
call sub.KERNEL32.DLL_GetLastError_1
call fcn.00402618
xor eax, eax
jmp 0x404c39
mov eax, 0x67
jmp 0x404c4e

Function at 0x404ce0
Capabilities:
Get file size

Disassembly:
push ebx
mov ebx, eax
mov edx, dword [ebx + 4]
sub edx, 0xd7b1
cmp edx, 2
ja 0x404d10
push 0
push dword [ebx]
call sub.KERNEL32.DLL_GetFileSize
cmp eax, 0xffffffff
je 0x404d06
xor edx, edx
div dword [ebx + 8]
pop ebx
ret
call fcn.00402628
or eax, 0xffffffff
jmp 0x404d04
mov eax, 0x67
call fcn.00402618
or eax, 0xffffffff
jmp 0x404d04

Function at 0x4058f0
Capabilities:
Get disk size

Disassembly:
push esi
add esp, 0xfffffff8
xor esi, esi
test al, al
jbe 0x405910
add al, 0x40
mov byte [esp], al
mov byte [esp + 1], 0x3a
mov byte [esp + 2], 0x5c
mov byte [esp + 3], 0
mov esi, esp
push 0
push edx
push ecx
push esi
call sub.KERNEL32.DLL_GetDiskFreeSpaceExA
pop ecx
pop edx
pop esi
ret
Function at 0x405ef0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403534
xor eax, eax
push ebp
push 0x405fcb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x40a508
mov edx, dword [ebp - 4]
call fcn.00403264
mov eax, dword [0x40a504]
push eax
call sub.user32.dll_GetWindowTextLengthA
mov ebx, eax
lea edi, [ebx + 1]
mov eax, edi
call fcn.00402534
mov esi, eax
push edi
push esi
mov eax, dword [0x40a504]
push eax
call sub.user32.dll_GetWindowTextA
test ebx, ebx
je 0x405f61
lea eax, [ebp - 4]
mov ecx, dword [ebp - 4]
mov edx, 0x405fe4
call fcn.004033cc
lea eax, [ebp - 0xc]
mov edx, esi
call fcn.00403338
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
call fcn.00403388
mov eax, dword [ebp - 0xc]
call fcn.00403544
push eax
mov eax, dword [0x40a504]
push eax
call sub.user32.dll_SetWindowTextA
mov edx, edi
mov eax, esi
call fcn.0040254c
cmp byte [ebp - 5], 0
je 0x405fad
push 0
push 3
push 0x115
mov eax, dword [0x40a504]
push eax
call sub.user32.dll_SendMessageA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405fd2
lea eax, [ebp - 0xc]
call fcn.00403210
lea eax, [ebp - 4]
call fcn.00403210
ret

Function at 0x40629c
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd5c
push ebx
push esi
push edi
mov ebx, ecx
mov esi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403534
lea edi, [ebp - 0x50]
xor eax, eax
push ebp
push 0x4063bc
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00403210
mov eax, edi
xor ecx, ecx
mov edx, 0x4c
call fcn.0040276c
mov dword [edi], 0x4c
mov eax, dword [edi + 8]
mov dword [edi + 4], eax
lea eax, [ebp - 0x155]
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], 0x105
mov eax, 0x4063cc
mov dword [edi + 0x30], eax
xor eax, eax
mov dword [edi + 0x2c], eax
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x1c]
call fcn.00405650
mov eax, 0x4063ec
mov dword [edi + 0xc], eax
mov dword [edi + 0x34], 0x1800
push edi
call sub.comdlg32.dll_GetOpenFileNameA
test eax, eax
je 0x406337
mov edx, ebx
lea eax, [ebp - 0x155]
call fcn.004056a8
cmp dword [ebx], 0
je 0x4063a6
mov eax, dword [0x4091a4]
mov byte [eax], 0
mov edx, dword [ebx]
lea eax, [ebp - 0x2a4]
call fcn.00404af6
mov edx, 1
lea eax, [ebp - 0x2a4]
call fcn.00404e71
call fcn.00402634
test eax, eax
jne 0x40639f
lea eax, [ebp - 0x2a4]
call fcn.00404ce0
call fcn.004025f8
cmp esi, eax
je 0x40638d
inc esi
je 0x40638d
mov eax, ebx
mov edx, 0x406400
call fcn.00403264
lea eax, [ebp - 0x2a4]
call fcn.00404c60
call fcn.004025f8
jmp 0x4063a6
mov eax, ebx
call fcn.00403210
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4063c3
lea eax, [ebp - 4]
call fcn.00403210
ret
Function at 0x4076f0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00403534
xor eax, eax
push ebp
push 0x407796
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0040278c
cmp dword [ebp - 8], 0
jne 0x40773a
push ebx
push eax
mov eax, dword [0x40a4c4]
push eax
call sub.KERNEL32.DLL_FindResourceA
mov ebx, eax
jmp 0x407751
push ebx
mov eax, dword [ebp - 4]
call fcn.00403544
push eax
mov eax, dword [0x40a4c4]
push eax
call sub.KERNEL32.DLL_FindResourceA
mov ebx, eax
test ebx, ebx
je 0x407780
push ebx
mov eax, dword [0x40a4c4]
push eax
call sub.KERNEL32.DLL_SizeofResource
mov dword [esi], eax
cmp dword [esi], 0
je 0x407780
push ebx
mov eax, dword [0x40a4c4]
push eax
call sub.KERNEL32.DLL_LoadResource
test eax, eax
je 0x407780
push eax
call sub.KERNEL32.DLL_LockResource
mov edi, eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40779d
lea eax, [ebp - 4]
call fcn.00403210
ret
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
nop
mov ebx, 0x407ef8
mov ecx, 0x4bd92dff
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
je 0x42e04e
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x42e024
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x42cd70
nop
mov ecx, 0x141d62b3
nop
nop
nop
nop
nop
test eax, eax
je 0x42e084
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x42e06c
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x419545
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov eax, 0x6b
mov word [ebp - 0x24], ax
mov ecx, 0x65
mov word [ebp - 0x22], cx
mov edx, 0x72
mov word [ebp - 0x20], dx
mov eax, 0x6e
mov word [ebp - 0x1e], ax
mov ecx, 0x65
mov word [ebp - 0x1c], cx
mov edx, 0x6c
mov word [ebp - 0x1a], dx
mov eax, 0x33
mov word [ebp - 0x18], ax
mov ecx, 0x32
mov word [ebp - 0x16], cx
mov edx, 0x2e
mov word [ebp - 0x14], dx
mov eax, 0x64
mov word [ebp - 0x12], ax
mov ecx, 0x6c
mov word [ebp - 0x10], cx
mov edx, 0x6c
mov word [ebp - 0xe], dx
xor eax, eax
mov word [ebp - 0xc], ax
mov dword [ebp - 4], 0
mov ebx, dword fs:[0x30]
mov ebx, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x4195f9
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x24]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.004194d5
add esp, 8
cmp eax, 0
mov eax, dword [ebx + 0x10]
mov ebx, dword [ebx]
jne 0x4195d2
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x419605
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x14
push ebp
push edi
mov edi, ecx
mov ebp, edx
test edi, edi
je 0x419620
test ebp, ebp
je 0x419620
mov eax, dword [edi + 0x3c]
cmp dword [eax + edi + 0x7c], 0
jne 0x419628
pop edi
xor eax, eax
pop ebp
add esp, 0x14
ret
mov eax, dword [eax + edi + 0x78]
add eax, edi
push ebx
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x14]
add ecx, edi
mov dword [esp + 0x10], ecx
push esi
mov esi, dword [eax + 0x1c]
mov ecx, ebp
sub ecx, dword [eax + 0x10]
add esi, edi
add edx, edi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ebx
cmp ecx, ebx
ja 0x419668
mov eax, dword [esi + ecx*4]
pop esi
pop ebx
add eax, edi
pop edi
pop ebp
add esp, 0x14
ret
mov eax, dword [eax + 0x18]
xor esi, esi
mov dword [esp + 0x18], eax
test eax, eax
je 0x4196c4
mov ecx, ebx
movzx ebx, word [edx + esi*2]
cmp ebx, ecx
ja 0x4196bf
mov eax, dword [esp + 0x14]
mov ecx, ebp
mov eax, dword [eax + esi*4]
add eax, edi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4196aa
test dl, dl
je 0x4196a6
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4196aa
add ecx, 2
add eax, 2
test dl, dl
jne 0x41968a
xor eax, eax
jmp 0x4196af
sbb eax, eax
or eax, 1
test eax, eax
je 0x4196ce
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
inc esi
cmp esi, eax
jb 0x419677
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0x14
ret
mov eax, dword [esp + 0x20]
pop esi
mov eax, dword [eax + ebx*4]
pop ebx
add eax, edi
pop edi
pop ebp
add esp, 0x14
ret
Function at 0x4196e5
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x10
push ebx
push edi
mov edi, edx
mov ebx, ecx
call fcn.00419545
test eax, eax
jne 0x4196fd
pop edi
pop ebx
add esp, 0x10
ret
push esi
lea edx, [esp + 0xc]
mov ecx, eax
mov dword [esp + 0xc], 0x74726956
mov dword [esp + 0x10], 0x416c6175
mov dword [esp + 0x14], 0x636f6c6c
mov byte [esp + 0x18], 0
call fcn.00419605
mov esi, eax
test esi, esi
jne 0x419733
pop esi
pop edi
pop ebx
add esp, 0x10
ret
push 0x40
push 0x3000
push edi
push ebx
call esi
test eax, eax
jne 0x41974d
push 0x40
push 0x3000
push edi
push eax
call esi
pop esi
pop edi
pop ebx
add esp, 0x10
ret
Function at 0x419845
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x44
push esi
push edi
mov dword [esp + 0x1c], edx
mov edi, ecx
call fcn.00419545
mov esi, eax
test esi, esi
jne 0x419863
pop edi
xor eax, eax
pop esi
add esp, 0x44
ret
lea edx, [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x38], 0x64616f4c
mov dword [esp + 0x3c], 0x7262694c
mov dword [esp + 0x40], 0x41797261
mov byte [esp + 0x44], 0
call fcn.00419605
mov dword [esp + 0x18], eax
test eax, eax
je 0x41985b
lea edx, [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x38], 0x65657246
mov dword [esp + 0x3c], 0x7262694c
mov dword [esp + 0x40], 0x797261
call fcn.00419605
mov dword [esp + 0x34], eax
test eax, eax
je 0x41985b
lea edx, [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x38], 0x50746547
mov dword [esp + 0x3c], 0x41636f72
mov dword [esp + 0x40], 0x65726464
mov word [esp + 0x44], 0x7373
mov byte [esp + 0x46], 0
call fcn.00419605
mov dword [esp + 0x28], eax
test eax, eax
je 0x41985b
lea edx, [esp + 0x38]
mov ecx, esi
mov dword [esp + 0x38], 0x4d746547
mov dword [esp + 0x3c], 0x6c75646f
mov dword [esp + 0x40], 0x6e614865
mov dword [esp + 0x44], 0x41656c64
mov byte [esp + 0x48], 0
call fcn.00419605
mov dword [esp + 0x30], eax
test eax, eax
je 0x41985b
mov eax, dword [edi + 0x3c]
push ebx
cmp dword [eax + edi + 0x84], 0
push ebp
je 0x419a2a
mov ecx, dword [eax + edi + 0x80]
add ecx, edi
xor esi, esi
lea ebx, [ecx + 0xc]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], esi
cmp dword [ebx], esi
je 0x419a2a
mov eax, ebx
mov ebp, ecx
mov eax, dword [eax]
add eax, edi
push eax
mov dword [esp + 0x2c], eax
call dword [esp + 0x24]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp]
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x41998d
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
add eax, edi
mov dword [esp + 0x14], 0
cmp dword [eax], 0
je 0x419a0e
mov dword [esp + 0x18], 0
nop
mov eax, dword [eax]
test eax, eax
jns 0x4199b0
movzx esi, ax
jmp 0x4199b5
lea esi, [edi + 2]
add esi, eax
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4199d4
push dword [esp + 0x58]
and eax, 0x80000000
push eax
push esi
push dword [esp + 0x34]
call ecx
mov ecx, eax
test ecx, ecx
jne 0x4199e3
push esi
push dword [esp + 0x30]
call dword [esp + 0x38]
mov ecx, eax
test ecx, ecx
je 0x419a37
mov eax, dword [ebp + 0x10]
add eax, dword [esp + 0x18]
mov dword [eax + edi], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
inc ecx
mov dword [esp + 0x14], ecx
shl ecx, 2
add eax, ecx
add eax, edi
mov dword [esp + 0x18], ecx
cmp dword [eax], 0
jne 0x4199a5
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
inc esi
mov dword [esp + 0x10], esi
lea eax, [esi + esi*4]
lea ebp, [ecx + eax*4]
cmp dword [ebp + 0xc], 0
lea eax, [ebp + 0xc]
jne 0x41996a
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x44
ret
cmp dword [ebx], 0
je 0x419a60
mov esi, dword [esp + 0x10]
xor ebp, ebp
lea ecx, [ecx]
cmp ebp, esi
ja 0x419a60
mov eax, dword [ebx]
add eax, edi
push eax
call dword [esp + 0x3c]
push eax
call dword [esp + 0x40]
add ebx, 0x14
inc ebp
cmp dword [ebx], 0
jne 0x419a45
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x44
ret
Function at 0x419a75
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x18
push esi
push edi
mov edi, ecx
call fcn.00419545
mov esi, eax
test esi, esi
je 0x419b31
push ebp
lea edx, [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x10], 0x65657246
mov dword [esp + 0x14], 0x7262694c
mov dword [esp + 0x18], 0x797261
call fcn.00419605
mov ebp, eax
test ebp, ebp
je 0x419b30
lea edx, [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x10], 0x4d746547
mov dword [esp + 0x14], 0x6c75646f
mov dword [esp + 0x18], 0x6e614865
mov dword [esp + 0x1c], 0x41656c64
mov byte [esp + 0x20], 0
call fcn.00419605
mov edx, eax
mov dword [esp + 0xc], edx
test edx, edx
je 0x419b30
mov ecx, dword [edi + 0x3c]
cmp dword [ecx + edi + 0x84], 0
je 0x419b30
push ebx
mov ebx, dword [ecx + edi + 0x80]
add ebx, edi
xor esi, esi
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x419b2f
lea ebx, [ebx]
add eax, edi
push eax
call edx
push eax
call ebp
mov edx, dword [esp + 0x10]
lea esi, [esi + 1]
lea eax, [esi + esi*4]
mov eax, dword [ebx + eax*4 + 0xc]
test eax, eax
jne 0x419b15
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x18
ret

Function at 0x41ea3d
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
mov dword [ebp + 8], 0x41eaf0
mov eax, dword [ebp + 8]
leave
sub esp, 0x60
pushfd
pushal
push dword [esp + 0x84]
push 0
push eax
fnsave dword [esp + 0x30]
wait
push dword fs:[0]
mov dword fs:[0], esp
mov eax, 1
jmp dword [esp + 0xc]

Function at 0x41ec05
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
pop ebp
sub esp, 0xc
push ebp
push edi
mov edi, dword [esp + 0x18]
test edi, edi
je 0x41ec28
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x41ec28
mov eax, dword [edi + 0x3c]
cmp dword [eax + edi + 0x7c], 0
jne 0x41ec32
pop edi
xor eax, eax
pop ebp
add esp, 0xc
ret 8
mov eax, dword [eax + edi + 0x78]
add eax, edi
push ebx
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x14]
add ecx, edi
mov dword [esp + 0x20], ecx
push esi
mov esi, dword [eax + 0x1c]
mov ecx, ebp
sub ecx, dword [eax + 0x10]
add esi, edi
add edx, edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0x20], ebx
cmp ecx, ebx
ja 0x41ec74
mov eax, dword [esi + ecx*4]
pop esi
pop ebx
add eax, edi
pop edi
pop ebp
add esp, 0xc
ret 8
mov eax, dword [eax + 0x18]
xor esi, esi
mov dword [esp + 0x10], eax
test eax, eax
je 0x41ecd6
mov ecx, ebx
lea ebx, [ebx]
movzx ebx, word [edx + esi*2]
cmp ebx, ecx
ja 0x41ecd1
mov eax, dword [esp + 0x24]
mov ecx, ebp
mov eax, dword [eax + esi*4]
add eax, edi
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x41ecbc
test dl, dl
je 0x41ecb8
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x41ecbc
add ecx, 2
add eax, 2
test dl, dl
jne 0x41ec9c
xor eax, eax
jmp 0x41ecc1
sbb eax, eax
or eax, 1
test eax, eax
je 0x41ece2
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
inc esi
cmp esi, eax
jb 0x41ec89
pop esi
pop ebx
pop edi
xor eax, eax
pop ebp
add esp, 0xc
ret 8
mov eax, dword [esp + 0x18]
pop esi
mov eax, dword [eax + ebx*4]
pop ebx
add eax, edi
pop edi
pop ebp
add esp, 0xc
ret 8
Function at 0x41fc7c
Capabilities:
Execute syscall

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp dword [ebp + 8], 0
jge 0x41fc9e
mov eax, 0xfffffffd
jmp 0x41fd70
cmp dword [0x7a9c20], 0
je 0x41fd49
cmp dword [0x7a9c24], 5
jl 0x41fccc
cmp dword [0x7a9c24], 7
jg 0x41fccc
mov eax, 1
jmp 0x41fcd1
mov eax, 0
test eax, eax
jne 0x41fcea
cmp dword [0x7a9c24], 0xfffffffb
je 0x41fcea
xor eax, eax
jmp 0x41fcef
mov eax, 1
test eax, eax
je 0x41fd1b
mov eax, dword [ebp]
add eax, 0x80
mov ecx, 0x20
push dword [eax]
sub eax, 4
loop 0x41fd04
mov eax, dword [ebp + 8]
call dword fs:[0xc0]
nop
nop
leave
ret 4
mov eax, dword [ebp + 8]
mov ecx, eax
and eax, 0xffff
shr ecx, 0x10
and ecx, 0xffff
mov edx, dword [ebp]
lea edx, [edx + 8]
call dword fs:[0xc0]
nop
nop
nop
nop
nop
leave
ret 4
cmp dword [0x7a9c20], 0
jne 0x41fd66
mov eax, dword [ebp + 8]
mov edx, dword [ebp]
lea edx, [edx + 8]
int 0x2e
nop
leave
ret 4
mov eax, 0
jmp 0x41fd70
mov esp, ebp
pop ebp
ret 4
Function at 0x42c3f5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov dword [ebp - 4], 0
mov eax, 0x6500a3
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
call fcn.0041948b
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x42c429
push ebx
call fcn.00494562
add esp, 4
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp + 8]
xor edx, edx
not ecx
cmp dword [ebp + 0x10], edx
jbe 0x42c458
push esi
mov esi, dword [ebp + 0xc]
movzx eax, byte [edx + esi]
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, dword [ebx + eax*4]
inc edx
cmp edx, dword [ebp + 0x10]
jl 0x42c442
pop esi
not ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
jmp 0x42c465
mov esp, ebp
pop ebp
ret 0xc

Function at 0x473849
Capabilities:
Check for peb beingdebugged flag

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0x30]
movzx eax, byte [eax + 2]
and eax, 1
leave
ret

Function at 0x474e1f
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
mov eax, 0x6b
mov word [ebp - 0x24], ax
mov ecx, 0x65
mov word [ebp - 0x22], cx
mov edx, 0x72
mov word [ebp - 0x20], dx
mov eax, 0x6e
mov word [ebp - 0x1e], ax
mov ecx, 0x65
mov word [ebp - 0x1c], cx
mov edx, 0x6c
mov word [ebp - 0x1a], dx
mov eax, 0x33
mov word [ebp - 0x18], ax
mov ecx, 0x32
mov word [ebp - 0x16], cx
mov edx, 0x2e
mov word [ebp - 0x14], dx
mov eax, 0x64
mov word [ebp - 0x12], ax
mov ecx, 0x6c
mov word [ebp - 0x10], cx
mov edx, 0x6c
mov word [ebp - 0xe], dx
xor eax, eax
mov word [ebp - 0xc], ax
mov dword [ebp - 4], 0
mov ebx, dword fs:[0x30]
mov ebx, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x28]
test eax, eax
je 0x474ed3
mov dword [ebp - 8], eax
lea ecx, [ebp - 0x24]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.00474daf
add esp, 8
cmp eax, 0
mov eax, dword [ebx + 0x10]
mov ebx, dword [ebx]
jne 0x474eac
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
pop ebx
mov esp, ebp
pop ebp
ret