joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1005f420
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
push edi
mov eax, 0xcccccccc
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
imul eax, dword [ebp + 8], 0x2c
add eax, dword [0x100783f0]
mov dword [ebp - 4], eax
mov dword [ebp - 0x14], 5
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x14]
and cl, 1
movzx edx, cl
test edx, edx
je 0x1005f483
mov eax, dword [ebp - 0x18]
sub eax, 5
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
add ecx, 2
mov dword [ebp - 0x14], ecx
mov esi, esp
lea edx, [ebp - 0xc]
push edx
push 0x40
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp esi, esp
call fcn.10061de6
test eax, eax
jne 0x1005f4ae
mov eax, 0xa
jmp 0x1005f5b0
cmp dword [ebp + 0xc], 0
je 0x1005f4fa
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov byte [eax], 0xe9
mov ecx, dword [ebp - 0x18]
add ecx, 5
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
sub eax, ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 1], eax
mov edx, dword [ebp - 4]
mov al, byte [edx + 0x14]
and al, 1
movzx ecx, al
test ecx, ecx
je 0x1005f4f8
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
mov byte [ecx], 0xeb
mov edx, dword [ebp - 0x20]
mov byte [edx + 1], 0xf9
jmp 0x1005f536
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x14]
and cl, 1
movzx edx, cl
test edx, edx
je 0x1005f521
push 7
mov eax, dword [ebp - 4]
add eax, 0xc
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x1005f536
push 5
mov edx, dword [ebp - 4]
add edx, 0xc
push edx
mov eax, dword [ebp - 0x18]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov esi, esp
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0xc]
push edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp esi, esp
call fcn.10061de6
mov esi, esp
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x18]
push eax
mov edi, esp
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
cmp edi, esp
call fcn.10061de6
push eax
call dword [sym.imp.KERNEL32.dll_FlushInstructionCache]
cmp esi, esp
call fcn.10061de6
mov cl, byte [ebp + 0xc]
and cl, 1
shl cl, 1
mov edx, dword [ebp - 4]
mov al, byte [edx + 0x14]
and al, 0xfd
or al, cl
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x14], al
mov dl, byte [ebp + 0xc]
and dl, 1
shl dl, 2
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x14]
and cl, 0xfb
or cl, dl
mov edx, dword [ebp - 4]
mov byte [edx + 0x14], cl
xor eax, eax
push edx
mov ecx, ebp
push eax
lea edx, [0x1005f5d4]
call fcn.10061d92
pop eax
pop edx
pop edi
pop esi
add esp, 0x20
cmp ebp, esp
call fcn.10061de6
mov esp, ebp
pop ebp
ret
Function at 0x1005fca0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov dword [ebp - 8], 0xcccccccc
mov dword [ebp - 4], 0xcccccccc
mov eax, dword [0x100783e8]
mov dword [ebp - 4], eax
jmp 0x1005fcc7
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
mov dword [ebp - 4], edx
cmp dword [ebp - 4], 0
je 0x1005fce0
mov eax, dword [ebp - 4]
cmp dword [eax + 4], 0
je 0x1005fcde
mov eax, dword [ebp - 4]
jmp 0x1005fd64
jmp 0x1005fcbf
mov esi, esp
push 0x40
push 0x3000
push 0x1000
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
cmp esi, esp
call fcn.10061de6
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x1005fd61
mov ecx, dword [ebp - 4]
add ecx, 0x20
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 4]
mov dword [edx + 4], 0
mov eax, dword [ebp - 4]
mov dword [eax + 8], 0
mov ecx, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov eax, dword [edx + 4]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov dword [ecx + 4], edx
mov eax, dword [ebp - 8]
add eax, 0x20
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 4]
cmp ecx, 0xfe0
jbe 0x1005fd23
mov edx, dword [ebp - 4]
mov eax, dword [0x100783e8]
mov dword [edx], eax
mov ecx, dword [ebp - 4]
mov dword [0x100783e8], ecx
mov eax, dword [ebp - 4]
pop esi
add esp, 8
cmp ebp, esp
call fcn.10061de6
mov esp, ebp
pop ebp
ret

