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

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffec
mov esi, edx
lea edi, [esp + 8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 8]
test ebx, ebx
je 0x491494
push esp
push 0x40
push 6
push ebx
call sub.kernel32.dll_VirtualProtect
test eax, eax
jne 0x491463
call fcn.0040f90c
mov edx, dword [esp + 8]
lea eax, [esp + 0xc]
mov ecx, 6
call fcn.00402fd8
lea eax, [esp + 4]
push eax
mov eax, dword [esp + 4]
push eax
push 6
mov eax, dword [esp + 0x14]
push eax
call sub.kernel32.dll_VirtualProtect
test eax, eax
jne 0x491494
call fcn.0040f90c
add esp, 0x14
pop edi
pop esi
pop ebx
ret

Function at 0x494138
Capabilities:
Get system information on windows

Disassembly:
add esp, 0xffffffd4
call fcn.004940ec
test eax, eax
je 0x4942a5
mov eax, 0x506f38
call fcn.00494110
test eax, eax
jbe 0x4942a5
lea ecx, [esp + 4]
mov edx, esp
mov eax, 1
call fcn.004940fc
mov eax, dword [esp]
shr eax, 8
and al, 0xf
mov byte [0x506f47], al
mov eax, dword [esp]
shr eax, 4
and al, 0xf
mov byte [0x506f48], al
mov eax, dword [esp + 4]
and eax, 0x100
test eax, eax
je 0x4941a3
movzx eax, byte [0x4942c0]
or al, byte [0x506f45]
mov byte [0x506f45], al
mov eax, dword [esp + 4]
and eax, 0x8000
test eax, eax
je 0x4941c2
movzx eax, byte [0x4942c4]
or al, byte [0x506f45]
mov byte [0x506f45], al
mov eax, dword [esp + 4]
and eax, 0x800000
test eax, eax
je 0x4941e1
movzx eax, byte [0x4942c8]
or al, byte [0x506f45]
mov byte [0x506f45], al
mov eax, dword [esp + 4]
and eax, 0x2000000
test eax, eax
je 0x494200
movzx eax, byte [0x4942cc]
or al, byte [0x506f45]
mov byte [0x506f45], al
mov eax, dword [esp + 4]
and eax, 0x4000000
test eax, eax
je 0x49421f
movzx eax, byte [0x4942d0]
or al, byte [0x506f45]
mov byte [0x506f45], al
lea ecx, [esp + 4]
mov edx, esp
mov eax, 0x80000000
call fcn.004940fc
cmp dword [esp], 0x80000000
jbe 0x4942a5
lea ecx, [esp + 4]
mov edx, esp
mov eax, 0x80000001
call fcn.004940fc
mov eax, dword [esp + 4]
and eax, 0x400000
test eax, eax
je 0x494267
movzx eax, byte [0x4942d4]
or al, byte [0x506f45]
mov byte [0x506f45], al
mov eax, dword [esp + 4]
and eax, 0x80000000
test eax, eax
je 0x494286
movzx eax, byte [0x4942d8]
or al, byte [0x506f45]
mov byte [0x506f45], al
mov eax, dword [esp + 4]
and eax, 0x40000000
test eax, eax
je 0x4942a5
movzx eax, byte [0x4942dc]
or al, byte [0x506f45]
mov byte [0x506f45], al
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_GetSystemInfo
movzx eax, byte [esp + 0x1c]
mov byte [0x506f46], al
add esp, 0x2c
ret
Function at 0x539b20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 8]
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x1c], ecx
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + 0x3c]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xf8
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + 0x78]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
add edx, dword [ecx + 0x20]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
add ecx, dword [eax + 0x24]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + 0x1c]
mov dword [ebp - 8], eax
mov dword [ebp - 0x24], 0
jmp 0x539b8c
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x24]
cmp eax, dword [edx + 0x18]
jae 0x539bd3
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x28]
push edx
call fcn.005867ae
add esp, 8
test eax, eax
jne 0x539bd1
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
movzx edx, word [ecx + eax*2]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
add ecx, dword [eax + edx*4]
mov eax, ecx
jmp 0x539bd5
jmp 0x539b83
xor eax, eax
mov esp, ebp
pop ebp
ret
Function at 0x55ebf0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b5767
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x5dd890]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x44
call fcn.0055db30
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xa4
call fcn.0055db30
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
push edx
mov ecx, dword [ebp - 0x10]
add ecx, 0x104
call fcn.0055db30
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x44
mov ecx, dword [ebp - 0x10]
add ecx, 0x44
call fcn.0055e4f0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xa4
call fcn.0055e4f0
mov edx, dword [ebp - 0x10]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x104
call fcn.0055e4f0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x30]
mov word [edx + 0x30], cx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x32]
mov word [edx + 0x32], cx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0x3c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
mov dword [edx + 0x40], ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x55eec0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b5857
mov eax, dword fs:[0]
push eax
push ecx
mov eax, dword [0x5dd890]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x44
call fcn.0055da60
mov dword [ebp - 4], 0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 8]
push eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xa4
call fcn.0055da60
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0xc]
push edx
mov ecx, dword [ebp - 0x10]
add ecx, 0x104
call fcn.0055da60
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x10]
mov dword [eax], 0x44
mov ecx, dword [ebp - 0x10]
add ecx, 0x44
call fcn.0055e510
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0xa4
call fcn.0055e510
mov edx, dword [ebp - 0x10]
mov dword [edx + 8], eax
mov ecx, dword [ebp - 0x10]
add ecx, 0x104
call fcn.0055e510
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x10]
mov dword [edx + 0x10], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x18]
mov dword [edx + 0x18], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x1c]
mov dword [edx + 0x1c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x20]
mov dword [edx + 0x20], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
mov dword [edx + 0x24], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov dword [edx + 0x28], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x2c]
mov dword [edx + 0x2c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x30]
mov word [edx + 0x30], cx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov cx, word [eax + 0x32]
mov word [edx + 0x32], cx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
mov dword [edx + 0x38], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x3c]
mov dword [edx + 0x3c], ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x40]
mov dword [edx + 0x40], ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 4
Function at 0x5acc7b
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [edi + 0x2c]
push esi
mov esi, dword [edi + 0x3c]
sub esi, dword [edi + 0x74]
mov eax, dword [edi + 0x6c]
mov ecx, dword [edi + 0x2c]
lea ecx, [ebx + ecx - 0x106]
sub esi, eax
cmp eax, ecx
jb 0x5acd00
mov eax, dword [edi + 0x38]
push ebx
lea ecx, [eax + ebx]
push ecx
push eax
call fcn.00587dc0
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 0x44]
sub dword [edi + 0x70], ebx
sub dword [edi + 0x6c], ebx
add esp, 0xc
sub dword [edi + 0x5c], ebx
mov dword [ebp - 4], eax
lea eax, [ecx + eax*2]
dec eax
dec eax
movzx ecx, word [eax]
mov edx, ecx
sub edx, ebx
cmp ecx, ebx
sbb ecx, ecx
not ecx
and ecx, edx
dec dword [ebp - 4]
mov word [eax], cx
jne 0x5accc3
mov eax, dword [edi + 0x40]
mov dword [ebp - 4], ebx
lea eax, [eax + ebx*2]
dec eax
dec eax
movzx ecx, word [eax]
mov edx, ecx
sub edx, ebx
cmp ecx, ebx
sbb ecx, ecx
not ecx
and ecx, edx
dec dword [ebp - 4]
mov word [eax], cx
jne 0x5acce5
add esi, ebx
mov eax, dword [edi]
cmp dword [eax + 4], 0
je 0x5acd5b
mov ecx, dword [edi + 0x74]
add ecx, dword [edi + 0x6c]
push esi
add ecx, dword [edi + 0x38]
mov esi, eax
push ecx
call fcn.005ac9cb
add dword [edi + 0x74], eax
mov esi, dword [edi + 0x74]
cmp esi, 3
pop ecx
pop ecx
jb 0x5acd47
mov eax, dword [edi + 0x6c]
mov ecx, dword [edi + 0x38]
lea edx, [eax + ecx]
movzx eax, byte [edx]
mov ecx, dword [edi + 0x58]
mov dword [edi + 0x48], eax
shl eax, cl
movzx ecx, byte [edx + 1]
xor eax, ecx
and eax, dword [edi + 0x54]
mov dword [edi + 0x48], eax
cmp esi, 0x106
jae 0x5acd5b
mov eax, dword [edi]
cmp dword [eax + 4], 0
jne 0x5acc84
pop esi
pop ebx
leave
ret
Function at 0x1043923
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x44
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x80
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [0x407164]
call eax
sub esp, 0x1c
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
jne 0x104397f
mov dword [esp], 0x40413b
call fcn.010436e8
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x407184]
call eax
sub esp, 8
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0x405040
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x4071bc]
call eax
sub esp, 0x14
mov dword [ebp - 0x10], 0x405040
mov eax, dword [ebp - 0x10]
movzx eax, word [eax]
cmp ax, 0x5a4d
je 0x10439f4
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x407160]
call eax
sub esp, 4
mov dword [esp], 0x404152
call fcn.010436e8
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x3c]
mov ecx, eax
mov ebx, eax
sar ebx, 0x1f
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp ebx, edx
jl 0x1043a39
cmp ebx, edx
jg 0x1043a13
cmp ecx, eax
jb 0x1043a39
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x407160]
call eax
sub esp, 4
mov dword [esp], 0x4040eb
call fcn.01044e90
mov eax, 0
jmp 0x1043af9
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x4071c0]
call eax
sub esp, 0x10
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1000
mov dword [esp + 4], 0x405040
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x4071bc]
call eax
sub esp, 0x14
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
mov eax, dword [0x407160]
call eax
sub esp, 4
mov dword [ebp - 0x14], 0x405040
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
cmp eax, 0x4550
je 0x1043ac8
mov dword [esp], 0x4040eb
call fcn.01044e90
mov eax, 0
jmp 0x1043af9
mov eax, dword [ebp - 0x14]
movzx eax, word [eax + 4]
cmp ax, 0x8664
jne 0x1043ae8
mov dword [esp], 0x404138
call fcn.01044e90
mov eax, 0
jmp 0x1043af9
mov dword [esp], 0x4040eb
call fcn.01044e90
mov eax, 0
mov ebx, dword [ebp - 4]
leave
ret

