joyce8/EMBER2024-capa huggingface dataset:
Function at 0x47cda2
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov ebx, ecx
push 5
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
je 0x47cdf9
push edi
push esi
call fcn.00416337
mov edi, eax
test edi, edi
je 0x47cde9
mov ebx, dword [ebx + 0x20]
cmp ebx, esi
je 0x47cde6
mov eax, esi
cmp ebx, eax
je 0x47ce01
push eax
call fcn.00414c06
test eax, eax
jne 0x47cdd8
mov ebx, dword [ebp - 4]
push 2
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
jne 0x47cdc3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0x18000000
cmp dword [ebp + 8], 0
jne 0x47ce2b
cmp eax, 0x10000000
jne 0x47cde6
push 0
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
or dword [edi + 0x60], 2
jmp 0x47cde6
test eax, eax
jne 0x47cde6
test byte [edi + 0x60], 2
mov ebx, dword [ebp - 4]
je 0x47cde9
cmp dword [ebx + 0xe0], eax
jne 0x47cde9
push 4
push esi
call dword [sym.imp.USER32.dll_ShowWindow]
and dword [edi + 0x60], 0xfffffffd
jmp 0x47cde9
Function at 0x4dd56f
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push edi
mov edi, dword [ecx + 0x14]
cmp dword [edi - 0xc], 0
jne 0x4dd582
xor eax, eax
jmp 0x4dd5d1
mov eax, dword [ecx + 8]
push ebx
push esi
mov esi, dword [ecx + 0xc]
mov dword [ebp - 4], esi
mov dword [ebp - 8], eax
call fcn.00411f5c
mov ebx, eax
test ebx, ebx
je 0x4dd5b0
mov ecx, dword [ebx]
mov esi, dword [ecx + 0x74]
mov ecx, esi
call fcn.00542d17
mov ecx, ebx
call esi
mov esi, dword [ebp - 4]
jmp 0x4dd5b2
xor eax, eax
test eax, eax
je 0x4dd5b9
mov eax, dword [eax + 0x20]
push 1
push esi
push dword [ebp - 8]
push edi
push 0
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
pop esi
sbb eax, eax
inc eax
pop ebx
pop edi
mov esp, ebp
pop ebp
ret

Function at 0x4dd7ae
Capabilities:
Get file system object information