Function at 0x10060250
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], 0xcccccccc
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp + 8]
movzx eax, byte [edx + ecx]
test eax, eax
je 0x100602a0
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp + 8]
movzx ecx, byte [eax + edx]
cmp ecx, 0x90
je 0x100602a0
mov edx, 1
imul eax, edx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + eax]
cmp edx, 0xcc
je 0x100602a0
xor eax, eax
jmp 0x100602e1
mov dword [ebp - 4], 1
jmp 0x100602b2
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
cmp ecx, dword [ebp + 0xc]
jae 0x100602dc
mov edx, dword [ebp + 8]
add edx, dword [ebp - 4]
movzx eax, byte [edx]
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [ebp + 8]
movzx edx, byte [ecx + edx]
cmp eax, edx
je 0x100602da
xor eax, eax
jmp 0x100602e1
jmp 0x100602a9
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x10061120
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push ecx
push 2
lea eax, [ebp - 4]
push eax
push 0x20000001
push str._x_sys_default_locale
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
xor ecx, ecx
test eax, eax
jne 0x10061147
mov eax, ecx
mov dword [ebp - 4], eax
jmp 0x1006114a
mov eax, dword [ebp - 4]
push esi
mov esi, dword [ebp + 0xc]
push ecx
push ecx
push esi
push eax
push dword [ebp + 8]
push ecx
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push eax
push dword [esi]
call fcn.100610fc
pop esi
leave
ret 8
Function at 0x50b9b0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0x8000]
push edi
or ebp, 0xffffffff
jmp 0x50b9d2
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x50b9d9
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x50b9c8
mov eax, 1
add ebx, ebx
jne 0x50b9eb
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x50b9e0
jne 0x50b9fc
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x50b9e0
xor ecx, ecx
sub eax, 3
jb 0x50ba10
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x50ba82
mov ebp, eax
add ebx, ebx
jne 0x50ba1b
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jne 0x50ba28
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jne 0x50ba4c
inc ecx
add ebx, ebx
jne 0x50ba38
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x50ba2d
jne 0x50ba49
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x50ba2d
add ecx, 2
cmp ebp, 0xfffff300
adc ecx, 1
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x50ba6c
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x50ba5d
jmp 0x50b9ce
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x50ba6c
add edi, ecx
jmp 0x50b9ce
pop esi
mov edi, esi
mov ecx, 0x1d
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x50ba8a
cmp byte [edi], 6
jne 0x50ba8a
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 0x50ba8f
lea edi, [esi + 0x9000]
mov eax, dword [edi]
or eax, eax
je 0x50bafe
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0xdacc]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0xdb24]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x50babc
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0xdb2c]
or eax, eax
je 0x50baf8
mov dword [ebx], eax
add ebx, 4
jmp 0x50bad9
call dword [esi + 0xdb28]
mov ebp, dword [esi + 0xdb30]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x20f]
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 0x50bb32
sub esp, 0xffffff80
jmp section.UPX0

Function at 0x401000
Capabilities:
Allocate or change rwx memory

Disassembly:
lea edx, [0x4a31d8]
mov eax, 0x7960
mov esi, 0x7b21
call sub.user32.dll_GetMenuCheckMarkDimensions
push 0x40
push 0x3000
push 0x11800
push 0
call sub.user32.dll_GetCaretBlinkTime
call sub.kernel32.dll_VirtualAlloc
call fcn.00499974
ret
Function at 0x430000
Capabilities:
Encode data using xor

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

