joyce8/EMBER2024-capa huggingface dataset:
Function at 0x8d1461
Capabilities:
Execute anti-debugging instructions

Disassembly:
jmp 0xd6ca8f
push edx
mov dword [esp], ebx
mov ebx, esp
push eax
mov eax, 0x777f4af8
neg eax
shl eax, 3
jnp 0xd6cb5d
jmp 0xd6caab
add eax, 0xb77f1034
add ebx, eax
pop eax
push esi
mov esi, 4
sub ebx, esi
pop esi
xchg dword [esp], ebx
pop esp
mov dword [esp], ebp
jmp 0xd6cbda
push eax
mov dword [esp], ecx
mov dword [esp], ebx
mov ebx, dword [esp]
push esi
mov esi, esp
add esi, 4
add esi, 4
xchg dword [esp], esi
pop esp
push edx
mov dword [esp], 0x6f579e26
mov dword [esp], ebx
push dword [esp]
pop eax
add esp, 4
sub esp, 4
mov dword [esp], ecx
push esi
mov esi, 0x6bb9ca1e
mov dword [esp + 4], esi
pop esi
mov dword [esp], ecx
pop edx
jmp 0xd6caab
add eax, 0x737967f0
jp 0xd6cbcd
jmp 0xd6cb11
push ebx
mov dword [esp], ecx
mov dword [esp], 0x278f67df
mov dword [esp], ebp
mov dword [esp], ecx
pop edx
push 0x568b41a1
mov dword [esp], ecx
mov edx, dword [esp]
push esi
mov esi, esp
add esi, 4
add esi, 4
push esi
push dword [esp + 4]
pop esi
pop dword [esp]
pop esp
push ecx
mov dword [esp], esi
mov dword [esp], ebp
mov dword [esp], ecx
mov edx, dword [esp]
add esp, 4
push 0x2898fe79
mov dword [esp], edi
mov dword [esp], 0x2fa858b0
mov dword [esp], ebx
mov ebx, dword [esp]
add esp, 4
jmp 0xd6cb11
neg eax
jne 0xd6caab
jmp 0xd6cb6d
jmp 0xdef2ad
jmp fcn.00d71fa2
push esi
push edi
mov edi, 0xf4391bb
mov dword [esp + 4], edi
jmp 0xdef3c4
pop edi
mov dword [esp], esp
add dword [esp], 4
mov ebp, dword [esp]
add esp, 4
jmp 0xdef3da
jmp 0xd71ea5
Function at 0x4c4792
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x98
mov eax, dword [0x500770]
xor eax, ebp
mov dword [ebp + 0x74], eax
push esi
mov esi, ecx
call fcn.004c4727
mov eax, 0x400000
push 0x94
mov dword [esi + 8], eax
mov dword [esi + 4], eax
lea eax, [ebp - 0x20]
push 0
push eax
mov dword [esi], 0x3c
mov byte [esi + 0xc], 0
call fcn.004ac850
add esp, 0xc
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x20], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [ebp - 0x10], 2
jne 0x4c47e1
cmp dword [ebp - 0x1c], 5
jb 0x4c47f9
jmp 0x4c47f5
cmp dword [ebp - 0x10], 1
jne 0x4c47f9
cmp dword [ebp - 0x1c], 4
ja 0x4c47f5
jne 0x4c47f9
cmp dword [ebp - 0x18], 0
jbe 0x4c47f9
mov byte [esi + 0xc], 1
lea ecx, [esi + 0x18]
mov dword [esi + 0x10], 0x800
mov dword [esi + 0x14], 0x4d8d98
call fcn.004c45fb
test eax, eax
jge 0x4c481a
mov byte [0x507278], 1
mov ecx, dword [ebp + 0x74]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.004a74b2
add ebp, 0x78
leave
ret

Function at 0x42e006
Capabilities:
Encode data using xor

Disassembly:
call 0x42e00c
nop
nop
nop
nop
nop
pop eax
nop
add eax, 0x403ac5
nop
sub eax, 0x403a6b
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
xor dword [ebx], edx
nop
nop
nop
nop
nop
nop
add ebx, 4
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
nop
jl 0x42e030
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x42e01e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp loc.00401219
Function at 0x54bcb0
Capabilities:
Packed with generic packer