Disassembly:
push 0x4cc
mov eax, 0x575b92
call fcn.00542d88
mov ebx, ecx
mov eax, dword [ebx + 0x14]
sub eax, 0x10
push eax
call fcn.00409ecf
pop ecx
lea esi, [eax + 0x10]
mov dword [ebp - 0x4d0], esi
and dword [ebp - 4], 0
lea ecx, [ebp - 0x4d0]
push 0
push 0x5fab94
call fcn.004138e6
cmp eax, 0xffffffff
jne 0x4dd887
push 0
push 0x5857e8
lea ecx, [ebp - 0x4d0]
call fcn.004138e6
cmp eax, 0xffffffff
jne 0x4dd887
push 0
push 0x57e310
lea ecx, [ebp - 0x4d0]
call fcn.004138e6
cmp eax, 0xffffffff
jne 0x4dd887
mov eax, dword [ebx + 0x14]
sub eax, 0x10
push eax
call fcn.00409ecf
mov edi, eax
pop ecx
mov dword [ebp - 0x4d4], edi
lea ecx, [edi + 0x10]
mov dword [ebp - 0x4d8], ecx
xor edx, edx
mov byte [ebp - 4], 1
push edx
lea eax, [ebp - 0x218]
push eax
push 0x104
push edx
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne 0x4dd856
mov eax, dword [ebx]
mov edi, dword [eax + 0x14]
mov ecx, edi
call fcn.00542d17
mov ecx, ebx
call edi
mov ecx, dword [ebp - 0x4d4]
mov edi, eax
call fcn.00404310
jmp 0x4dd8bf
lea eax, [ebp - 0x218]
push eax
call fcn.0054c6a9
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x4d0]
call fcn.0040912e
mov ecx, edi
mov byte [ebp - 4], 0
call fcn.00404310
mov esi, dword [ebp - 0x4d0]
push 0x105
push 0x2b4
lea eax, [ebp - 0x4cc]
push eax
push 0
push esi
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x4dd8ad
mov edi, dword [ebp - 0x4cc]
jmp 0x4dd8bf
mov eax, dword [ebx]
mov edi, dword [eax + 0x14]
mov ecx, edi
call fcn.00542d17
mov ecx, ebx
call edi
mov edi, eax
lea ecx, [esi - 0x10]
call fcn.00404310
mov eax, edi
call fcn.00542d32
ret
Function at 0x4ed9cd
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, ecx
mov dword [ebp - 4], esi
push edi
test ebx, ebx
je 0x4eda8b
mov eax, dword [esi + 0x34c]
test eax, eax
je 0x4eda80
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4eda80
neg eax
sbb eax, eax
and eax, ecx
cmp dword [ebx], eax
jne 0x4eda80
mov eax, dword [ebx + 4]
sub eax, 1
je 0x4eda54
sub eax, 1
je 0x4eda20
sub eax, 1
jne 0x4eda80
mov edi, 0x428e
jmp 0x4eda59
push 0x11
mov edi, 0x3ea1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x8000
test cx, ax
je 0x4eda59
mov eax, dword [esi]
mov esi, dword [eax + 0x340]
mov ecx, esi
call fcn.00542d17
mov ecx, dword [ebp - 4]
call esi
test eax, eax
je 0x4eda59
add edi, 3
jmp 0x4eda59
mov edi, 0x3ea0
push edi
call fcn.00409987
test eax, eax
je 0x4eda8b
push edi
push eax
mov ecx, 0x6209c8
call fcn.00408f8c
test eax, eax
je 0x4eda8b
mov eax, dword [0x6209c8]
mov dword [ebx + 0xc], eax
xor eax, eax
inc eax
jmp 0x4eda82
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
call fcn.004096f9
int3

Function at 0x4f9446
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
test esi, esi
je 0x4f9495
push esi
mov ebx, 0x811c9dc5
xor edi, edi
call fcn.0054c6a9
xor edx, edx
mov dword [ebp - 4], 0xa
pop ecx
mov ecx, eax
div dword [ebp - 4]
inc eax
test ecx, ecx
je 0x4f948a
mov edx, ecx
movzx ecx, word [esi + edi*2]
add edi, eax
imul ebx, ebx, 0x1000193
xor ebx, ecx
cmp edi, edx
jb 0x4f9478
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.004096f9
int3
Function at 0x5439d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x617f60]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0x14]
push 0x10
mov dword [ebp - 0x40], edi
lea eax, [edi + 0x3c8]
push eax
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x34]
push eax
call fcn.00545660
mov ebx, dword [ebp + 0x10]
add esp, 0xc
test ebx, ebx
jle 0x543b34
mov edx, dword [ebp + 0xc]
dec ebx
add edx, 2
shr ebx, 4
add esi, 2
mov dword [ebp - 0x38], edx
inc ebx
mov dword [ebp - 0x3c], ebx
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 3]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x14], ecx
movzx ecx, byte [edx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 7]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x10], ecx
movzx ecx, byte [edx + 6]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xb]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0xc], ecx
movzx ecx, byte [edx + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0xd]
shl ecx, 8
or ecx, eax
lea eax, [ebp - 0x14]
push eax
push edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 8], ecx
call fcn.005439b0
add esp, 8
xor edi, edi
nop word [eax + eax]
mov al, byte [ebp + edi - 0x34]
xor al, byte [ebp + edi - 0x14]
mov edx, dword [ebp + edi - 0x34]
mov ebx, dword [ebp + edi - 0x14]
mov ecx, ebx
mov byte [esi + 1], al
mov eax, edx
shr ecx, 8
shr eax, 8
xor cl, al
mov eax, edx
mov byte [esi], cl
mov ecx, ebx
shr eax, 0x10
shr ecx, 0x10
xor cl, al
shr ebx, 0x18
mov eax, dword [ebp + edi - 0x24]
shr edx, 0x18
xor bl, dl
mov dword [ebp + edi - 0x34], eax
mov byte [esi - 1], cl
add edi, 4
mov byte [esi - 2], bl
add esi, 4
cmp edi, 0x10
jl 0x543ad0
mov edx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x40]
add edx, 0x10
sub dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], edx
jne 0x543a23
push 0x10
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x44]
call fcn.00545660
mov ecx, dword [ebp - 4]
add esp, 0xc
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.005424ec
mov esp, ebp
pop ebp
ret
Function at 0x54a75e
Capabilities:
Allocate thread local storage

