joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5c10e0
Capabilities:
Check for software breakpoints

Disassembly:
push esi
mov esi, dword [esp + 8]
cmp dword [esi + 0x14], 0xca
jne 0x5c1113
push esi
call fcn.005c5fa0
mov eax, dword [esi + 0x40]
add esp, 4
test eax, eax
je 0x5c110c
mov dword [esi + 0x14], 0xcf
mov eax, 1
pop esi
ret
mov dword [esi + 0x14], 0xcb
mov eax, dword [esi + 0x14]
cmp eax, 0xcb
jne 0x5c1199
mov eax, dword [esi + 0x1b8]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x5c1182
mov eax, dword [esi + 8]
test eax, eax
je 0x5c1137
push esi
call dword [eax]
add esp, 4
mov ecx, dword [esi + 0x1b8]
push esi
call dword [ecx]
add esp, 4
test eax, eax
je 0x5c117e
cmp eax, 2
je 0x5c1182
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x5c112a
cmp eax, 3
je 0x5c115d
cmp eax, 1
jne 0x5c112a
mov eax, dword [ecx + 4]
inc eax
mov dword [ecx + 4], eax
mov eax, dword [esi + 8]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
cmp edx, ecx
jl 0x5c112a
mov edx, dword [esi + 0x144]
add edx, ecx
mov dword [eax + 8], edx
jmp 0x5c112a
xor eax, eax
pop esi
ret
mov eax, dword [esi + 0x90]
push esi
mov dword [esi + 0x98], eax
call fcn.005c11d0
add esp, 4
pop esi
ret
cmp eax, 0xcc
je 0x5c11b9
mov ecx, dword [esi]
push esi
mov dword [ecx + 0x14], 0x15
mov edx, dword [esi]
mov eax, dword [esi + 0x14]
mov dword [edx + 0x18], eax
mov ecx, dword [esi]
call dword [ecx]
add esp, 4
push esi
call fcn.005c11d0
add esp, 4
pop esi
ret

Function at 0x5f1bc0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x5f1bcb
xor eax, eax
ret
mov eax, dword [esp + 4]
push ebx
push esi
mov esi, dword [esp + 0x14]
cmp esi, 8
not eax
jb 0x5f1cce
push edi
mov edi, esi
shr edi, 3
mov edx, eax
xor ebx, ebx
mov bl, byte [ecx]
and edx, 0xff
xor edx, ebx
mov ebx, eax
shr ebx, 8
mov eax, dword [edx*4 + 0xa2e410]
sub esi, 8
xor eax, ebx
inc ecx
mov edx, eax
xor ebx, ebx
mov bl, byte [ecx]
and edx, 0xff
xor edx, ebx
xor ebx, ebx
mov bl, byte [ecx + 1]
mov edx, dword [edx*4 + 0xa2e410]
shr eax, 8
xor edx, eax
inc ecx
mov eax, edx
and eax, 0xff
xor eax, ebx
xor ebx, ebx
mov bl, byte [ecx + 1]
mov eax, dword [eax*4 + 0xa2e410]
shr edx, 8
xor eax, edx
inc ecx
mov edx, eax
and edx, 0xff
xor edx, ebx
xor ebx, ebx
mov bl, byte [ecx + 1]
mov edx, dword [edx*4 + 0xa2e410]
shr eax, 8
xor edx, eax
inc ecx
mov eax, edx
and eax, 0xff
xor eax, ebx
xor ebx, ebx
mov bl, byte [ecx + 1]
mov eax, dword [eax*4 + 0xa2e410]
shr edx, 8
xor eax, edx
inc ecx
mov edx, eax
and edx, 0xff
xor edx, ebx
xor ebx, ebx
mov bl, byte [ecx + 1]
mov edx, dword [edx*4 + 0xa2e410]
shr eax, 8
xor edx, eax
inc ecx
mov eax, edx
and eax, 0xff
xor eax, ebx
xor ebx, ebx
mov bl, byte [ecx + 1]
mov eax, dword [eax*4 + 0xa2e410]
shr edx, 8
xor eax, edx
inc ecx
mov edx, eax
and edx, 0xff
xor edx, ebx
shr eax, 8
mov edx, dword [edx*4 + 0xa2e410]
xor eax, edx
inc ecx
dec edi
jne 0x5f1be6
pop edi
test esi, esi
je 0x5f1cf0
mov edx, eax
xor ebx, ebx
mov bl, byte [ecx]
and edx, 0xff
xor edx, ebx
shr eax, 8
mov edx, dword [edx*4 + 0xa2e410]
xor eax, edx
inc ecx
dec esi
jne 0x5f1cd2
pop esi
pop ebx
not eax
ret
Function at 0x6388d1
Capabilities:
Get graphical window text