Disassembly:
pushal
mov esi, section.UPX1
lea edi, [esi - 0xe8000]
push edi
jmp 0x54bcca
mov al, byte [esi]
inc esi
mov byte [edi], al
inc edi
add ebx, ebx
jne 0x54bcd1
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x54bcc0
mov eax, 1
add ebx, ebx
jne 0x54bce3
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
add ebx, ebx
jae 0x54bcf4
jne 0x54bd13
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x54bd13
dec eax
add ebx, ebx
jne 0x54bd00
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc eax, eax
jmp 0x54bcd8
add ebx, ebx
jne 0x54bd0f
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
jmp 0x54bd65
xor ecx, ecx
sub eax, 3
jb 0x54bd2b
shl eax, 8
mov al, byte [esi]
inc esi
xor eax, 0xffffffff
je 0x54bd9a
sar eax, 1
mov ebp, eax
jmp 0x54bd36
add ebx, ebx
jne 0x54bd36
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x54bd04
inc ecx
add ebx, ebx
jne 0x54bd44
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jb 0x54bd04
add ebx, ebx
jne 0x54bd51
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
adc ecx, ecx
add ebx, ebx
jae 0x54bd46
jne 0x54bd62
mov ebx, dword [esi]
sub esi, 0xfffffffc
adc ebx, ebx
jae 0x54bd46
add ecx, 2
cmp ebp, 0xfffffb00
adc ecx, 2
lea edx, [edi + ebp]
cmp ebp, 0xfffffffc
jbe 0x54bd84
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
dec ecx
jne 0x54bd76
jmp 0x54bcc6
mov eax, dword [edx]
add edx, 4
mov dword [edi], eax
add edi, 4
sub ecx, 4
ja 0x54bd84
add edi, ecx
jmp 0x54bcc6
pop esi
mov edi, esi
mov ecx, 0x4773
mov al, byte [edi]
inc edi
sub al, 0xe8
cmp al, 1
ja 0x54bda2
cmp byte [edi], 0x13
jne 0x54bda2
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 0x54bda7
lea edi, [esi + 0x147000]
mov eax, dword [edi]
or eax, eax
je 0x54be16
mov ebx, dword [edi + 4]
lea eax, [eax + esi + 0x1cd428]
add ebx, esi
push eax
add edi, 8
call dword [esi + 0x1cd4ec]
xchg ebp, eax
mov al, byte [edi]
inc edi
or al, al
je 0x54bdd4
mov ecx, edi
push edi
dec eax
repne scasb al, byte es:[edi]
push ebp
call dword [esi + 0x1cd4f4]
or eax, eax
je 0x54be10
mov dword [ebx], eax
add ebx, 4
jmp 0x54bdf1
call dword [esi + 0x1cd4f0]
mov ebp, dword [esi + 0x1cd4f8]
lea edi, [esi - 0x1000]
mov ebx, 0x1000
push eax
push esp
push 4
push ebx
push edi
call ebp
lea eax, [edi + 0x22f]
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 0x54be4a
sub esp, 0xffffff80
jmp 0x495d56

Function at 0x484cbb
Capabilities:
Encode data using xor