Disassembly:
push ebp
mov ebp, esp
push esi
push str.FlsAlloc
push 0x5ef8c4
push str.FlsAlloc
push 0
call fcn.0054a6d7
mov esi, eax
add esp, 0x10
test esi, esi
je 0x54a790
push dword [ebp + 8]
mov ecx, esi
call fcn.00542d17
call esi
pop esi
pop ebp
ret
pop esi
pop ebp
jmp dword [sym.imp.KERNEL32.dll_TlsAlloc]

Function at 0x54a7d2
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push str.FlsGetValue
push 0x5ef8e8
push str.FlsGetValue
push 2
call fcn.0054a6d7
add esp, 0x10
mov esi, eax
push dword [ebp + 8]
test esi, esi
je 0x54a803
mov ecx, esi
call fcn.00542d17
call esi
jmp 0x54a809
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
pop esi
pop ebp
ret

Function at 0x54a80c
Capabilities:
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push str.FlsSetValue
push 0x5ef8fc
push str.FlsSetValue
push 3
call fcn.0054a6d7
add esp, 0x10
mov esi, eax
push dword [ebp + 0xc]
push dword [ebp + 8]
test esi, esi
je 0x54a840
mov ecx, esi
call fcn.00542d17
call esi
jmp 0x54a846
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
pop esi
pop ebp
ret

Function at 0x561b52
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00561811

Function at 0x561b5d
Capabilities:
Read file on windows

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00561994

Function at 0x565728
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.00565040

Function at 0x565733
Capabilities:
Set environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
pop ebp
jmp fcn.0056527f
Function at 0x431000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43100c
nop
pop eax
nop
nop
nop
nop
nop
add eax, 0x403e6a
sub eax, 0x403e10
nop
nop
nop
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
jl 0x431030
nop
nop
nop
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43101e
nop
nop
nop
nop
nop
popal
nop
nop
jmp fcn.00401219
Function at 0x4035ac
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
push ebx
xor ebx, ebx
imul edx, dword [ebx + 0x451008], 0x8088405
inc edx
mov dword [ebx + 0x451008], edx
mul edx
mov eax, edx
pop ebx
ret