Disassembly:
push esi
mov esi, ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x638909
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
lea ecx, [eax + 1]
push ecx
mov ecx, dword [esp + 0xc]
push eax
call fcn.00636949
push eax
push dword [esi + 0x1c]
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov ecx, dword [esp + 8]
push 0xffffffffffffffff
call fcn.00636921
jmp 0x638915
mov eax, dword [ecx]
push dword [esp + 8]
call dword [eax + 0x88]
pop esi
ret 4

Function at 0x63a0cd
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebx
push esi
push edi
xor edi, edi
cmp dword [esp + 0x10], edi
mov ebx, ecx
je 0x63a10f
call fcn.006408ec
mov esi, dword [eax + 0xc]
push 0xf0
push dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
je 0x63a10f
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
jne 0x63a106
xor eax, eax
jmp 0x63a117
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
push edi
mov ecx, ebx
call fcn.0063a11d
pop edi
pop esi
pop ebx
ret 4

Function at 0x640e1c
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
lea ebx, [esi + 0x1c]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esp + 0x10], 0
jne 0x640e4a
push dword [esi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
test eax, eax
je 0x640e68
push dword [esp + 0xc]
mov ecx, esi
push eax
call fcn.00640d82
jmp 0x640e68
mov eax, dword [esi + 0x14]
test eax, eax
je 0x640e68
push edi
push dword [esp + 0x10]
mov edi, dword [eax + 4]
mov ecx, esi
push eax
call fcn.00640d82
test edi, edi
mov eax, edi
jne 0x640e52
pop edi
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop ebx
ret 8

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 0x10015331
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x1001535f
mov eax, dword [ebp + 8]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
test eax, eax
je 0x1001535d
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
jmp 0x1001539e
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 0x20]
call fcn.10016f21
mov ecx, dword [ebp - 0x24]
mov cl, byte [ecx]
mov byte [eax], cl
mov esp, ebp
pop ebp
ret
Function at 0x1002fbdd
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1002fc0f
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
test eax, eax
je 0x1002fc0d
push 0x6f8
push 0
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x1002fc1c
push 0x516
push 0
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov esp, ebp
pop ebp
ret

Function at 0x10030cca
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x10030d11
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov byte [ecx + eax], 0
jmp 0x10030d20
push 0xbfd
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov esp, ebp
pop ebp
ret