Function at 0x433000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..text
nop
mov ebx, 0x40de38
nop
mov ecx, 0x33680c98
nop
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x43304e
nop
xor dword [eax], ecx
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
nop
jne 0x433024
nop
nop
nop
nop
nop
mov eax, section..data
mov ebx, 0x4304d8
nop
nop
mov ecx, 0x747b5ade
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x433084
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x43306c
nop
nop
nop
nop
nop
nop
popal
nop
nop
nop
jmp 0x431219

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
push 4
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
nop
nop
je 0x42e072
nop
nop
mov ebx, 0x407ef8
nop
nop
nop
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
push eax
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
xchg ecx, eax
nop
pop eax
nop
nop
nop
nop
mov esi, 0x28f114ca
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
nop
loop 0x42e060
nop
nop
nop
nop
mov eax, section..data
cmp eax, 0
nop
nop
nop
nop
nop
nop
je 0x42e0d2
nop
nop
mov ebx, 0x42cd70
mov ecx, ebx
nop
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
pop eax
nop
nop
mov esi, 0x714a6209
nop
xor dword [eax], esi
nop
nop
nop
nop
nop
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x42e0c0
nop
nop
popal
nop
nop
nop
nop
jmp 0x401219
Function at 0x458e90
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
call fcn.004590ec
mov dword [ebp - 0x14], eax
mov eax, dword [0x45efdc]
mov dword [ebp - 0x18], eax
mov eax, dword [0x45efe0]
mov dword [ebp - 0xc], eax
push 0x40
push 0x3000
push dword [ebp - 0xc]
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov dword [ebp - 8], eax
push dword [ebp - 0x18]
push dword [ebp - 0x14]
push dword [ebp - 0xc]
push dword [ebp - 8]
call fcn.00459ee0
add esp, 0x10
mov dword [ebp - 0xc], eax
push dword [ebp - 0x14]
call fcn.004590bf
pop ecx
and dword [ebp - 4], 0
jmp 0x458ef0
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, dword [0x45efe4]
je 0x458f63
imul eax, dword [ebp - 4], 0xc
mov eax, dword [eax + 0x45efe8]
add eax, 0x45ef80
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x1c]
push eax
push 0x40
imul eax, dword [ebp - 4], 0xc
push dword [eax + 0x45efec]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
imul eax, dword [ebp - 4], 0xc
push dword [eax + 0x45efec]
imul eax, dword [ebp - 4], 0xc
mov ecx, dword [ebp - 8]
add ecx, dword [eax + 0x45eff0]
push ecx
push dword [ebp - 0x10]
call fcn.004593d7
add esp, 0xc
push 0
push dword [ebp - 0x1c]
imul eax, dword [ebp - 4], 0xc
push dword [eax + 0x45efec]
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
jmp 0x458ee9
push dword [0x45efa4]
mov eax, dword [0x45efa0]
add eax, 0x45ef80
push eax
mov eax, dword [0x45ef90]
add eax, 0x45ef80
push eax
call fcn.00458fca
add esp, 0xc
mov eax, 0x45ef80
sub eax, dword [0x45ef88]
push eax
push dword [0x45ef9c]
mov eax, dword [ebp - 8]
add eax, dword [0x45ef98]
push eax
mov eax, dword [0x45ef90]
add eax, 0x45ef80
push eax
call fcn.0045919a
add esp, 0x10
push 0x8000
push 0
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_VirtualFree]
xor eax, eax
leave
ret