Function at 0x1044ae8
Capabilities:
Enumerate pe sections

Disassembly:
push esi
push ebx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
add edx, dword [edx + 0x3c]
movzx esi, word [edx + 6]
movzx eax, word [edx + 0x14]
test esi, esi
lea eax, [edx + eax + 0x18]
je 0x1044b20
xor edx, edx
nop
mov ecx, dword [eax + 0xc]
cmp ecx, ebx
ja 0x1044b16
add ecx, dword [eax + 8]
cmp ebx, ecx
jb 0x1044b22
add edx, 1
add eax, 0x28
cmp edx, esi
jb 0x1044b08
xor eax, eax
pop ebx
pop esi
ret
Function at 0x45f9ec
Capabilities:
Get common file path
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff6c
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x94], edx
mov dword [ebp - 0x90], edx
mov dword [ebp - 8], edx
xor eax, eax
push ebp
push 0x45fba6
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x89]
xor ecx, ecx
mov edx, 0x81
call fcn.004030c4
lea eax, [ebp - 0x89]
push eax
push 0x81
call sub.kernel32.dll_GetLogicalDriveStringsA
test eax, eax
je 0x45fb80
cmp eax, 0x81
jbe 0x45fa70
lea edx, [ebp - 0x90]
mov eax, 0xe
call fcn.0040b8f0
mov ecx, dword [ebp - 0x90]
mov dl, 1
mov eax, dword [0x407aec]
call fcn.0040c0e8
call fcn.00404098
xor ebx, ebx
lea eax, [ebp - 8]
mov edx, 0x20
call fcn.00404c74
mov eax, dword [ebp - 8]
call fcn.004048f0
push eax
lea eax, [ebp - 8]
call fcn.00404b40
xor ecx, ecx
pop edx
call fcn.004030c4
lea esi, [ebp - 0x89]
jmp 0x45fac2
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x45fabf
lea eax, [ebp - 8]
call fcn.00404b40
mov dl, byte [esi]
mov byte [eax + ebx], dl
inc dword [0x463cf4]
inc ebx
add esi, 4
cmp byte [esi], 0
jne 0x45faa0
lea eax, [ebp - 8]
mov edx, ebx
call fcn.00404c74
push 0x80
lea eax, [ebp - 0x89]
push eax
call sub.kernel32.dll_GetSystemDirectoryA
mov al, byte [ebp - 0x89]
mov byte [ebp - 1], al
lea eax, [ebp - 0x94]
mov dl, byte [ebp - 1]
call fcn.00404818
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 8]
call fcn.00404c2c
mov edi, eax
mov ebx, edi
mov eax, dword [ebp - 8]
call fcn.004048f0
mov esi, eax
dec esi
sub esi, ebx
jl 0x45fb47
inc esi
mov eax, dword [ebp - 8]
mov al, byte [eax + ebx - 1]
sub al, 0x41
inc eax
call fcn.00409220
cmp edx, 0
jne 0x45fb38
cmp eax, 0xc800000
jbe 0x45fb43
jmp 0x45fb3a
jle 0x45fb43
mov eax, dword [ebp - 8]
mov bl, byte [eax + ebx - 1]
jmp 0x45fb80
inc ebx
dec esi
jne 0x45fb1b
mov esi, edi
dec esi
test esi, esi
jl 0x45fb7d
inc esi
xor ebx, ebx
mov eax, dword [ebp - 8]
mov al, byte [eax + ebx - 1]
sub al, 0x41
inc eax
call fcn.00409220
cmp edx, 0
jne 0x45fb6e
cmp eax, 0xc800000
jbe 0x45fb79
jmp 0x45fb70
jle 0x45fb79
mov eax, dword [ebp - 8]
mov bl, byte [eax + ebx - 1]
jmp 0x45fb80
inc ebx
dec esi
jne 0x45fb51
mov bl, byte [ebp - 1]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45fbad
lea eax, [ebp - 0x94]
mov edx, 2
call fcn.0040465c
lea eax, [ebp - 8]
call fcn.00404638
ret

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

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..text
mov ebx, 0x408e84
nop
mov ecx, 0x31e377b8
nop
test eax, eax
nop
nop
nop
nop
nop
je 0x43004e
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
inc eax
inc eax
nop
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x430024
nop
nop
nop
nop
mov eax, section..data
nop
mov ebx, 0x42e1d0
nop
mov ecx, 0x386524b9
nop
test eax, eax
nop
nop
nop
nop
nop
nop
je 0x430084
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
nop
add eax, 4
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x43006c
nop
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x401219
Function at 0x405e3d
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
cmp dword [0x422ac4], 0
push esi
jne 0x405e74
xor ecx, ecx
push 8
mov eax, ecx
pop esi
mov edx, eax
and dl, 1
neg dl
sbb edx, edx
and edx, 0xedb88320
shr eax, 1
xor eax, edx
dec esi
jne 0x405e4e
mov dword [ecx*4 + 0x422ac0], eax
inc ecx
cmp ecx, 0x100
jl 0x405e49
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 8]
test edx, edx
not eax
jbe 0x405ea5
mov ecx, dword [esp + 0xc]
push edi
movzx edi, byte [ecx]
mov esi, eax
and esi, 0xff
xor esi, edi
shr eax, 8
mov esi, dword [esi*4 + 0x422ac0]
xor eax, esi
inc ecx
dec edx
jne 0x405e87
pop edi
not eax
pop esi
ret 0xc

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