Function at 0x41cf44
Capabilities:
Decompress data using aplib

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push ebp
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
cld
mov dl, 0x80
mov al, byte [esi]
add esi, 1
mov byte [edi], al
add edi, 1
mov ebx, 2
add dl, dl
jne 0x41cf75
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x41cf5d
add dl, dl
jne 0x41cf80
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x41cfd1
xor eax, eax
add dl, dl
jne 0x41cf8d
mov dl, byte [esi]
inc esi
adc dl, dl
jae 0x41d06e
add dl, dl
jne 0x41cf9c
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cfa7
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cfb2
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cfbd
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
je 0x41cfc7
mov ebx, edi
sub ebx, eax
mov al, byte [ebx]
mov byte [edi], al
inc edi
mov ebx, 2
jmp 0x41cf6c
mov eax, 1
add dl, dl
jne 0x41cfdf
mov dl, byte [esi]
inc esi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x41cfea
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x41cfd6
sub eax, ebx
mov ebx, 1
jne 0x41d01d
mov ecx, 1
add dl, dl
jne 0x41d003
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x41d00e
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x41cffa
push esi
mov esi, edi
sub esi, ebp
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x41cf6c
dec eax
shl eax, 8
mov al, byte [esi]
inc esi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x41d034
mov dl, byte [esi]
inc esi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x41d03f
mov dl, byte [esi]
inc esi
adc dl, dl
jb 0x41d02b
cmp eax, 0x7d00
sbb ecx, 0xffffffff
cmp eax, 0x500
sbb ecx, 0xffffffff
cmp eax, 0x80
adc ecx, 0
cmp eax, 0x80
adc ecx, 0
push esi
mov esi, edi
sub esi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x41cf6c
mov al, byte [esi]
inc esi
xor ecx, ecx
shr al, 1
je 0x41d08f
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 0x41cf6c
pop ebp
sub edi, dword [ebp - 8]
mov dword [ebp - 0xc], edi
pop edi
pop esi
pop ebx
mov eax, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret
Function at 0x41f0a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ebx, edx
xor edx, edx
push ebp
push 0x43558e
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
mov dword [ebp - 8], edx
mov esi, ebx
xor ecx, ecx
cmp byte [eax + 0x6a], 0
je 0x41f0ef
mov eax, ebx
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x3c]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov edx, dword [eax + 0x88]
test edx, edx
je 0x41f10e
mov ecx, edx
add ecx, ebx
jmp 0x41f10e
mov eax, ebx
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x3c]
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov edx, dword [eax + 0x78]
test edx, edx
je 0x41f10e
mov ecx, edx
add ecx, ebx
test ecx, ecx
je 0x41f180
mov esi, dword [ecx + 0x18]
mov eax, dword [ecx + 0x1c]
add eax, ebx
mov dword [ebp - 0x10], eax
mov edi, dword [ecx + 0x20]
add edi, ebx
mov eax, dword [ecx + 0x24]
add eax, ebx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmp eax, 0xffff
jbe 0x41f169
test esi, esi
jbe 0x41f180
mov eax, dword [edi]
add eax, ebx
mov edx, dword [ebp - 4]
call fcn.004088ec
test eax, eax
jne 0x41f15b
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
shl eax, 2
add eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [ebp - 8], eax
jmp 0x41f180
add dword [ebp - 0xc], 2
add edi, 4
dec esi
test esi, esi
ja 0x41f138
jmp 0x41f180
mov edx, eax
sub edx, dword [ecx + 0x10]
cmp edx, dword [ecx + 0x14]
jae 0x41f180
mov eax, edx
shl eax, 2
add eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x435595
ret
Function at 0x4202d8
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov word [ebp - 4], cx
mov byte [ebp - 1], dl
xor eax, eax
push ebp
push 0x4368f3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
call fcn.00404cd0
xor ebx, ebx
mov eax, ebx
and eax, 0x80000001
jns 0x420313
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x42032c
lea eax, [ebp - 0x10]
mov edx, dword [0x45354c]
mov edx, dword [edx]
mov edx, dword [edx + 0xc]
call fcn.00404d30
jmp 0x42033f
lea eax, [ebp - 0x10]
mov edx, dword [0x45354c]
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.00404d30
lea eax, [ebp - 0x10]
mov edx, ebx
sar edx, 1
jns 0x42034b
adc edx, 0
mov edx, dword [edx*4 + 0x452378]
call fcn.00404f20
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
mov eax, dword [ebp - 0x10]
call fcn.00404f04
push eax
call fcn.00406b1c
mov esi, eax
cmp esi, 0xffffffff
je 0x4204c5
mov eax, 0x40
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0x40
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x4204b8
mov eax, edi
cmp word [eax], 0x5a4d
jne 0x4204b8
push 0
push 0
mov eax, dword [eax + 0x3c]
push eax
push esi
call fcn.00406ddc
mov eax, edi
call fcn.00403288
mov eax, 0x18
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0x18
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x4204b8
mov eax, edi
cmp dword [eax], 0x4550
jne 0x4204b8
add eax, 4
mov dword [ebp - 0xc], eax
cmp byte [ebp - 1], 0
je 0x420456
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x8664
jne 0x420456
mov eax, edi
call fcn.00403288
mov eax, 0xf0
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0xf0
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x420456
mov eax, edi
mov dx, word [eax + 0x44]
cmp dx, word [ebp - 4]
jne 0x420456
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
call fcn.00404d0c
cmp byte [ebp - 1], 0
jne 0x4204b8
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x14c
jb 0x4204b8
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x150
ja 0x4204b8
mov eax, edi
call fcn.00403288
mov eax, 0xe0
call fcn.00403268
mov edi, eax
push 0
lea eax, [ebp - 8]
push eax
push 0xe0
push edi
push esi
call fcn.00406d7c
test eax, eax
je 0x4204b8
mov eax, edi
mov dx, word [eax + 0x44]
cmp dx, word [ebp - 4]
jne 0x4204b8
mov eax, dword [eax + 0x10]
mov edx, dword [ebp + 0xc]
mov dword [edx], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x10]
call fcn.00404d0c
mov eax, edi
call fcn.00403288
push esi
call fcn.00406ad4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
xor edx, edx
call fcn.0040502c
jne 0x4204dd
inc ebx
cmp ebx, 0x19
jne 0x420305
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4368fa
lea eax, [ebp - 0x10]
call fcn.00404cd0
ret
Function at 0x4028d0
Capabilities:
Terminate process