Function at 0x4590ec
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
push 0x208
lea eax, [ebp - 0x410]
push eax
call fcn.00459168
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x410]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x45ef64], eax
push 0
push 0
push 0
push 2
push 0
push dword [0x45ef64]
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov dword [0x45ef68], eax
push 0
push 0
push 0
push 4
push dword [0x45ef68]
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
add eax, dword [0x45efd8]
leave
ret
Function at 0x45919a
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
cmp dword [ebp + 0x14], 0
jne 0x4591ad
xor eax, eax
jmp 0x459331
mov eax, dword [ebp + 0xc]
add eax, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
and dword [ebp - 0x24], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x1c]
add ecx, dword [eax + 0x3c]
mov dword [ebp - 8], ecx
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
movzx eax, word [eax + 4]
cmp eax, 0x14c
jne 0x4591eb
mov eax, dword [ebp - 8]
add eax, 0xf8
mov dword [ebp - 0xc], eax
jmp 0x459204
mov eax, dword [ebp - 8]
movzx eax, word [eax + 4]
cmp eax, 0x8664
jne 0x459204
mov eax, dword [ebp - 8]
add eax, 0x108
mov dword [ebp - 0xc], eax
and dword [ebp - 0x10], 0
jmp 0x459211
mov eax, dword [ebp - 0x10]
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 8]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x10], eax
je 0x45924a
imul eax, dword [ebp - 0x10], 0x28
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
add edx, dword [ecx + eax + 0xc]
mov dword [ebp - 0x28], edx
lea eax, [ebp - 0x24]
push eax
push 0x40
imul eax, dword [ebp - 0x10], 0x28
mov ecx, dword [ebp - 0xc]
push dword [ecx + eax + 8]
push dword [ebp - 0x28]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
jmp 0x45920a
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x2c]
jae 0x4592ea
mov eax, dword [ebp + 0xc]
add eax, 8
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
sub eax, 8
shr eax, 1
mov dword [ebp - 0x30], eax
and dword [ebp - 4], 0
jmp 0x45927a
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x30]
je 0x4592d9
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx + eax*2]
test eax, eax
jne 0x459292
jmp 0x459273
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx + eax*2]
and eax, 0xfff
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
movzx eax, word [ecx + eax*2]
sar eax, 0xc
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 3
je 0x4592ca
jmp 0x4592d7
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
add eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
jmp 0x459273
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
add ecx, dword [eax + 4]
mov dword [ebp + 0xc], ecx
jmp 0x45924a
and dword [ebp - 0x14], 0
jmp 0x4592f7
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 8]
movzx eax, word [eax + 6]
cmp dword [ebp - 0x14], eax
je 0x45932f
imul eax, dword [ebp - 0x14], 0x28
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
add edx, dword [ecx + eax + 0xc]
mov dword [ebp - 0x38], edx
push 0
push dword [ebp - 0x24]
imul eax, dword [ebp - 0x14], 0x28
mov ecx, dword [ebp - 0xc]
push dword [ecx + eax + 8]
push dword [ebp - 0x38]
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
jmp 0x4592f0
xor eax, eax
leave
ret
Function at 0x45af10
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x10c
push ebx
push ebp
mov ebp, dword [esp + 0x11c]
push esi
push edi
lea ebx, [eax + ebp]
cmp eax, 8
jbe 0x45b0c7
mov edi, dword [esp + 0x120]
lea esi, [ebp + 8]
push 0x800
lea eax, [edi + 0x5410]
push eax
mov eax, ebx
sub eax, esi
push eax
lea eax, [edi + 0x140c]
push esi
push eax
call fcn.0045e440
add esp, 0x14
cmp eax, 0xffffff88
ja 0x45b0c7
add esi, eax
mov dword [esp + 0x14], 0x1c
mov eax, ebx
sub eax, esi
push eax
push esi
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.0045b110
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, 0xffffff88
ja 0x45b0c7
mov eax, dword [esp + 0x1c]
cmp eax, 8
ja 0x45b0c7
push eax
push dword [esp + 0x18]
lea eax, [esp + 0x34]
push eax
lea eax, [edi + 0x804]
push eax
call fcn.0045b530
add esp, 0x10
cmp eax, 0xffffff88
ja 0x45b0c7
add esi, dword [esp + 0x10]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x18], 0x34
push eax
push esi
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.0045b110
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, 0xffffff88
ja 0x45b0c7
mov eax, dword [esp + 0x20]
cmp eax, 9
ja 0x45b0c7
push eax
push dword [esp + 0x1c]
lea eax, [esp + 0xb8]
push eax
lea eax, [edi + 0xc08]
push eax
call fcn.0045b530
add esp, 0x10
cmp eax, 0xffffff88
ja 0x45b0c7
add esi, dword [esp + 0x10]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x10], 0x23
push eax
push esi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.0045b110
add esp, 0x14
mov dword [esp + 0x28], eax
cmp eax, 0xffffff88
ja 0x45b0c7
mov eax, dword [esp + 0x24]
cmp eax, 9
ja 0x45b0c7
push eax
push dword [esp + 0x14]
lea eax, [esp + 0x70]
push eax
push edi
call fcn.0045b530
add esp, 0x10
cmp eax, 0xffffff88
ja 0x45b0c7
add esi, dword [esp + 0x28]
lea eax, [esi + 0xc]
cmp eax, ebx
ja 0x45b0c7
sub ebx, esi
xor edx, edx
sub ebx, 0xc
add edi, 0x5c10
nop
mov ecx, dword [esi]
add esi, 4
test ecx, ecx
je 0x45b0c7
cmp ecx, ebx
jae 0x45b0c7
mov dword [edi], ecx
inc edx
add edi, 4
cmp edx, 3
jl 0x45b0a0
sub esi, ebp
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x10c
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffffe2
pop ebx
add esp, 0x10c
ret
Function at 0x45e070
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
shr eax, 8
test al, al
je 0x45e086
mov dword [esp + 0x14], ecx
jmp fcn.0045d290
mov dword [esp + 0x14], ecx
jmp fcn.0045c700
Function at 0x4120e5
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1a4
mov edx, dword [ebp + 8]
xor ecx, ecx
mov eax, 0x422500
cmp edx, dword [eax]
je 0x412107
add eax, 8
inc ecx
cmp eax, 0x422590
jl 0x4120f8
push esi
mov esi, ecx
shl esi, 3
cmp edx, dword [esi + 0x422500]
jne 0x412235
mov eax, dword [0x426e28]
cmp eax, 1
je 0x41220f
test eax, eax
jne 0x412138
cmp dword [0x421fb8], 1
je 0x41220f
cmp edx, 0xfc
je 0x412235
lea eax, [ebp - 0x1a4]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x41216f
lea eax, [ebp - 0x1a4]
push str._program_name_unknown_
push eax
call fcn.00411610
pop ecx
pop ecx
lea eax, [ebp - 0x1a4]
push edi
push eax
lea edi, [ebp - 0x1a4]
call fcn.0040cc00
inc eax
pop ecx
cmp eax, 0x3c
jbe 0x4121b2
lea eax, [ebp - 0x1a4]
push eax
call fcn.0040cc00
mov edi, eax
lea eax, [ebp - 0x1a4]
sub eax, 0x3b
push 3
add edi, eax
push 0x41f5e0
push edi
call fcn.004145f0
add esp, 0x10
lea eax, [ebp - 0xa0]
push str.Runtime_Error__n_nProgram:
push eax
call fcn.00411610
lea eax, [ebp - 0xa0]
push edi
push eax
call fcn.00411620
lea eax, [ebp - 0xa0]
push 0x41f5c0
push eax
call fcn.00411620
push dword [esi + 0x422504]
lea eax, [ebp - 0xa0]
push eax
call fcn.00411620
push 0x12010
lea eax, [ebp - 0xa0]
push str.Microsoft_Visual_C_Runtime_Library
push eax
call fcn.00414f31
add esp, 0x2c
pop edi
jmp 0x412235
lea eax, [ebp + 8]
lea esi, [esi + 0x422504]
push 0
push eax
push dword [esi]
call fcn.0040cc00
pop ecx
push eax
push dword [esi]
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop esi
leave
ret

