joyce8/EMBER2024-capa huggingface dataset:
Function at 0x43489f
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [0x451020]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0x18], eax
call fcn.004289f0
add eax, 0x50
lea edi, [ebp - 0x10]
mov dword [ebp - 0x14], eax
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call fcn.004289f0
lea ecx, [ebp - 0x10]
xor edx, edx
mov dword [eax + 0x34c], ecx
lea ecx, [esi + 0x80]
mov eax, dword [ebp - 0x14]
mov dword [eax], esi
lea edi, [eax + 4]
mov dword [edi], ecx
test ecx, ecx
je 0x434916
cmp word [ecx], dx
je 0x434916
mov eax, dword [0x442454]
push edi
dec eax
push eax
push 0x442340
call fcn.0043483e
mov eax, dword [ebp - 0x14]
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x10], edx
mov eax, dword [eax]
test eax, eax
je 0x434989
cmp word [eax], dx
je 0x434989
mov eax, dword [edi]
test eax, eax
je 0x43493a
cmp word [eax], dx
je 0x43493a
lea eax, [ebp - 0x10]
push eax
call fcn.00434221
jmp 0x434943
lea eax, [ebp - 0x10]
push eax
call fcn.004342bc
cmp dword [ebp - 0x10], 0
pop ecx
jne 0x4349b3
mov eax, dword [0x44233c]
push dword [ebp - 0x14]
dec eax
push eax
push 0x442030
call fcn.0043483e
add esp, 0xc
test al, al
je 0x4349b3
mov eax, dword [edi]
xor edi, edi
test eax, eax
je 0x43497e
cmp word [eax], di
je 0x43497e
lea eax, [ebp - 0x10]
push eax
call fcn.00434221
pop ecx
jmp 0x4349b5
lea eax, [ebp - 0x10]
push eax
call fcn.004342bc
jmp 0x43497b
mov eax, dword [edi]
test eax, eax
je 0x4349a0
cmp word [eax], dx
je 0x4349a0
lea eax, [ebp - 0x10]
push eax
call fcn.004341d6
pop ecx
jmp 0x4349b3
mov dword [ebp - 0x10], 0x104
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
xor edi, edi
cmp dword [ebp - 0x10], 0
je 0x434a7e
lea eax, [ebp - 0x10]
push eax
lea eax, [esi + 0x100]
neg esi
sbb esi, esi
and esi, eax
push esi
call fcn.004346c3
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x434a7e
movzx ecx, si
push ecx
call dword [sym.imp.KERNEL32.dll_IsValidCodePage]
test eax, eax
je 0x434a7e
push 1
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
je 0x434a7e
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x434a0b
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
push edi
push 0x55
add eax, 0x250
push eax
push dword [ebp - 0xc]
call fcn.004293e9
test ebx, ebx
je 0x434a79
push edi
push 0x55
lea eax, [ebx + 0x120]
push eax
push dword [ebp - 0xc]
call fcn.004293e9
push 0x40
push ebx
push 0x1001
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x434a7e
push 0x40
lea eax, [ebx + 0x80]
push eax
push 0x1002
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x434a7e
push 0xa
push 0x10
lea ecx, [ebx + 0x100]
push ecx
push esi
call fcn.004384d6
add esp, 0x10
xor eax, eax
inc eax
jmp 0x434a80
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041660f
leave
ret
Function at 0x439270
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
mov ecx, 0x5a4d
cmp word [eax], cx
jne 0x43929d
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x43929d
mov edx, 0x10b
xor eax, eax
cmp word [ecx + 0x18], dx
sete al
pop ebp
ret
xor eax, eax
pop ebp
ret
Function at 0x302e04
Capabilities:
Generate random numbers using the delphi lcg

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

Function at 0x30c1dc
Capabilities:
Hash data with crc32

Disassembly:
push ebx
xor ebx, ebx
mov ecx, 0x3a87b4
mov eax, ebx
mov edx, 8
test al, 1
je 0x30c1f8
shr eax, 1
xor eax, 0xedb88320
jmp 0x30c1fa
shr eax, 1
dec edx
jne 0x30c1eb
mov dword [ecx], eax
inc ebx
add ecx, 4
cmp ebx, 0x100
jne 0x30c1e4
pop ebx
ret