Disassembly:
call fcn.00401000
push 0x18
push 0x4029f8
call fcn.004032a6
xor esi, esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
call dword [sym.imp.MSVCR120_CLR0400.dll___crtGetShowWindowMode]
movzx ebx, ax
mov dword [ebp - 4], esi
mov eax, dword fs:[0x18]
mov edx, dword [eax + 4]
mov edi, esi
mov esi, 0x4150e8
mov ecx, edx
xor eax, eax
lock cmpxchg dword [esi], ecx
test eax, eax
jne 0x404373
xor esi, esi
inc esi
cmp dword [0x4150ec], esi
je 0x404385
cmp dword [0x4150ec], 0
jne 0x402a1e
mov dword [0x4150ec], esi
push 0x4029f4
push 0x4029e4
call sub.MSVCR120_CLR0400.dll__initterm_e
pop ecx
pop ecx
test eax, eax
jne 0x404392
cmp dword [0x4150ec], esi
jne 0x402973
push 0x4029e0
push 0x4029cc
call fcn.004a6000
pop ecx
pop ecx
mov dword [0x4150ec], 2
test edi, edi
jne 0x402980
xor eax, eax
mov ecx, 0x4150e8
xchg dword [ecx], eax
cmp dword [0x4150f8], 0
jne 0x4043a3
mov eax, dword [sym.imp.MSVCR120_CLR0400.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x20], esi
mov edi, dword [ebp - 0x24]
nop
nop
nop
nop
nop
nop
mov cl, byte [esi]
cmp cl, 0x20
jbe 0x402a14
cmp cl, 0x22
je 0x4043d1
movzx eax, cl
push eax
call dword [sym.imp.MSVCR120_CLR0400.dll__ismbblead]
pop ecx
test eax, eax
jne 0x4043e2
inc esi
mov dword [ebp - 0x20], esi
jmp 0x4029a0
test cl, cl
je 0x402a29
test edi, edi
je 0x402a29
jmp 0x4029a7
mov dword [0x415244], esi
jmp 0x402950
mov al, byte [esi]
test al, al
je 0x402a39
cmp al, 0x20
ja 0x402a39
inc esi
mov dword [ebp - 0x20], esi
jmp 0x402a29
push ebx
push esi
push 0
push 0x400000
call fcn.00403044
mov dword [0x415060], eax
cmp dword [0x415064], 0
jne 0x40441a
push eax
call dword [sym.imp.MSVCR120_CLR0400.dll_exit]
test ecx, ecx
je 0x402a82
push ecx
call fcn.0040117d
jmp 0x402a82
mov eax, esi
pop esi
pop ebp
ret 4
cmp eax, edx
jne 0x402905
xor esi, esi
inc esi
mov edi, esi
jmp 0x402918
push 0x1f
call sub.MSVCR120_CLR0400.dll__amsg_exit
pop ecx
jmp 0x402950
mov dword [ebp - 4], 0xfffffffe
mov eax, 0xff
jmp 0x404435
push 0x4150f8
call fcn.0040fdd0
pop ecx
test eax, eax
je 0x40298d
push 0
push 2
push 0
mov esi, dword [0x4150f8]
mov ecx, esi
call dword [0x416268]
call esi
jmp 0x40298d
xor eax, eax
test edi, edi
sete al
mov edi, eax
mov dword [ebp - 0x24], edi
jmp 0x4029b0
inc esi
mov dword [ebp - 0x20], esi
jmp 0x4029c3
cmp dword [0x415244], 0
jne 0x40442e
call dword [sym.imp.MSVCR120_CLR0400.dll__cexit]
mov eax, dword [0x415060]
mov dword [ebp - 4], 0xfffffffe
call fcn.004032ee
ret
Function at 0x42e000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x42e00c
pop eax
nop
nop
nop
nop
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
nop
nop
nop
nop
nop
mov ebx, dword [eax]
nop
nop
nop
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x42e030
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
jne 0x42e01e
nop
nop
nop
nop
popal
nop
nop
nop
nop
jmp fcn.00401219