Function at 0x417580
Capabilities:
Packed with generic packer

Disassembly:
pushal
push eax
pop dword [0x42874b]
mov ecx, eax
xor dword [0x428a23], 0x36
sbb dword [0x4286f0], 0x5f
mov dword [0x428853], 0x35cd6864
push eax
push dword [0x4286a7]
mov dl, byte [0x422053]
push dword [0x428b6b]
push dword [0x4289f1]
push dword [0x428964]
sbb dword [0x428bde], 0x153e6513
push edx
mov eax, dword [0x4223b0]
push 0x399c5a1c
push eax
push eax
imul edx, edx, 0x140d5af6
call fcn.004357e5
push 0x6737c427
or esi, dword [0x42256b]
call fcn.00435249
add esp, 0xc
mov ebx, eax
popal
ret
Function at 0x43169a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
pushal
and esi, eax
mul eax
btr edx, 0x1a
shl ah, 7
shrd ax, dx, 1
mov ah, dl
ror dword [0x4288b5], 1
dec dword [0x4289a5]
jne 0x4317a8
xor dword [ebp + 0x18], 0x2c
ror byte [ebp + 0x14], 1
sets byte [0x4289b8]
push dword [0x4286af]
pop dword [0x428b91]
mov edx, 0x4288d6
dec eax
mov ecx, edx
mov si, dx
mov ebx, 9
inc eax
sub dword [edx], edx
mov di, 0x497d
dec ecx
adc edi, 0x126a14c4
mov ecx, dword [ebp + 0xc]
mov al, byte [ebp + 0x10]
and ch, byte [ebx + 0x42210e]
inc ax
rcr byte [edx + ebx], 0
push dword [edx + ebx]
pop dword [ebx + 0x42878b]
push edx
pop dword [ebp + 0x20]
mov byte [ebx + 0x428999], al
sub edi, 0x5b7bc2e0
adc eax, 1
rcr edi, 1
neg ah
movzx edi, word [ebx*4 + 0x4221cc]
adc byte [edx + ebx], dl
shrd dword [edx + ebx], eax, 5
xor dword [ebx*4 + 0x42898f], edx
sub dword [ebx*4 + 0x42880f], 0x24
neg dword [edx + ebx*4]
mov esi, eax
or dword [ebp + 0x1c], eax
xor ax, word [ebp + 0x20]
rcr edi, 7
inc eax
mov ah, byte [ebx + 0x4220b2]
adc dword [ebx*4 + 0x428911], 0x53bb4540
and eax, edx
push dword [ebp + 0x28]
push dword [ebp + 8]
push dword [ebp + 0xc]
pop dword [0x428a80]
push 0x2e2c05df
and si, 0xd057
adc eax, 0x63
push dword [edx + ebx]
push dword [edx + ebx]
push eax
add dword [edx + ebx*4], eax
call fcn.0043272a
add esp, 0x18
dec ebx
jne 0x4316ef
mov word [ebp - 8], 0xa7f4
popal
mov esp, ebp
pop ebp
ret 0x28
Function at 0x43426c
Capabilities:
Encode data using xor

Disassembly:
shrd edi, eax, 0xa
mov dl, al
mov dword [0x428be8], eax
neg ebx
or ebx, edx
mov dword [0x428b69], edx
add ecx, 0x547688a8
mov ecx, dword [0x422103]
dec ebx
rol edi, 1
call fcn.00433c35
ror dword [0x428ab2], 1
movzx edi, dx
setae byte [0x4287cb]
movzx ebx, dx
sar dword [0x428b9f], 0x19
movzx ebx, word [0x422462]
or bl, byte [0x4223a1]
mov dword [0x4287bc], 0x31af6087
dec dword [0x4286b1]
mov edx, eax
dec dword [0x428bad]
not edx
mov ecx, 0x428884
mov ebx, 0x7d605415
adc dword [ecx], eax
mov esi, 0x1e
movzx ebx, ax
adc edi, 0x2f
shr edx, 1
add bx, word [ecx + esi*2]
add edx, 0x5f49362e
mov edx, 0x4c0eb33e
xor dword [esi*4 + 0x42882c], 0x27
dec esi
jne 0x4342e8
ret