Function at 0x30d3e0
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 0x30d3fd
xor eax, eax
jmp 0x30d485
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 0x30d442
mov eax, dword [esp + 0xc]
push eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov eax, edi
call fcn.0030cfa4
test al, al
jne 0x30d47c
xor eax, eax
jmp 0x30d485
mov edx, ebx
mov eax, edi
call fcn.0030cf54
add esp, 0x10
pop edi
pop esi
pop ebx
ret
Function at 0x312e90
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 0x312eba
cmp dword [ebx + 0x64], 0
jne 0x312eba
cmp dword [ebx + 0x6c], 0
jne 0x312eba
mov esi, edi
jmp 0x312f52
cmp esi, 0xffffffff
jne 0x312ec5
dec esi
jmp 0x312f52
mov eax, dword [ebx + 0x64]
lea edx, [edi + edi]
sub edx, 0x106
cmp eax, edx
jb 0x312f52
mov eax, dword [ebx + 0x30]
lea edx, [eax + edi]
mov ebp, edi
mov ecx, ebp
call fcn.0030e71c
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 0x312f12
sub dx, di
mov ecx, dword [esp]
mov word [ecx], dx
jmp 0x312f1a
mov edx, dword [esp]
mov word [edx], 0
dec eax
test eax, eax
jne 0x312ef9
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 0x312f43
sub dx, di
mov ecx, dword [esp]
mov word [ecx], dx
jmp 0x312f4b
mov edx, dword [esp]
mov word [edx], 0
dec eax
test eax, eax
jne 0x312f2a
add esi, edi
mov eax, dword [ebx]
cmp dword [eax + 4], 0
je 0x312fb0
mov edx, dword [ebx + 0x64]
add edx, dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x30]
lea edx, [ecx + edx]
mov ecx, esi
call fcn.00312bc0
add dword [ebx + 0x6c], eax
cmp dword [ebx + 0x6c], 3
jb 0x312f9b
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 0x312fb0
mov eax, dword [ebx]
cmp dword [eax + 4], 0
jne 0x312e9a
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x3138b8
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 0x313973
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 0x313973
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 0x313932
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 0x313917
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 0x31396a
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 0x31394d
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x3138fe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x31397c
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 0x313a30
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 0x313a30
mov dword [ebp - 8], eax
mov esi, edx
sub esi, 2
test esi, esi
jl 0x3139e7
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 0x3139ce
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 0x313a1a
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 0x313a00
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 0x3139c2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x31de70
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 0x31e093
push dword fs:[eax]
mov dword fs:[eax], esp
test esi, esi
je 0x31de9d
cmp dword [ebp - 4], 0
jg 0x31dea4
mov bl, 3
jmp 0x31e07d
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
test edx, edx
jne 0x31dec2
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov ebx, eax
jmp 0x31ded0
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.00304970
dec ebx
test ebx, ebx
jl 0x31e067
inc ebx
mov dword [ebp - 0xc], ebx
xor ebx, ebx
lea eax, [ebx + ebx*2]
add eax, 3
cmp eax, dword [ebp - 4]
jg 0x31df7a
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x345098]
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 + 0x345098]
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 + 0x345098]
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 + 0x345098]
mov byte [ebp - 8], al
jmp 0x31e012
lea eax, [ebx + ebx*2]
add eax, 2
cmp eax, dword [ebp - 4]
jg 0x31dfde
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x345098]
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 + 0x345098]
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 + 0x345098]
mov byte [ebp - 7], al
mov byte [ebp - 8], 0x3d
jmp 0x31e012
lea eax, [ebx + ebx*2]
movzx eax, byte [esi + eax]
shr eax, 2
mov al, byte [eax + 0x345098]
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 + 0x345098]
mov byte [ebp - 6], al
mov byte [ebp - 7], 0x3d
mov byte [ebp - 8], 0x3d
mov eax, edi
call fcn.00304898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 5]
mov byte [eax + edx], cl
mov eax, edi
call fcn.00304898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 6]
mov byte [eax + edx + 1], cl
mov eax, edi
call fcn.00304898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 7]
mov byte [eax + edx + 2], cl
mov eax, edi
call fcn.00304898
mov edx, ebx
shl edx, 2
mov cl, byte [ebp - 8]
mov byte [eax + edx + 3], cl
inc ebx
dec dword [ebp - 0xc]
jne 0x31deeb
lea edx, [ebp - 0x10]
mov eax, dword [edi]
call fcn.00307808
mov edx, dword [ebp - 0x10]
mov eax, edi
call fcn.003043e8
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x31e09a
lea eax, [ebp - 0x10]
call fcn.00304394
ret
Function at 0x31e4a0
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 0x31e5d0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, esi
mov edx, ebx
call fcn.003043e8
mov eax, dword [esi]
call fcn.00304640
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x31e5ba
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 0x31e5a6
mov dword [ebp - 8], eax
mov eax, esi
call fcn.00304898
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 0x31e552
inc edi
mov ebx, 2
mov eax, esi
call fcn.00304898
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 0x31e530
mov eax, esi
call fcn.00304898
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 0x31e599
mov eax, esi
call fcn.00304898
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 0x31e577
dec dword [ebp - 8]
cmp dword [ebp - 8], 0xffffffff
jne 0x31e510
lea edx, [ebp - 0x14]
mov eax, dword [esi]
call fcn.0031e38c
mov edx, dword [ebp - 0x14]
mov eax, esi
call fcn.003043e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x31e5d7
lea eax, [ebp - 0x14]
call fcn.00304394
ret
Function at 0x31e5e0
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.0031e394
mov eax, dword [esi]
call fcn.00304640
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x31e6cc
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 0x31e6cc
mov dword [ebp - 8], eax
mov edi, dword [ebp - 0xc]
dec edi
test edi, edi
jle 0x31e667
mov ebx, 1
mov eax, esi
call fcn.00304898
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 0x31e648
mov eax, esi
call fcn.00304898
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 0x31e6ad
mov eax, esi
call fcn.00304898
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 0x31e68b
mov eax, esi
call fcn.00304898
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 0x31e63b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x3250f4
Capabilities:
Hash data with md5