Function at 0x501d80
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x502360
push 0x501f80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
add esp, 0xffffff98
push ebx
push esi
push edi
mov dword [ebp - 0x18], esp
mov dword [ebp - 4], 0
push 2
call dword [sym.imp.MSVCRT.dll___set_app_type]
add esp, 4
mov dword [0x5033f4], 0xffffffff
mov dword [0x5033f8], 0xffffffff
call dword [sym.imp.MSVCRT.dll___p__fmode]
mov ecx, dword [0x5033f0]
mov dword [eax], ecx
call dword [sym.imp.MSVCRT.dll___p__commode]
mov edx, dword [0x5033ec]
mov dword [eax], edx
mov eax, dword [sym.imp.MSVCRT.dll__adjust_fdiv]
mov ecx, dword [eax]
mov dword [0x5033fc], ecx
call fcn.00501f70
mov eax, dword [0x503128]
test eax, eax
jne 0x501e11
push 0x501f60
call dword [sym.imp.MSVCRT.dll___setusermatherr]
add esp, 4
call fcn.00501f40
push 0x50300c
push 0x503008
call sub.MSVCRT.dll__initterm
add esp, 8
mov edx, dword [0x5033e8]
mov dword [ebp - 0x6c], edx
lea eax, [ebp - 0x6c]
push eax
mov ecx, dword [0x5033e4]
push ecx
lea edx, [ebp - 0x64]
push edx
lea eax, [ebp - 0x70]
push eax
lea ecx, [ebp - 0x60]
push ecx
call dword [sym.imp.MSVCRT.dll___getmainargs]
add esp, 0x14
push 0x503004
push section..data
call sub.MSVCRT.dll__initterm
add esp, 8
call dword [sym.imp.MSVCRT.dll___p__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x74], esi
cmp byte [esi], 0x22
jne 0x501f1f
inc esi
mov dword [ebp - 0x74], esi
mov al, byte [esi]
test al, al
je 0x501e85
cmp al, 0x22
jne 0x501e77
cmp byte [esi], 0x22
jne 0x501e8e
inc esi
mov dword [ebp - 0x74], esi
mov al, byte [esi]
test al, al
je 0x501e9e
cmp al, 0x20
ja 0x501e9e
inc esi
mov dword [ebp - 0x74], esi
jmp 0x501e8e
mov dword [ebp - 0x30], 0
lea edx, [ebp - 0x5c]
push edx
call dword [sym.imp.KERNEL32.DLL_GetStartupInfoA]
test byte [ebp - 0x30], 1
je 0x501ebf
mov eax, dword [ebp - 0x2c]
and eax, 0xffff
jmp 0x501ec4
mov eax, 0xa
push eax
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_GetModuleHandleA]
push eax
call main
mov dword [ebp - 0x68], eax
push eax
call dword [sym.imp.MSVCRT.dll_exit]
jmp 0x501f04
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 0x20
jbe 0x501e8e
inc esi
mov dword [ebp - 0x74], esi
jmp 0x501f1f
Function at 0x401709
Capabilities:
Parse pe header

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