Disassembly:
mov ecx, 0x484a08
mov edx, ebx
call fcn.00484cf8
mov edx, edx
mov ebx, edx
xor dword [edi], ecx
mov edx, 0x44367dea
inc ebx
mov ebx, 0x72f627ec
add edi, 2
sub edx, 0xfd7028d9
add ebx, 0x356c8134
cmp edi, esi
jl fcn.00484cbb
and edx, ebx
or ebx, edx
ret
Function at 0x10162095
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
xor edi, edi
mov dword [0x101ecff4], 0
mov dword [0x101ecff8], 0
mov dword [0x101ed004], 0
mov dword [0x101ecfec], 0x1efc
cmp eax, 0
mov ebx, edi
mov dword [ebp - 0x10], eax
mov eax, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], edi
jne 0x10162118
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x101ecff4]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x101ecff8]
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov esi, 0x100
add ecx, 1
mov dword [ebp - 0x34], eax
mov eax, ecx
mov dword [ebp - 0x38], edx
cdq
idiv esi
mov dword [0x101ecff4], edx
mov dword [0x101ecfec], 0x24cf
mov ecx, dword [ebp - 0x20]
movzx edi, byte [ecx + edx]
mov ebx, dword [ebp - 0x38]
add edi, ebx
mov eax, edi
mov dword [ebp - 0x3c], edx
cdq
idiv esi
mov dword [0x101ecff8], edx
mov dword [0x101ecfec], 0xb3c
mov esi, dword [ebp - 0x3c]
mov cl, byte [ecx + esi]
mov byte [0x101ecffc], cl
mov edi, dword [ebp - 0x20]
mov cl, byte [edi + edx]
mov byte [edi + esi], cl
mov edx, dword [0x101ecff0]
add edx, 0xffffde22
mov dword [0x101ecfec], edx
mov cl, byte [0x101ecffc]
mov edx, dword [0x101ecff8]
mov byte [edi + edx], cl
mov edx, dword [0x101ecff4]
movzx edx, byte [edi + edx]
mov ebx, dword [0x101ecff8]
movzx ebx, byte [edi + ebx]
add ebx, edx
mov dword [0x101ecff0], 0x14eb
and ebx, 0xff
mov dword [0x101ed004], ebx
mov cl, byte [edi + ebx]
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x34]
xor cl, byte [edx + ebx]
mov edx, dword [ebp - 0x1c]
mov byte [edx + ebx], cl
add ebx, 1
mov ecx, dword [ebp - 0x10]
cmp ebx, ecx
mov dword [ebp - 0x30], ebx
je 0x101620f4
jmp 0x101620fc
Function at 0x101623cc
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov dword [ebp - 4], 0
mov eax, dword fs:[0x30]
mov dword [ebp - 4], eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x10]
mov edx, dword [edx + 0x3c]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], ecx
jmp 0x10162436
mov dword [0x101ecfec], 0xfffff741
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x12], 0x64
je 0x101624b0
jmp 0x101624e4
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x14], 0x64
je 0x101623f8
jmp 0x101624e4
mov eax, dword [ebp - 0x18]
add esp, 0x28
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
cmp word [ecx + eax*2], 0
mov edx, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20], edx
je 0x10162463
mov eax, dword [ebp - 0x1c]
add eax, 1
cmp eax, 0x104
mov ecx, eax
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x20], eax
jl 0x10162436
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
cmp word [ecx + eax*2 - 0x1a], 0x6c
mov dword [ebp - 0x14], eax
jne 0x101624e4
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x18], 0x6f
sete dl
mov byte [ebp - 0x21], dl
mov al, byte [ebp - 0x21]
test al, 1
jne 0x10162491
jmp 0x101624e4
mov dword [0x101ecfec], 0x3e8
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x16], 0x61
je 0x1016241a
jmp 0x101624e4
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
cmp word [eax + ecx*2 - 0x10], 0x6c
jne 0x101624e4
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff9
mov dword [ebp - 0x28], eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x28]
cmp word [ecx + edx*2], 0x6c
mov dword [ebp - 0x18], eax
je 0x1016242e
xor eax, eax
mov dword [ebp - 0x18], eax
jmp 0x1016242e
Function at 0x1016252d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
call fcn.101621f8
mov ecx, eax
mov dword [0x101ecfec], 0xdcd
mov edx, dword [eax + 0x3c]
mov dword [0x101ecfec], 0x1269
mov eax, dword [eax + edx + 0x78]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], eax
xor eax, eax
mov dword [0x101ecfec], 0x1b01
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
add ecx, dword [ecx + edx + 0x20]
mov esi, dword [ebp - 0x14]
mov edi, dword [esi + edx + 0x18]
cmp edi, 0
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x24], eax
je 0x1016267c
jmp 0x1016264e
xor eax, eax
mov ecx, dword [ebp - 0x28]
add ecx, 2
mov edx, dword [ebp - 0x2c]
add edx, 1
mov esi, dword [ebp - 0x1c]
cmp edx, esi
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x24], eax
jb 0x10162660
jmp 0x1016267c
mov eax, dword [ebp - 0x38]
add eax, 1
mov cl, byte [ebp - 0x39]
cmp cl, 0
setne dl
mov ch, byte [ebp - 0x3a]
and ch, dl
cmp eax, 0x20
setb dl
and ch, dl
test ch, 1
mov dword [ebp - 0x40], eax
jne 0x10162620
mov al, byte [ebp - 0x3a]
test al, 1
jne 0x101625f9
jmp 0x1016259b
mov eax, dword [ebp - 0x28]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
add edx, dword [edx + esi + 0x1c]
mov ecx, dword [edx + ecx*4]
mov dword [0x101ecfec], 0x22e9
mov edx, dword [ebp - 0x14]
add edx, ecx
mov dword [ebp - 0x24], edx
jmp 0x1016267c
mov eax, dword [ebp - 0x40]
mov ecx, eax
mov edx, dword [ebp - 0x44]
add ecx, edx
mov esi, dword [ebp - 0x14]
mov bl, byte [esi + ecx]
mov ecx, dword [ebp - 0x10]
mov bh, byte [ecx + eax]
cmp bl, bh
sete cl
cmp bl, 0
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x39], bh
mov byte [ebp - 0x3a], cl
je 0x101625f0
jmp 0x101625c8
xor eax, eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
add ecx, dword [ecx + edx + 0x24]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
xor edx, edx
mov esi, dword [ebp - 0x20]
mov edi, dword [esi + eax*4]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], edx
jmp 0x10162620
mov eax, dword [ebp - 0x24]
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x10162935
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [0x101ecff8], 0
mov byte [0x101ecffc], 0
mov dword [0x101ecff4], 0
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edx
xor eax, eax
mov dword [ebp - 0x1c], eax
jmp 0x10162972
mov eax, dword [ebp - 0x1c]
mov ecx, eax
mov dl, cl
mov ecx, dword [ebp - 0x18]
mov byte [ecx + eax], dl
mov dword [0x101ecfec], 0x192c
mov eax, dword [0x101ecff4]
add eax, 1
mov dword [0x101ecff4], eax
cmp eax, 0x100
mov dword [ebp - 0x1c], eax
jl 0x10162972
mov eax, 0x21b9
xor ecx, ecx
mov dword [0x101ecfec], 0x21b9
mov dword [0x101ecff4], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
mov edx, 0x100
add ecx, 0xfffff8bb
mov dword [ebp - 0x28], eax
xor esi, esi
mov dword [ebp - 0x2c], edx
mov edx, esi
mov esi, dword [ebp - 0x10]
div esi
mov dword [0x101ed000], 0
mov edi, dword [0x101ecff8]
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x28]
movzx esi, byte [ebx + esi]
add esi, edi
mov edi, dword [ebp - 0x14]
movzx edx, byte [edi + edx]
add esi, edx
mov dword [0x101ed000], esi
mov eax, esi
cdq
mov esi, dword [ebp - 0x2c]
idiv esi
mov dword [0x101ecff8], edx
mov esi, dword [ebp - 0x28]
mov bl, byte [ebx + esi]
mov byte [0x101ecffc], bl
mov dword [0x101ecfec], ecx
mov ecx, dword [ebp - 0x18]
mov bl, byte [ecx + edx]
mov byte [ecx + esi], bl
mov bl, byte [0x101ecffc]
mov edx, dword [0x101ecff8]
mov byte [ecx + edx], bl
mov edx, dword [0x101ecff4]
add edx, 1
mov dword [0x101ecff4], edx
cmp edx, 0x100
mov dword [ebp - 0x30], edx
jge 0x10162a76
mov eax, dword [0x101ecfec]
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], ecx
jmp 0x101629c3
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x10163009
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x54
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [0x101ecfec]
add edx, 0xd1d
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], edx
xor eax, eax
mov ecx, dword [ebp - 0x30]
mov dword [0x101ecfec], ecx
mov dword [ebp - 0x34], eax
jmp 0x1016306f
lea eax, [ebp - 0x24]
mov dword [0x101ecff0], 0x1f1f
mov dword [ebp - 0x38], eax
call fcn.10162d88
mov dword [esp], eax
mov eax, dword [ebp - 0x38]
mov dword [esp + 4], eax
call fcn.10162ea5
cmp eax, 0
mov dword [ebp - 0x3c], eax
je 0x1016312e
jmp 0x1016309b
mov eax, dword [ebp - 0x34]
mov ecx, eax
add ecx, 1
mov dl, byte [eax + 0x101641fc]
mov dh, byte [eax + 0x101641cd]
sub dh, dl
mov byte [ebp + eax - 0x24], dh
cmp ecx, 0xe
mov dword [ebp - 0x34], ecx
je 0x1016303b
jmp 0x1016306f
mov eax, dword [ebp - 0x3c]
mov ecx, esp
mov dword [ecx + 0xc], 0x40
mov dword [ecx + 8], 0x1000
mov dword [ecx + 4], 0x6000
mov dword [ecx], 0
call eax
sub esp, 0x10
mov dword [esp], eax
mov ecx, dword [ebp - 0x28]
mov dword [esp + 4], ecx
mov dword [ebp - 0x40], eax
call fcn.10162b35
xor eax, eax
mov ecx, dword [ebp - 0x40]
mov word [ecx], 0x5a4d
mov dword [ecx + 0x3c], 0xd0
mov dword [ecx + 0xd0], 0x4550
add ecx, 0xffc00000
mov edx, dword [ebp - 0x2c]
mov dword [edx], ecx
mov ecx, dword [ebp - 0x40]
mov dword [edx + 0x14], ecx
mov dword [0x101ecfec], 0x2706
add ecx, 0x1a08
mov esi, dword [ebp - 0x40]
cmp esi, 0
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], eax
je 0x10163125
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
add esp, 0x54
pop esi
pop ebp
ret
xor eax, eax
add esp, 0x54
pop esi
pop ebp
ret
Function at 0x10163151
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x168
mov eax, dword [ebp + 8]
xor ecx, ecx
mov dword [0x101ecfec], 0xe6a
mov dword [0x101ecff0], 0x1c1d
mov edx, ecx
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x134], edx
mov dword [ebp - 0x138], ecx
jmp 0x101632b1
lea eax, [ebp - 0x12c]
mov dword [0x101ecff0], 0x1490
mov dword [0x101ecfec], 0x2176
mov dword [ebp - 0x13c], eax
call fcn.10162d88
mov dword [esp], eax
mov eax, dword [ebp - 0x13c]
mov dword [esp + 4], eax
call fcn.10162ea5
mov ecx, eax
mov dword [0x101ed008], eax
mov eax, esp
mov edx, dword [ebp - 0x140]
mov dword [eax + 4], edx
mov dword [eax + 0xc], 4
mov dword [eax + 8], 0x1000
mov dword [eax], 0
call ecx
sub esp, 0x10
xor ecx, ecx
mov edx, ecx
mov dword [ebp - 0x144], eax
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x14c], ecx
mov eax, dword [ebp - 0x14c]
mov ecx, dword [ebp - 0x148]
lea edx, section..data
imul esi, eax, 0xac
mov edi, edx
add edi, esi
add edi, 0xa8
mov esi, dword [edi]
imul edi, eax, 0xac
mov ebx, edx
add ebx, edi
add ebx, 0x20
mov edi, dword [ebx]
imul ebx, eax, 0xac
add edx, ebx
add edx, 0x7c
movzx edx, word [edx]
xor edx, esi
mov esi, dword [ebp - 0x144]
add esi, ecx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x154], ecx
mov dword [ebp - 0x158], edx
call fcn.10162035
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
add eax, ecx
mov edx, dword [ebp - 0x150]
add edx, 1
cmp edx, 0x2e2
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x14c], edx
je 0x10163349
jmp 0x10163207
mov eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x134]
xor edx, edx
lea esi, section..data
imul edi, ecx, 0xac
mov ebx, esi
add ebx, edi
add ebx, 0xa8
imul edi, ecx, 0xac
add esi, edi
add esi, 0x7c
add ecx, 1
mov edi, dword [ebx]
movzx esi, word [esi]
xor esi, edi
add esi, eax
cmp ecx, 0x2e2
mov eax, esi
mov dword [ebp - 0x140], esi
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], ecx
mov dword [ebp - 0x15c], edx
jne 0x101632b1
mov eax, dword [ebp - 0x15c]
mov cl, byte [eax + 0x101641fc]
mov dl, byte [eax + 0x101641cd]
sub dl, cl
mov byte [ebp + eax - 0x12c], dl
add eax, 1
cmp eax, 0xe
mov dword [ebp - 0x15c], eax
je 0x1016318f
jmp 0x10163314
lea eax, [0x101641db]
mov ecx, 0x20
lea edx, [ebp - 0x10c]
mov dword [0x101ecfec], 0x1cea
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 0x20
mov dword [ebp - 0x160], edx
mov dword [ebp - 0x164], ecx
call fcn.10162935
mov eax, dword [ebp - 0x160]
mov dword [esp], eax
mov ecx, dword [ebp - 0x144]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
mov edx, dword [ebp - 0x140]
mov dword [esp + 0xc], edx
call fcn.10162095
xor eax, eax
mov ecx, dword [ebp - 0x144]
add ecx, 0xa0aff
mov edx, dword [ebp - 0x130]
mov dword [edx], ecx
mov dword [edx + 4], 0x173400
mov ecx, dword [ebp - 0x144]
add ecx, 0x9a4b3
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0x2010
mov dword [0x101ecfec], 0x25ad
add esp, 0x168
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x101633f2
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x90
lea eax, [esp + 0x28]
lea ecx, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0x24], ecx
call fcn.10163151
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x40], 0x173400
mov ecx, dword [0x101ecfd8]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x20], eax
lea eax, [0x10161fee]
mov ecx, dword [0x101ecfdc]
mov dword [esp + 0x54], ecx
mov ecx, dword [0x101ecfe0]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x101ecfe4]
mov dword [esp + 0x6c], ecx
mov ecx, dword [0x101ecfe8]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x1c], eax
jmp 0x101634b0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x3c]
cmp dword [eax + ecx], 0x4550
mov dword [esp + 0x14], ecx
jne 0x101634bf
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [eax + ecx + 0x50]
mov dword [esp + 0x58], edx
mov dword [0x101ecfec], 0x17cf
call fcn.101623cc
xor ecx, ecx
cmp eax, 0
mov dword [esp + 0x10], ecx
je 0x101634d3
jmp 0x1016350f
mov eax, dword [esp + 0x1c]
cmp word [eax], 0x5a4d
mov dword [esp + 0x18], eax
je 0x1016346a
mov eax, dword [esp + 0x18]
add eax, 0xfffff000
and eax, 0xfffff000
mov dword [esp + 0x1c], eax
jmp 0x101634b0
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.10163009
mov dword [esp + 0xc], eax
mov eax, esp
lea ecx, [esp + 0x38]
mov dword [eax], ecx
mov eax, dword [esp + 0xc]
call eax
sub esp, 4
mov eax, 2
mov dword [0x101ecfec], 0x7ca
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov esp, ebp
pop ebp
ret
Function at 0x401b30
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [0x4380c0], 0x24e1
mov eax, dword [0x4380c0]
sub eax, 0x24e1
mov dword [0x4380c0], eax
mov ecx, 1
test ecx, ecx
je 0x401bdb
mov edx, dword [0x4380c0]
cmp edx, dword [ebp + 0xc]
jb 0x401b67
jmp 0x401bdb
cmp dword [0x4380c0], 0
jne 0x401b85
push 0x263
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
test eax, eax
je 0x401b85
xor eax, eax
jmp 0x401bdb
mov eax, dword [ebp + 8]
add eax, dword [0x4380c0]
mov ecx, dword [eax]
add ecx, dword [0x4380c0]
mov edx, dword [ebp + 8]
add edx, dword [0x4380c0]
mov dword [edx], ecx
mov dword [ebp - 4], 0x85
mov eax, dword [0x4380c0]
mov ecx, dword [ebp - 4]
lea edx, [ecx + eax + 2]
push edx
mov eax, dword [ebp + 8]
add eax, dword [0x4380c0]
push eax
call fcn.004011f0
add esp, 8
mov ecx, dword [0x4380c0]
add ecx, 4
mov dword [0x4380c0], ecx
jmp 0x401b4d
mov esp, ebp
pop ebp
ret

