joyce8/EMBER2024-capa huggingface dataset:
Function at 0x312e04
Capabilities:
Generate random numbers using the delphi lcg

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

Function at 0x31c1dc
Capabilities:
Hash data with crc32

Disassembly:
push ebx
xor ebx, ebx
mov ecx, 0x3b87b4
mov eax, ebx
mov edx, 8
test al, 1
je 0x31c1f8
shr eax, 1
xor eax, 0xedb88320
jmp 0x31c1fa
shr eax, 1
dec edx
jne 0x31c1eb
mov dword [ecx], eax
inc ebx
add ecx, 4
cmp ebx, 0x100
jne 0x31c1e4
pop ebx
ret

Function at 0x31d3e0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff0
mov dword [esp], ecx
mov esi, edx
mov edi, eax
mov eax, dword [esp]
inc eax
cmp eax, 5
jge 0x31d3fd
xor eax, eax
jmp 0x31d485
mov cl, byte [esi]
and cl, 0xff
and ecx, 0xff
mov eax, ecx
mov ebx, 9
cdq
idiv ebx
mov dword [esp + 4], edx
mov eax, ecx
mov ecx, 9
cdq
idiv ecx
mov ecx, eax
mov eax, ecx
mov ebx, 5
cdq
idiv ebx
mov dword [esp + 8], edx
mov eax, ecx
mov ecx, 5
cdq
idiv ecx
mov dword [esp + 0xc], eax
xor ebx, ebx
xor eax, eax
mov ecx, eax
shl ecx, 3
lea edx, [eax + 1]
mov dl, byte [esi + edx]
and dl, 0xff
and edx, 0xff
shl edx, cl
add ebx, edx
inc eax
cmp eax, 4
jne 0x31d442
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov eax, edi
call fcn.0031cfa4
test al, al
jne 0x31d47c
xor eax, eax
jmp 0x31d485
mov edx, ebx
mov eax, edi
call fcn.0031cf54
add esp, 0x10
pop edi
pop esi
pop ebx
ret
Function at 0x322e90
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov ebx, eax
mov edi, dword [ebx + 0x24]
mov esi, dword [ebx + 0x34]
sub esi, dword [ebx + 0x6c]
sub esi, dword [ebx + 0x64]
test esi, esi
jne 0x322eba
cmp dword [ebx + 0x64], 0
jne 0x322eba
cmp dword [ebx + 0x6c], 0
jne 0x322eba
mov esi, edi
jmp 0x322f52
cmp esi, 0xffffffff
jne 0x322ec5
dec esi
jmp 0x322f52
mov eax, dword [ebx + 0x64]
lea edx, [edi + edi]
sub edx, 0x106
cmp eax, edx
jb 0x322f52
mov eax, dword [ebx + 0x30]
lea edx, [eax + edi]
mov ebp, edi
mov ecx, ebp
call fcn.0031e71c
sub dword [ebx + 0x68], edi
sub dword [ebx + 0x64], edi
sub dword [ebx + 0x54], ebp
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x3c]
lea edx, [edx + eax*2]
mov dword [esp], edx
sub dword [esp], 2
mov edx, dword [esp]
movzx edx, word [edx]
cmp edi, edx
ja 0x322f12
sub dx, di
mov ecx, dword [esp]
mov word [ecx], dx
jmp 0x322f1a
mov edx, dword [esp]
mov word [edx], 0
dec eax
test eax, eax
jne 0x322ef9
mov eax, edi
mov edx, dword [ebx + 0x38]
lea edx, [edx + eax*2]
mov dword [esp], edx
sub dword [esp], 2
mov edx, dword [esp]
movzx edx, word [edx]
cmp edi, edx
ja 0x322f43
sub dx, di
mov ecx, dword [esp]
mov word [ecx], dx
jmp 0x322f4b
mov edx, dword [esp]
mov word [edx], 0
dec eax
test eax, eax
jne 0x322f2a
add esi, edi
mov eax, dword [ebx]
cmp dword [eax + 4], 0
je 0x322fb0
mov edx, dword [ebx + 0x64]
add edx, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x30]
lea edx, [ecx + edx]
mov ecx, esi
call fcn.00322bc0
add dword [ebx + 0x6c], eax
cmp dword [ebx + 0x6c], 3
jb 0x322f9b
mov eax, dword [ebx + 0x64]
mov edx, dword [ebx + 0x30]
movzx eax, byte [edx + eax]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0x50]
shl eax, cl
mov edx, dword [ebx + 0x64]
mov ecx, dword [ebx + 0x30]
movzx edx, byte [ecx + edx + 1]
xor eax, edx
and eax, dword [ebx + 0x4c]
mov dword [ebx + 0x40], eax
cmp dword [ebx + 0x6c], 0x106
jae 0x322fb0
mov eax, dword [ebx]
cmp dword [eax + 4], 0
jne 0x322e9a
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x3238b8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
lea edi, [ebp - 0xc]
mov dword [edi], eax
test edx, edx
je 0x323973
mov al, byte [ebp - 4]
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 4]
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, dword [ebp - 4]
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, dword [ebp - 4]
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, dword [ebp + 8]
dec eax
cmp eax, 0
jl 0x323973
mov dword [ebp - 8], eax
mov eax, dword [edi]
mov al, byte [eax]
mov cl, byte [ebp - 0xf]
add al, cl
mov ecx, dword [edi]
mov byte [ecx], al
mov esi, edx
dec esi
test esi, esi
jle 0x323932
mov eax, 1
mov ecx, dword [edi]
mov cl, byte [ecx + eax - 1]
mov ebx, dword [edi]
mov bl, byte [ebx + eax]
add cl, bl
mov bl, byte [ebp - 0xd]
xor cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
inc eax
dec esi
jne 0x323917
mov eax, dword [edi]
mov al, byte [eax + edx - 1]
mov cl, byte [ebp - 0x10]
add al, cl
mov ecx, dword [edi]
mov byte [ecx + edx - 1], al
mov eax, edx
sub eax, 2
cmp eax, 0
jl 0x32396a
mov ecx, dword [edi]
mov cl, byte [ecx + eax + 1]
mov ebx, dword [edi]
mov bl, byte [ebx + eax]
add cl, bl
mov bl, byte [ebp - 0xe]
xor cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
dec eax
cmp eax, 0xffffffff
jne 0x32394d
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x3238fe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x32397c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
lea edi, [ebp - 0xc]
mov dword [edi], eax
test edx, edx
je 0x323a30
mov al, byte [ebp - 4]
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 4]
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, dword [ebp - 4]
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, dword [ebp - 4]
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, dword [ebp + 8]
dec eax
cmp eax, 0
jl 0x323a30
mov dword [ebp - 8], eax
mov esi, edx
sub esi, 2
test esi, esi
jl 0x3239e7
inc esi
xor eax, eax
mov ecx, dword [edi]
mov cl, byte [ecx + eax]
xor cl, byte [ebp - 0xe]
mov ebx, dword [edi]
mov bl, byte [ebx + eax + 1]
sub cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
inc eax
dec esi
jne 0x3239ce
mov eax, dword [edi]
mov al, byte [eax + edx - 1]
mov cl, byte [ebp - 0x10]
sub al, cl
mov ecx, dword [edi]
mov byte [ecx + edx - 1], al
mov eax, edx
dec eax
cmp eax, 1
jl 0x323a1a
mov ecx, dword [edi]
mov cl, byte [ecx + eax]
xor cl, byte [ebp - 0xd]
mov ebx, dword [edi]
mov bl, byte [ebx + eax - 1]
sub cl, bl
mov ebx, dword [edi]
mov byte [ebx + eax], cl
dec eax
test eax, eax
jne 0x323a00
mov eax, dword [edi]
mov al, byte [eax]
mov cl, byte [ebp - 0xf]
sub al, cl
mov ecx, dword [edi]
mov byte [ecx], al
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x3239c2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x32de70
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], ebx
mov edi, ecx
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x32e093
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x32de9d
cmp dword [ebp - 4], 0
jg 0x32dea4
mov bl, 3
jmp 0x32e07d
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
test edx, edx
jne 0x32dec2
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov ebx, eax
jmp 0x32ded0
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov ebx, eax
inc ebx
mov edx, ebx
shl edx, 2
mov eax, edi
call fcn.00314970
dec ebx
test ebx, ebx
jl 0x32e067
inc ebx
mov dword [ebp - 0xc], ebx
xor ebx, ebx
lea eax, [ebx + ebx*2]
add eax, 3
cmp eax, dword [ebp - 4]
jg 0x32df7a
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x355098]
mov byte [ebp - 5], al
lea eax, [ebx + ebx*2]
mov al, byte [esi + eax]
shl eax, 4
and al, 0x30
lea edx, [ebx + ebx*2]
inc edx
movzx edx, byte [esi + edx]
shr edx, 4
or al, dl
and eax, 0xff
mov al, byte [eax + 0x355098]
mov byte [ebp - 6], al
lea eax, [ebx + ebx*2]
inc eax
mov al, byte [esi + eax]
shl eax, 2
and al, 0x3c
lea edx, [ebx + ebx*2]
add edx, 2
movzx edx, byte [esi + edx]
shr edx, 6
or al, dl
and eax, 0xff
mov al, byte [eax + 0x355098]
mov byte [ebp - 7], al
lea eax, [ebx + ebx*2]
add eax, 2
mov al, byte [esi + eax]
and al, 0x3f
and eax, 0xff
mov al, byte [eax + 0x355098]
mov byte [ebp - 8], al
jmp 0x32e012
lea eax, [ebx + ebx*2]
add eax, 2
cmp eax, dword [ebp - 4]
jg 0x32dfde
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x355098]
mov byte [ebp - 5], al
lea eax, [ebx + ebx*2]
mov al, byte [esi + eax]
shl eax, 4
and al, 0x30
lea edx, [ebx + ebx*2]
inc edx
movzx edx, byte [esi + edx]
shr edx, 4
or al, dl
and eax, 0xff
mov al, byte [eax + 0x355098]
mov byte [ebp - 6], al
lea eax, [ebx + ebx*2]
inc eax
mov al, byte [esi + eax]
shl eax, 2
and al, 0x3c
and eax, 0xff
mov al, byte [eax + 0x355098]
mov byte [ebp - 7], al
mov byte [ebp - 8], 0x3d
jmp 0x32e012
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x355098]
mov byte [ebp - 5], al
lea eax, [ebx + ebx*2]
mov al, byte [esi + eax]
shl eax, 4
and al, 0x30
and eax, 0xff
mov al, byte [eax + 0x355098]
mov byte [ebp - 6], al
mov byte [ebp - 7], 0x3d
mov byte [ebp - 8], 0x3d
mov eax, edi
call fcn.00314898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 5]
mov byte [eax + edx], cl
mov eax, edi
call fcn.00314898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 6]
mov byte [eax + edx + 1], cl
mov eax, edi
call fcn.00314898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 7]
mov byte [eax + edx + 2], cl
mov eax, edi
call fcn.00314898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 8]
mov byte [eax + edx + 3], cl
inc ebx
dec dword [ebp - 0xc]
jne 0x32deeb
lea edx, [ebp - 0x10]
mov eax, dword [edi]
call fcn.00317808
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.003143e8
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x32e09a
lea eax, [ebp - 0x10]
call fcn.00314394
ret
Function at 0x32e4a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ecx
mov edi, edx
mov ebx, eax
mov esi, dword [ebp + 8]
xor eax, eax
push ebp
push 0x32e5d0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, ebx
call fcn.003143e8
mov eax, dword [esi]
call fcn.00314640
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x32e5ba
mov eax, edi
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, edi
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, edi
shr eax, 8
mov byte [ebp - 0xe], al
mov eax, edi
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 4]
dec eax
cmp eax, 0
jl 0x32e5a6
mov dword [ebp - 8], eax
mov eax, esi
call fcn.00314898
mov edx, dword [esi]
mov dl, byte [edx]
mov cl, byte [ebp - 0xf]
add dl, cl
mov byte [eax], dl
mov edi, dword [ebp - 0xc]
sub edi, 2
jl 0x32e552
inc edi
mov ebx, 2
mov eax, esi
call fcn.00314898
mov edx, dword [esi]
mov dl, byte [edx + ebx - 2]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx - 1]
add dl, cl
mov cl, byte [ebp - 0xd]
xor dl, cl
mov byte [eax + ebx - 1], dl
inc ebx
dec edi
jne 0x32e530
mov eax, esi
call fcn.00314898
mov edx, dword [ebp - 0xc]
mov ecx, dword [esi]
mov ebx, dword [ebp - 0xc]
mov cl, byte [ecx + ebx - 1]
mov bl, byte [ebp - 0x10]
add cl, bl
mov byte [eax + edx - 1], cl
mov ebx, dword [ebp - 0xc]
dec ebx
cmp ebx, 1
jl 0x32e599
mov eax, esi
call fcn.00314898
mov edx, dword [esi]
mov dl, byte [edx + ebx]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx - 1]
add dl, cl
mov cl, byte [ebp - 0xe]
xor dl, cl
mov byte [eax + ebx - 1], dl
dec ebx
test ebx, ebx
jne 0x32e577
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x32e510
lea edx, [ebp - 0x14]
mov eax, dword [esi]
call fcn.0032e38c
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.003143e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x32e5d7
lea eax, [ebp - 0x14]
call fcn.00314394
ret
Function at 0x32e5e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ebx, edx
mov edi, eax
mov esi, dword [ebp + 8]
mov edx, esi
mov eax, edi
call fcn.0032e394
mov eax, dword [esi]
call fcn.00314640
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x32e6cc
mov eax, ebx
shr eax, 0x18
mov byte [ebp - 0x10], al
mov eax, ebx
shr eax, 0x10
mov byte [ebp - 0xf], al
mov eax, ebx
shr eax, 8
mov byte [ebp - 0xe], al
mov byte [ebp - 0xd], bl
mov eax, dword [ebp - 4]
dec eax
cmp eax, 0
jl 0x32e6cc
mov dword [ebp - 8], eax
mov edi, dword [ebp - 0xc]
dec edi
test edi, edi
jle 0x32e667
mov ebx, 1
mov eax, esi
call fcn.00314898
mov edx, dword [esi]
mov dl, byte [edx + ebx - 1]
xor dl, byte [ebp - 0xe]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx]
sub dl, cl
mov byte [eax + ebx - 1], dl
inc ebx
dec edi
jne 0x32e648
mov eax, esi
call fcn.00314898
mov edx, dword [ebp - 0xc]
mov ecx, dword [esi]
mov ebx, dword [ebp - 0xc]
mov cl, byte [ecx + ebx - 1]
mov bl, byte [ebp - 0x10]
sub cl, bl
mov byte [eax + edx - 1], cl
mov ebx, dword [ebp - 0xc]
cmp ebx, 2
jl 0x32e6ad
mov eax, esi
call fcn.00314898
mov edx, dword [esi]
mov dl, byte [edx + ebx - 1]
xor dl, byte [ebp - 0xd]
mov ecx, dword [esi]
mov cl, byte [ecx + ebx - 2]
sub dl, cl
mov byte [eax + ebx - 1], dl
dec ebx
cmp ebx, 1
jne 0x32e68b
mov eax, esi
call fcn.00314898
mov edx, dword [esi]
mov dl, byte [edx]
mov cl, byte [ebp - 0xf]
sub dl, cl
mov byte [eax], dl
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x32e63b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x3350f4
Capabilities:
Hash data with md5

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x58
call fcn.00312de4
mov dword [ebx], 0x67452301
mov dword [ebx + 4], 0xefcdab89
mov dword [ebx + 8], 0x98badcfe
mov dword [ebx + 0xc], 0x10325476
pop ebx
ret
Function at 0x335be0
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe7c
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp dword [ebp - 8], 0x40
jle 0x335c39
lea eax, [ebp - 0x114]
call fcn.003350f4
mov eax, dword [ebp - 4]
lea edx, [eax + 1]
lea eax, [ebp - 0x114]
mov ecx, dword [ebp - 8]
call fcn.00335928
lea edx, [ebp - 0x114]
lea eax, [ebp - 0x144]
call fcn.00335b28
lea eax, [ebp - 0x144]
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0x10
lea eax, [ebp - 0x64]
call fcn.003350f4
mov edx, dword [ebp - 8]
dec edx
test edx, edx
jl 0x335c62
inc edx
xor eax, eax
lea ecx, [ebp - 0x184]
mov ebx, dword [ebp - 4]
mov bl, byte [ebx + eax]
xor bl, 0x36
mov byte [ecx], bl
inc eax
inc ecx
dec edx
jne 0x335c52
mov eax, dword [ebp - 8]
cmp eax, 0x3f
jg 0x335c7b
lea edx, [ebp + eax - 0x184]
mov byte [edx], 0x36
inc eax
inc edx
cmp eax, 0x40
jne 0x335c71
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x64]
mov ecx, 0x40
call fcn.003359f4
lea eax, [ebp - 0x64]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
call fcn.003359f4
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x124]
call fcn.00335b28
lea eax, [ebp - 0xbc]
call fcn.003350f4
mov edx, dword [ebp - 8]
dec edx
test edx, edx
jl 0x335cd6
inc edx
xor eax, eax
lea ecx, [ebp - 0x184]
mov ebx, dword [ebp - 4]
mov bl, byte [ebx + eax]
xor bl, 0x5c
mov byte [ecx], bl
inc eax
inc ecx
dec edx
jne 0x335cc6
mov eax, dword [ebp - 8]
cmp eax, 0x3f
jg 0x335cef
lea edx, [ebp + eax - 0x184]
mov byte [edx], 0x5c
inc eax
inc edx
cmp eax, 0x40
jne 0x335ce5
lea edx, [ebp - 0x184]
lea eax, [ebp - 0xbc]
mov ecx, 0x40
call fcn.00335928
lea edx, [ebp - 0x124]
lea eax, [ebp - 0xbc]
mov ecx, 0x10
call fcn.00335928
lea edx, [ebp - 0xbc]
lea eax, [ebp - 0x134]
call fcn.00335b28
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x134]
mov edx, 0x10
call fcn.00317990
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x34d158
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00314830
xor eax, eax
push ebp
push 0x34d2c9
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x8c], 0
je 0x34d2b3
test ebx, ebx
je 0x34d2b3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003193dc
xor eax, eax
push ebp
push 0x34d29e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 8]
call fcn.0031980c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0031b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0031b3e4
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
cdq
cmp edx, dword [esp + 4]
jne 0x34d1f6
cmp eax, dword [esp]
pop edx
pop eax
jae 0x34d294
jmp 0x34d1fe
pop edx
pop eax
jge 0x34d294
call fcn.0031b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 8]
call fcn.00319608
mov eax, dword [ebp - 4]
add eax, 0x20
push eax
call fcn.003163b8
xor eax, eax
push ebp
push 0x34d27e
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0031b45c
mov eax, dword [ebp - 4]
fstp qword [eax + 0x70]
wait
mov ecx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
mov edx, dword [eax]
call dword [edx + 8]
cmp eax, 0x64
jle 0x34d274
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x3c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x34d288
mov eax, dword [ebp - 4]
add eax, 0x20
push eax
call fcn.00316488
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x34d2a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003193e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x34d2d0
lea eax, [ebp - 8]
call fcn.00314394
ret
Function at 0x34d2dc
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov ebx, ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00314830
xor eax, eax
push ebp
push 0x34d435
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x8c], 0
je 0x34d41f
test ebx, ebx
je 0x34d41f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003193dc
xor eax, eax
push ebp
push 0x34d40a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 8]
call fcn.0031980c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0031b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0031b3c4
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
jle 0x34d400
call fcn.0031b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 8]
call fcn.00319608
mov eax, dword [ebp - 4]
add eax, 0x38
push eax
call fcn.003163b8
xor eax, eax
push ebp
push 0x34d3ea
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0031b45c
mov eax, dword [ebp - 4]
fstp qword [eax + 0x70]
wait
mov ecx, ebx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
mov edx, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x30]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
mov edx, dword [eax]
call dword [edx + 8]
cmp eax, 0x64
jle 0x34d3e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xbc]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x3c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x34d3f4
mov eax, dword [ebp - 4]
add eax, 0x38
push eax
call fcn.00316488
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x34d414
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003193e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x34d43c
lea eax, [ebp - 8]
call fcn.00314394
ret