Function at 0x100310b2
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
movzx eax, byte [ebp + 8]
test eax, eax
je 0x100310f9
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x14]
add eax, dword [ecx]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx]
mov byte [ecx + eax], 0
jmp 0x10031117
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
movzx eax, byte [eax]
test eax, eax
je 0x10031117
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov esp, ebp
pop ebp
ret
Function at 0x1003ba9b
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
movzx eax, byte [ebp + 0xc]
test eax, eax
je 0x1003babf
mov byte [ebp - 1], 0
movzx eax, byte [ebp - 1]
test eax, eax
je 0x1003babd
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
jmp 0x1003bb0a
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
mov dword [eax], 0
jmp 0x1003baed
mov eax, dword [ebp - 8]
mov eax, dword [eax]
inc eax
mov ecx, dword [ebp - 8]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
cmp dword [eax], 2
jge 0x1003bb0a
mov eax, dword [ebp - 8]
push dword [eax]
mov ecx, dword [ebp - 0x14]
call fcn.10016dbd
mov dword [eax], 0xbab7
jmp 0x1003bae2
mov esp, ebp
pop ebp
ret
Function at 0x10040d00
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
and dword [ebp - 4], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
cmp eax, 0x5a4d
je 0x10040d24
xor eax, eax
jmp 0x10040e84
lea eax, [ebp + 8]
push eax
push 1
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x5322
call fcn.1003f73b
add esp, 0x14
mov eax, dword [ebp - 8]
cmp dword [eax], 0x4550
je 0x10040d51
xor eax, eax
jmp 0x10040e84
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0x649
push 1
push 0x3686
push 0x51e5
call fcn.1003f7a5
add esp, 0x18
cmp dword [ebp - 0xc], 0
jne 0x10040d7f
xor eax, eax
jmp 0x10040e84
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x31e5
push 0x2950
push 1
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.100400e9
add esp, 0x20
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
push 1
push 0x6068
push 0x59d0
push 0x57e4
call fcn.100401ab
add esp, 0x1c
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
sub ecx, dword [eax + 0x34]
mov dword [ebp - 0x14], ecx
je 0x10040df9
push 0x5630
push 0
push 0x3fb6
push 0x5012
push dword [ebp - 0x14]
push dword [ebp - 4]
call fcn.10040e88
add esp, 0x18
push dword [ebp - 4]
call fcn.1003e413
pop ecx
test eax, eax
jne 0x10040e0a
xor eax, eax
jmp 0x10040e84
push 0xa4d
push dword [ebp - 4]
push 0
call fcn.1003902c
add esp, 0xc
mov eax, dword [ebp - 4]
mov eax, dword [eax]
cmp dword [eax + 0x28], 0
je 0x10040e6c
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov ecx, dword [ebp - 0xc]
add ecx, dword [eax + 0x28]
mov dword [ebp - 0x18], ecx
jne 0x10040e3b
xor eax, eax
jmp 0x10040e84
push 0
push 1
push 0xdeadbeef
call dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x10040e54
xor eax, eax
jmp 0x10040e84
lea eax, [ebp - 4]
push eax
push 1
push 0x4d30
push 0x66d0
call fcn.10040c93
add esp, 0x10
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10], 0
je 0x10040e7d
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
jmp 0x10040e81
and dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x1c]
mov esp, ebp
pop ebp
ret
Function at 0x1004b602
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ecx
movzx eax, byte [ebp + 8]
test eax, eax
je 0x1004b624
mov byte [ebp - 1], 0
movzx eax, byte [ebp - 1]
test eax, eax
je 0x1004b622
push 0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
jmp 0x1004b636
push 0x17e8
push 0x526
push 0
call dword [sym.imp.GDI32.dll_PtInRegion]
mov esp, ebp
pop ebp
ret
Function at 0x10079985
Capabilities:
Link many functions at runtime
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x1008338c]
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.1006ab6c
mov dword [ebp - 0x14], eax
cmp dword [0x10670098], esi
jne 0x10079a78
push 0x800
push esi
push 0x10007bcc
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
jne 0x10079a05
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x10079b58
push esi
push esi
push 0x10007bcc
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x10079b58
push 0x10007be4
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10079b58
push eax
call ebx
push 0x10007bf0
push edi
mov dword [0x10670098], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x10007c00
push edi
mov dword [0x1067009c], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
push 0x10007c14
push edi
mov dword [0x106700a0], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x106700a8], eax
test eax, eax
je 0x10079a75
push 0x10007c30
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
mov dword [0x106700a4], eax
mov edi, dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
test eax, eax
je 0x10079a9d
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10079a90
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [ebp - 0x14], esi
je 0x10079ab2
push 4
pop eax
jmp 0x10079b5a
cmp dword [ebp - 0x14], esi
je 0x10079ab2
push dword [0x10670098]
call dword [sym.imp.KERNEL32.dll_DecodePointer]
push 3
jmp 0x10079a97
mov eax, dword [0x106700a4]
mov ebx, dword [sym.imp.KERNEL32.dll_DecodePointer]
cmp eax, edi
je 0x10079b10
cmp dword [0x106700a8], edi
je 0x10079b10
push eax
call ebx
push dword [0x106700a8]
mov dword [ebp - 0x14], eax
call ebx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
test ecx, ecx
je 0x10079b10
test eax, eax
je 0x10079b10
call ecx
test eax, eax
je 0x10079b05
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 0x10079b05
test byte [ebp - 8], 1
jne 0x10079b10
mov edi, dword [ebp + 0x10]
or edi, 0x200000
jmp 0x10079b40
mov eax, dword [0x1067009c]
cmp eax, edi
je 0x10079b3d
push eax
call ebx
test eax, eax
je 0x10079b3d
call eax
mov esi, eax
test esi, esi
je 0x10079b3d
mov eax, dword [0x106700a0]
cmp eax, edi
je 0x10079b3d
push eax
call ebx
test eax, eax
je 0x10079b3d
push esi
call eax
mov esi, eax
mov edi, dword [ebp + 0x10]
push dword [0x10670098]
call ebx
test eax, eax
je 0x10079b58
push edi
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push esi
call eax
jmp 0x10079b5a
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call main
mov esp, ebp
pop ebp
ret
Function at 0x40b85a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x54
pushal
call 0x40b869
pop dword [ebp - 0x44]
mov eax, 0x5684138
add eax, 0xfad87731
sub dword [ebp - 0x44], eax
mov dword [ebp - 0x54], 0x38f8ea6a
add dword [ebp - 0x54], 0x15595ae1
mov dword [ebp - 0x50], 0xcbed714f
add dword [ebp - 0x50], 0x6645daf6
mov dword [ebp - 0x4c], 0xc50ce6f8
add dword [ebp - 0x4c], 0x873f5d36
mov dword [ebp - 0x48], 0x81fe9f47
add dword [ebp - 0x48], 0x7e0160b9
lea eax, [ebp - 0x54]
push eax
mov eax, 0x5e47b108
sub eax, 0x5e07a05c
add eax, dword [ebp - 0x44]
call dword [eax]
mov dword [ebp - 0x54], 0x3f178bbe
add dword [ebp - 0x54], 0x355add98
mov dword [ebp - 0x50], 0xa906148e
add dword [ebp - 0x50], 0x98664ce7
mov dword [ebp - 0x4c], 0xda7f070b
sub dword [ebp - 0x4c], 0x770f9a9f
mov dword [ebp - 0x48], 0x889a95f4
sub dword [ebp - 0x48], 0x889a95f4
lea ebx, [ebp - 0x54]
push ebx
push eax
mov eax, 0xe9196a1e
add eax, 0x1726a6e2
add eax, dword [ebp - 0x44]
call dword [eax]
push 0x40
push 0x1000
push 0x353a4
push 0
call eax
mov ecx, 0x459665ed
sub ecx, 0x45962aa9
mov ebx, eax
mov edx, 0x2cc927b0
add edx, 0xd3781650
add edx, dword [ebp - 0x44]
mov edi, 0xd96b6ec
sub edi, 0xfec378b0
sub dword [ebp - 0x30], 0x31ffa7ae
mov esi, dword [edx]
xor dword [ebp - 0x2c], ebx
add esi, edi
sub dword [ebp - 0x18], esi
mov dword [ebx], esi
add dword [ebp - 0x28], esi
add ebx, 4
add edx, 0xe6a2d56a
sub edx, 0xe6a2d566
loop 0x40b98b
add eax, 0xbe4277f9
sub eax, 0xbe419816
mov ebx, eax
add eax, 5
mov ecx, 0xb552e361
sub ecx, 0xb512e361
add ecx, dword [ebp - 0x44]
call ebx
leave
ret