Function at 0x503b67
Capabilities:
Accept command line arguments
Hide graphical window

Disassembly:
mov ecx, ebp
push ebp
mov ebp, esp
mov dword [0x505076], ecx
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov dword [0x505298], eax
mov dword [0x505220], 0x5032dd
mov dword [0x50521c], 2
jmp 0x503b97
mov dword [0x505224], 0
mov dword [0x505228], 0
mov dword [0x505218], 0x30
push 0
call dword [sym.imp.kernel32.dll_GetModuleHandleA]
mov dword [0x50522c], eax
mov dword [0x505240], 0x504088
mov dword [0x505238], 0xf
mov dword [0x50506e], eax
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [0x505230], eax
mov dword [0x505244], eax
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
mov dword [0x505234], eax
push 0x505218
call dword [sym.imp.USER32.dll_RegisterClassExA]
push 0
push dword [0x50506e]
push 0
push 0
push 0x1e5
push 0x21e
push 0xffffe52a
push 0xfffff588
push 0x40000
push 0x5040d1
push 0x504088
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x505290], eax
push 5
push dword [0x505290]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x505290]
call dword [sym.imp.USER32.dll_UpdateWindow]
jmp 0x503c6a
push 0
push 0
push 0
push 0x505248
call dword [sym.imp.USER32.dll_GetMessageA]
or eax, eax
je 0x503c97
push 0x505248
call dword [sym.imp.USER32.dll_TranslateMessage]
push 0x505248
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x503c6a
mov eax, dword [0x505250]
jmp 0x503ca4
call 0x502b16
ret