Function at 0x3c3520
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
mov dword [ebp - 4], eax
mov byte [ebp - 5], 0
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x5a4d
jne 0x3c357e
mov eax, dword [ebp - 0x10]
cmp dword [eax], 0x4550
jne 0x3c357e
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x14]
cmp eax, 0xe0
jne 0x3c357e
mov eax, dword [ebp - 0x10]
test byte [eax + 0x17], 0x20
je 0x3c357e
mov eax, dword [ebp - 0x10]
mov ax, word [eax + 0x16]
and ax, 2
cmp ax, 2
sete byte [ebp - 5]
mov al, byte [ebp - 5]
mov esp, ebp
pop ebp
ret
Function at 0x3c3588
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
mov dword [ebp - 0x2c], edx
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
call fcn.003c3520
test al, al
je 0x3c3671
mov eax, dword [ebp - 4]
call fcn.003c34b8
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x3c3671
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
add eax, 0x18
mov edx, dword [ebp - 0x20]
movzx edx, word [edx + 0x14]
add eax, edx
mov dword [ebp - 0x24], eax
push 0x40
push 0x3000
mov eax, dword [ebp - 0xc]
push eax
push 0
call fcn.003c3ba4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x3c3671
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0x14]
push eax
call fcn.003c3974
mov eax, dword [ebp - 0x20]
movzx eax, word [eax + 6]
dec eax
test eax, eax
jb 0x3c366b
inc eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*8 + 0xc]
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*8 + 0x14]
add eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x10]
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x24]
mov eax, dword [edx + eax*8 + 0x10]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
call fcn.003c3974
inc dword [ebp - 0x10]
dec dword [ebp - 0x28]
jne 0x3c3622
mov eax, dword [ebp - 0x14]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret

Function at 0x3c3a2c
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
ret
Function at 0x3c3a44
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
call fcn.003c3a2c
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x3c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + 0x78]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x20]
add eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x14]
shl edx, 2
add eax, edx
mov eax, dword [eax]
add eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
call fcn.003c398c
test eax, eax
jne 0x3c3ace
mov eax, dword [ebp - 0x14]
add eax, eax
mov edx, dword [ebp - 0x20]
add eax, dword [edx + 0x24]
add eax, dword [ebp - 0x10]
mov ax, word [eax]
and ax, 0xffff
movzx eax, ax
shl eax, 2
mov edx, dword [ebp - 0x20]
add eax, dword [edx + 0x1c]
add eax, dword [ebp - 0x10]
mov eax, dword [eax]
add eax, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
inc dword [ebp - 0x14]
cmp dword [ebp - 0xc], 0
jne 0x3c3ae2
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0x18]
cmp eax, dword [ebp - 0x14]
jne 0x3c3a7a
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 4

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

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
nop
nop
pop eax
nop
nop
nop
add eax, 0x403d6f
sub eax, 0x403d15
nop
nop
nop
nop
nop
mov ebx, dword [eax]
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
nop
xor dword [ebx], edx
nop
nop
nop
add ebx, 4
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
nop
jl 0x430030
nop
nop
nop
nop
add eax, 0xc
cmp dword [eax], 0
nop
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
popal
nop
nop
nop
nop
jmp loc.00401219