Function at 0x420944
Capabilities:
Encode data using xor

Disassembly:
mov ecx, edx
mov edx, eax
xor eax, eax
rol ax, 5
xor al, byte [edx]
inc edx
dec ecx
jne 0x42094a
ret
Function at 0x7db058
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.007db1a8
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 0x7db07e
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x7db06a
add dl, dl
jne 0x7db089
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x7db0dc
xor eax, eax
add dl, dl
jne 0x7db096
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x7db17d
add dl, dl
jne 0x7db0a5
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x7db0b0
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x7db0bb
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x7db0c6
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x7db0d2
push edi
mov eax, eax
sub edi, eax
mov al, byte [edi]
pop edi
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x7db075
mov eax, 1
add dl, dl
jne 0x7db0ea
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x7db0f5
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x7db0e1
sub eax, ebx
mov ebx, 1
jne 0x7db128
mov ecx, 1
add dl, dl
jne 0x7db10e
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x7db119
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x7db105
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x7db075
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x7db13f
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x7db14a
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x7db136
cmp eax, 0x7d00
jae 0x7db16d
cmp eax, 0x500
jb 0x7db168
inc ecx
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x7db075
cmp eax, 0x7f
ja 0x7db170
add ecx, 2
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x7db075
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x7db19e
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 0x7db075
pop ebx
sub edi, dword [ebx + 0x10]
mov eax, edi
pop ebx
ret 0x10
Function at 0x4041b8
Capabilities:
Query environment variable