Disassembly:
pushal
nop
nop
nop
nop
nop
nop
mov eax, section..pdata
push 4
nop
nop
nop
nop
pop edi
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0
nop
je 0x430072
nop
nop
nop
nop
mov ebx, 0x408f6c
nop
mov ecx, ebx
nop
nop
nop
nop
sub ecx, eax
nop
nop
nop
nop
nop
nop
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
div edi
nop
nop
nop
nop
nop
nop
nop
nop
xchg ecx, eax
nop
nop
nop
pop eax
nop
nop
nop
mov esi, 0x3f757750
nop
nop
nop
xor dword [eax], esi
nop
nop
add eax, edi
nop
nop
nop
nop
loop 0x430060
nop
nop
nop
nop
mov eax, section..pdata_1
nop
nop
nop
cmp eax, 0
nop
nop
nop
nop
nop
je 0x4300d2
mov ebx, 0x42e3d0
nop
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
sub ecx, eax
xor edx, edx
nop
nop
nop
nop
push eax
nop
nop
nop
nop
nop
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
div edi
nop
nop
nop
nop
nop
nop
xchg ecx, eax
pop eax
nop
nop
nop
nop
nop
nop
mov esi, 0x9f0a8d
nop
nop
xor dword [eax], esi
nop
nop
nop
nop
add eax, edi
nop
nop
nop
loop 0x4300c0
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x401219
Function at 0x4039e8
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__System__LStrAddRef_qqrpv
mov eax, dword [ebp - 8]
call sub.rtl70.bpl__System__LStrAddRef_qqrpv
mov eax, dword [ebp - 0xc]
call sub.rtl70.bpl__System__LStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x403a84
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x48]
xor ecx, ecx
mov edx, 0x3c
call sub.rtl70.bpl__System__FillChar_qqrpvic
mov dword [ebp - 0x48], 0x3c
mov dword [ebp - 0x44], 0x500
mov eax, dword [ebp - 4]
call sub.rtl70.bpl__System__LStrToPChar_qqrx17System_AnsiString
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 8]
call sub.rtl70.bpl__System__LStrToPChar_qqrx17System_AnsiString
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0xc]
call sub.rtl70.bpl__System__LStrToPChar_qqrx17System_AnsiString
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x48]
push eax
call sub.shell32.dll_ShellExecuteExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x403a8b
lea eax, [ebp - 0xc]
mov edx, 3
call sub.rtl70.bpl__System__LStrArrayClr_qqrpvi
ret
Function at 0x40aac7
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push dword [esp + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40aae7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0040d204
pop ecx
or eax, 0xffffffff
ret
test al, 1
je 0x40ab08
test byte [esp + 8], 2
je 0x40ab08
mov dword [0x41b008], 0xd
mov dword [0x41b00c], 5
jmp 0x40aae3
xor eax, eax
ret

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

Disassembly:
pushal
call 0x43300c
pop eax
nop
nop
nop
nop
nop
nop
add eax, 0x40a063
sub eax, 0x40a009
nop
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
nop
nop
mov edx, dword [eax + 8]
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
jl 0x433030
nop
nop
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
cmp dword [eax], 0
jne 0x43301e
nop
nop
nop
nop
nop
nop
nop
popal
nop
nop
jmp 0x431219