Disassembly:
push ebx
mov ebx, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x58
call fcn.00302de4
mov dword [ebx], 0x67452301
mov dword [ebx + 4], 0xefcdab89
mov dword [ebx + 8], 0x98badcfe
mov dword [ebx + 0xc], 0x10325476
pop ebx
ret
Function at 0x325be0
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 0x325c39
lea eax, [ebp - 0x114]
call fcn.003250f4
mov eax, dword [ebp - 4]
lea edx, [eax + 1]
lea eax, [ebp - 0x114]
mov ecx, dword [ebp - 8]
call fcn.00325928
lea edx, [ebp - 0x114]
lea eax, [ebp - 0x144]
call fcn.00325b28
lea eax, [ebp - 0x144]
mov dword [ebp - 4], eax
mov dword [ebp - 8], 0x10
lea eax, [ebp - 0x64]
call fcn.003250f4
mov edx, dword [ebp - 8]
dec edx
test edx, edx
jl 0x325c62
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 0x325c52
mov eax, dword [ebp - 8]
cmp eax, 0x3f
jg 0x325c7b
lea edx, [ebp + eax - 0x184]
mov byte [edx], 0x36
inc eax
inc edx
cmp eax, 0x40
jne 0x325c71
lea edx, [ebp - 0x184]
lea eax, [ebp - 0x64]
mov ecx, 0x40
call fcn.003259f4
lea eax, [ebp - 0x64]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0xc]
call fcn.003259f4
lea edx, [ebp - 0x64]
lea eax, [ebp - 0x124]
call fcn.00325b28
lea eax, [ebp - 0xbc]
call fcn.003250f4
mov edx, dword [ebp - 8]
dec edx
test edx, edx
jl 0x325cd6
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 0x325cc6
mov eax, dword [ebp - 8]
cmp eax, 0x3f
jg 0x325cef
lea edx, [ebp + eax - 0x184]
mov byte [edx], 0x5c
inc eax
inc edx
cmp eax, 0x40
jne 0x325ce5
lea edx, [ebp - 0x184]
lea eax, [ebp - 0xbc]
mov ecx, 0x40
call fcn.00325928
lea edx, [ebp - 0x124]
lea eax, [ebp - 0xbc]
mov ecx, 0x10
call fcn.00325928
lea edx, [ebp - 0xbc]
lea eax, [ebp - 0x134]
call fcn.00325b28
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x134]
mov edx, 0x10
call fcn.00307990
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x33d158
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.00304830
xor eax, eax
push ebp
push 0x33d2c9
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 0x33d2b3
test ebx, ebx
je 0x33d2b3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003093dc
xor eax, eax
push ebp
push 0x33d29e
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.0030980c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0030b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0030b3e4
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
cdq
cmp edx, dword [esp + 4]
jne 0x33d1f6
cmp eax, dword [esp]
pop edx
pop eax
jae 0x33d294
jmp 0x33d1fe
pop edx
pop eax
jge 0x33d294
call fcn.0030b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 8]
call fcn.00309608
mov eax, dword [ebp - 4]
add eax, 0x20
push eax
call fcn.003063b8
xor eax, eax
push ebp
push 0x33d27e
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0030b45c
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 0x33d274
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 0x33d288
mov eax, dword [ebp - 4]
add eax, 0x20
push eax
call fcn.00306488
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x33d2a8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003093e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x33d2d0
lea eax, [ebp - 8]
call fcn.00304394
ret
Function at 0x33d2dc
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.00304830
xor eax, eax
push ebp
push 0x33d435
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 0x33d41f
test ebx, ebx
je 0x33d41f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003093dc
xor eax, eax
push ebp
push 0x33d40a
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.0030980c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0030b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.0030b3c4
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x60]
jle 0x33d400
call fcn.0030b45c
add esp, 0xfffffff8
fstp qword [esp]
wait
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
mov edx, dword [ebp - 8]
call fcn.00309608
mov eax, dword [ebp - 4]
add eax, 0x38
push eax
call fcn.003063b8
xor eax, eax
push ebp
push 0x33d3ea
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.0030b45c
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 0x33d3e0
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 0x33d3f4
mov eax, dword [ebp - 4]
add eax, 0x38
push eax
call fcn.00306488
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x33d414
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x64]
call fcn.003093e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x33d43c
lea eax, [ebp - 8]
call fcn.00304394
ret

Function at 0x3b3520
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 0x3b357e
mov eax, dword [ebp - 0x10]
cmp dword [eax], 0x4550
jne 0x3b357e
mov eax, dword [ebp - 0x10]
movzx eax, word [eax + 0x14]
cmp eax, 0xe0
jne 0x3b357e
mov eax, dword [ebp - 0x10]
test byte [eax + 0x17], 0x20
je 0x3b357e
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