Disassembly:
push esi
mov esi, dword [esp + 8]
test esi, esi
je 0x4041f4
cmp dword [esp + 0xc], 0
je 0x4041f4
push 0x25
push esi
call fcn.00404525
pop ecx
test eax, eax
pop ecx
je 0x4041e8
push 0x103
push dword [esp + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
pop esi
ret
push esi
push dword [esp + 0x10]
call fcn.004043f5
pop ecx
pop ecx
pop esi
ret

Function at 0x404680
Capabilities:
Accept command line arguments
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov esi, eax
mov al, byte [esi]
cmp al, 0x22
jne 0x4046a9
mov al, byte [esi + 1]
inc esi
test al, al
je 0x4046a1
cmp al, 0x22
jne 0x404695
cmp byte [esi], 0x22
jne 0x4046b3
inc esi
jmp 0x4046b3
cmp al, 0x20
jle 0x4046b3
inc esi
cmp byte [esi], 0x20
jg 0x4046ad
mov al, byte [esi]
test al, al
je 0x4046bd
cmp al, 0x20
jle 0x4046a6
and dword [ebp - 0x18], 0
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
call fcn.0040472d
push 0x406004
push section..data
call fcn.00404713
test byte [ebp - 0x18], 1
pop ecx
pop ecx
je 0x4046ed
movzx eax, word [ebp - 0x14]
jmp 0x4046f0
push 0xa
pop eax
push eax
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call main
mov esi, eax
call fcn.00404745
push esi
call dword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x1002c143
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
pushal
call 0x1002c152
pop dword [ebp - 0x1c]
mov eax, 0x133d27e5
add eax, 0xfcc5996d
sub dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], 0x8c55f260
add dword [ebp - 0x2c], 0xc1fc52eb
mov dword [ebp - 0x28], 0xb9b47026
sub dword [ebp - 0x28], 0x878123e1
mov dword [ebp - 0x24], 0x1cf971b8
sub dword [ebp - 0x24], 0xd0ad2d8a
mov dword [ebp - 0x20], 0x190e1c95
add dword [ebp - 0x20], 0xe6f1e36b
lea eax, [ebp - 0x2c]
push eax
mov eax, 0xbf5bd9dc
sub eax, 0xaf5bc924
add eax, dword [ebp - 0x1c]
call dword [eax]
mov dword [ebp - 0x2c], 0xb8f9176e
add dword [ebp - 0x2c], 0xbb7951e8
mov dword [ebp - 0x28], 0x9f875673
sub dword [ebp - 0x28], 0x5e1af4fe
mov dword [ebp - 0x24], 0x5126d21d
sub dword [ebp - 0x24], 0xedb765b1
mov dword [ebp - 0x20], 0x20aa6adc
sub dword [ebp - 0x20], 0x20aa6adc
lea ebx, [ebp - 0x2c]
push ebx
push eax
mov eax, sym.imp.kernel32.dll_GetProcAddress
add eax, dword [ebp - 0x1c]
call dword [eax]
push 0x40
push 0x1000
push 0x3f8c1
push 0
call eax
mov ecx, 0xdb8ba7bf
sub ecx, 0xdb8b5b5f
mov edx, eax
mov ebx, 0xc4b5f85d
sub ebx, 0xb4b2485d
add ebx, dword [ebp - 0x1c]
mov esi, 0xc02345c6
sub esi, 0xcf2d30f5
add dword [ebp - 4], edx
mov edi, dword [ebx]
xor dword [ebp - 8], edi
add edi, esi
mov dword [ebp - 0x14], 0x3563777f
mov dword [edx], edi
xor dword [ebp - 0x18], ecx
add edx, 0xa4f09fb9
add edx, 0x5b0f604b
add ebx, 4
loop 0x1002c26f
add eax, 0xd478076
sub eax, 0xd465c23
mov ebx, eax
add eax, 0x4e538ec7
add eax, 0xb1ac713e
mov ecx, 0x74bf648e
add ecx, 0x9b409b72
add ecx, dword [ebp - 0x1c]
call ebx
leave
ret