joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10029e10
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov eax, dword [0x100ab000]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100ab72c]
lea edx, [ebp - 8]
push ebx
push esi
push edi
mov edi, dword [eax + 0x1a6c]
mov esi, 4
mov eax, dword [ebp + 8]
add edi, 0xc4
mov dword [ebp - 8], eax
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov ebx, dword [ebx + eax*4 - 4]
not ebx
nop dword [eax]
movzx eax, byte [edx]
lea edx, [edx + 1]
movzx ecx, bl
xor ecx, eax
shr ebx, 8
xor ebx, dword [ecx*4 + 0x100a21b0]
sub esi, 1
jne 0x10029e50
mov esi, dword [edi + 4]
not ebx
mov ecx, dword [edi]
cmp ecx, esi
jne 0x10029e97
inc ecx
test esi, esi
je 0x10029e85
mov eax, esi
cdq
sub eax, edx
sar eax, 1
add eax, esi
jmp 0x10029e8a
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
push ecx
mov ecx, edi
call fcn.1002f760
mov ecx, dword [edi]
mov eax, dword [edi + 8]
mov dword [eax + ecx*4], ebx
inc dword [edi]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1005c7f7
mov esp, ebp
pop ebp
ret

Function at 0x1002c530
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x100ab72c]
push esi
mov esi, dword [ebp + 8]
mov dword [eax + 0x2ebc], 0
test esi, esi
je 0x1002c589
lea eax, [ebp + 8]
mov dword [ebp + 8], 0
push edi
push eax
call fcn.1002c590
push 0x100a27a8
push esi
mov edi, eax
call fcn.100239e0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x1002c588
push esi
push dword [ebp + 8]
push 1
push edi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 0x14
pop edi
pop esi
pop ebp
ret
Function at 0x1002e1b0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push edi
mov edi, dword [0x100ab72c]
cmp byte [edi + 0x2eb9], 0
lea eax, [edi + 0x20]
jne 0x1002e2d5
mov ecx, dword [eax]
push ebx
test ecx, ecx
je 0x1002e2cd
push esi
push 0x100a27a4
push ecx
call fcn.100239e0
mov esi, eax
add esp, 8
test esi, esi
je 0x1002e2c9
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
push esi
call ebx
add esp, 4
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
je 0x1002e2bf
push 2
push 0
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x1002e2bf
push esi
call ebx
mov ebx, eax
add esp, 4
mov dword [ebp - 4], ebx
cmp ebx, 0xffffffff
je 0x1002e2bf
push 0
push dword [ebp - 8]
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
add esp, 0xc
test eax, eax
jne 0x1002e2bf
mov eax, dword [0x100ab72c]
test eax, eax
je 0x1002e255
inc dword [eax + 0x370]
push dword [0x100ab734]
push ebx
call dword [0x100aa3a0]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1002e2bf
push esi
push dword [ebp - 4]
push 1
push ebx
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add esp, 0x10
push esi
cmp eax, dword [ebp - 4]
je 0x1002e2ab
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov eax, dword [0x100ab72c]
test eax, eax
je 0x1002e299
dec dword [eax + 0x370]
push dword [0x100ab734]
push ebx
call dword [0x100aa3a4]
add esp, 8
jmp 0x1002e2c9
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
push dword [ebp - 4]
push ebx
call fcn.10025490
add esp, 0xc
jmp 0x1002e28a
push esi
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
lea eax, [edi + 0x20]
pop esi
mov byte [edi + 0x2eb9], 1
pop ebx
movss xmm0, dword [edi + 0x2ebc]
xorps xmm1, xmm1
comiss xmm0, xmm1
jbe 0x1002e326
subss xmm0, dword [edi + 0x18]
comiss xmm1, xmm0
movss dword [edi + 0x2ebc], xmm0
jb 0x1002e326
mov eax, dword [eax]
test eax, eax
je 0x1002e315
push eax
call fcn.1002c530
add esp, 4
mov dword [edi + 0x2ebc], 0
pop edi
mov esp, ebp
pop ebp
ret
mov byte [edi + 0x358], 1
mov dword [edi + 0x2ebc], 0
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x10037640
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 8]
test eax, eax
je 0x10037667
push eax
mov dword [esi + 4], 0
mov dword [esi], 0
call fcn.10025980
add esp, 4
mov dword [esi + 8], 0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x1003768c
push eax
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
call fcn.10025980
add esp, 4
mov dword [esi + 0x14], 0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x100376b1
push eax
mov dword [esi + 0x1c], 0
mov dword [esi + 0x18], 0
call fcn.10025980
add esp, 4
mov dword [esi + 0x20], 0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x44]
test eax, eax
je 0x100376f2
push eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x3c], 0
call fcn.10025980
add esp, 4
mov dword [esi + 0x44], 0
mov eax, dword [esi + 0x50]
test eax, eax
je 0x10037717
push eax
mov dword [esi + 0x4c], 0
mov dword [esi + 0x48], 0
call fcn.10025980
add esp, 4
mov dword [esi + 0x50], 0
mov eax, dword [esi + 0x5c]
test eax, eax
je 0x1003773c
push eax
mov dword [esi + 0x58], 0
mov dword [esi + 0x54], 0
call fcn.10025980
add esp, 4
mov dword [esi + 0x5c], 0
lea ecx, [esi + 0x78]
pop esi
jmp fcn.100329b0
Function at 0x10040340
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [0x100ab000]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
call fcn.10023150
mov edi, eax
xorps xmm0, xmm0
lea eax, [ebp - 0x2c]
push eax
push dword [0x100ab790]
movups xmmword [ebp - 0x2c], xmm0
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x2c]
movd xmm0, eax
lea eax, [ebp - 0x14]
cvtdq2ps xmm0, xmm0
push eax
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
movss dword [edi + 0xc], xmm0
xorps xmm0, xmm0
movss dword [edi + 8], xmm1
movlpd qword [ebp - 0x14], xmm0
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 0x14]
sub ecx, dword [0x100ab798]
mov edx, dword [ebp - 0x10]
sbb edx, dword [0x100ab79c]
call fcn.1005d410
mov edx, dword [0x100ab7a4]
mov ecx, dword [0x100ab7a0]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 8], xmm0
call fcn.1005d410
movss xmm1, dword [ebp - 8]
cvtsd2ss xmm0, xmm0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
divss xmm1, xmm0
movss dword [edi + 0x10], xmm1
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov dword [0x100ab798], eax
mov dword [0x100ab79c], ecx
call esi
shr eax, 0xf
and al, 1
push 0x10
mov byte [edi + 0xf4], al
call esi
shr eax, 0xf
and al, 1
push 0x12
mov byte [edi + 0xf5], al
call esi
shr eax, 0xf
and al, 1
mov byte [edi + 0xf7], 0
mov byte [edi + 0xf6], al
call fcn.10023150
mov esi, eax
cmp byte [esi + 0x34f], 0
je 0x1004047a
cvttss2si ecx, dword [esi + 0xdc]
lea eax, [ebp - 0xc]
push eax
push dword [0x100ab790]
mov dword [ebp - 0xc], ecx
cvttss2si ecx, dword [esi + 0xe0]
mov dword [ebp - 8], ecx
call dword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x1004047a
push dword [ebp - 8]
push dword [ebp - 0xc]
call dword [sym.imp.USER32.dll_SetCursorPos]
mov dword [esi + 0xdc], 0xff7fffff
mov dword [esi + 0xe0], 0xff7fffff
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x100404f0
mov ecx, dword [0x100ab790]
cmp eax, ecx
je 0x100404ae
push ecx
push eax
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x100404f0
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x100404f0
lea eax, [ebp - 0x1c]
push eax
push dword [0x100ab790]
call dword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x100404f0
movd xmm0, dword [ebp - 0x1c]
movd xmm1, dword [ebp - 0x18]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [esi + 0xdc], xmm0
movss dword [esi + 0xe0], xmm1
cmp byte [edi + 0xa8], 0
pop edi
pop esi
je 0x10040500
or eax, 0xffffffff
jmp 0x10040505
call fcn.10023230
cmp dword [0x100aa560], eax
je 0x10040517
mov dword [0x100aa560], eax
call fcn.100407d0
call fcn.10040530
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005c7f7
mov esp, ebp
pop ebp
ret
Function at 0x1005bbd0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005eabd
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x100ab000]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0xc]
xorps xmm0, xmm0
mov eax, dword [ebp + 8]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], 0
push ecx
push 0
push 0
push Ordinal_2
push 0
push dword [ebp + 0x10]
push eax
call fcn.1005c110
mov eax, dword [ebp - 0x18]
add esp, 0x1c
mov ebx, dword [ebp - 0x1c]
sub eax, ebx
sar eax, 2
mov dword [ebp - 0x28], eax
test eax, eax
je 0x1005bcb0
xor edi, edi
test eax, eax
je 0x1005bcb0
cmp edi, dword [ebp + 0x18]
jge 0x1005bcb0
mov esi, dword [ebx + edi*4]
lea eax, [ebp - 0x20]
push eax
push 0x40
push dword [ebp + 0x14]
push esi
push dword [0x100ab2f0]
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
push 0
push dword [ebp + 0x14]
push dword [ebp - 0x24]
push esi
push dword [0x100ab2f0]
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
push 0
push dword [ebp - 0x20]
push dword [ebp + 0x14]
push esi
push dword [0x100ab2f0]
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
inc edi
cmp edi, dword [ebp - 0x28]
jb 0x1005bc62
test ebx, ebx
je 0x1005bce6
mov ecx, dword [ebp - 0x14]
mov eax, ebx
sub ecx, ebx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1005bcdc
mov ebx, dword [eax - 4]
add ecx, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1005bcdc
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push ebx
call fcn.1005ca04
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1005c7f7
mov esp, ebp
pop ebp
ret

Function at 0x1005bff0
Capabilities:
Enumerate processes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
mov eax, dword [0x100ab000]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x130], eax
push esi
push 2
xor ebx, ebx
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
cmp edi, 0xffffffff
jne 0x1005c035
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1005c7f7
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x12c]
mov dword [ebp - 0x12c], 0x128
push eax
push edi
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x1005c08d
push dword [ebp - 0x130]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__stricmp]
add esp, 8
test eax, eax
jne 0x1005c07c
mov eax, dword [ebp - 0x118]
cmp eax, esi
jbe 0x1005c07c
mov ebx, dword [ebp - 0x124]
mov esi, eax
lea eax, [ebp - 0x12c]
push eax
push edi
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x1005c050
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1005c7f7
mov esp, ebp
pop ebp
ret
Function at 0x529e88
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov byte [ebp - 1], 0
lea edi, [esi + 0x18]
mov eax, dword [edi]
shl eax, 0x10
xor eax, dword [esi]
xor dword [ebx], eax
mov edx, dword [esi + 4]
xor dword [ebx + 4], edx
mov ecx, dword [edi]
xor ecx, dword [esi + 8]
xor dword [ebx + 8], ecx
push ebx
call fcn.00529e38
pop ecx
inc byte [ebp - 1]
add edi, 4
cmp byte [ebp - 1], 0xb
jl 0x529e9c
mov eax, dword [esi + 0x44]
shl eax, 0x10
xor eax, dword [esi]
xor dword [ebx], eax
mov edx, dword [esi + 4]
xor dword [ebx + 4], edx
mov ecx, dword [esi + 8]
xor ecx, dword [esi + 0x44]
xor dword [ebx + 8], ecx
push ebx
call fcn.00529cb0
pop ecx
xor dword [ebx + 4], 0x7483a3fd
mov eax, dword [ebx + 4]
xor dword [ebx], eax
mov edx, dword [ebx]
xor dword [ebx + 8], edx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x529f00
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov eax, dword [ebx]
xor dword [ebx + 8], eax
mov edx, dword [ebx + 4]
xor dword [ebx], edx
xor dword [ebx + 4], 0x7483a3fd
push ebx
call fcn.00529c04
pop ecx
lea edi, [esi + 0x48]
mov byte [ebp - 1], 0
mov eax, dword [edi]
shl eax, 0x10
xor eax, dword [esi + 0xc]
xor dword [ebx], eax
mov edx, dword [esi + 0x10]
xor dword [ebx + 4], edx
mov ecx, dword [edi]
xor ecx, dword [esi + 0x14]
xor dword [ebx + 8], ecx
push ebx
call fcn.00529e38
pop ecx
inc byte [ebp - 1]
add edi, 4
cmp byte [ebp - 1], 0xb
jl 0x529f2c
mov eax, dword [esi + 0x74]
shl eax, 0x10
xor eax, dword [esi + 0xc]
xor dword [ebx], eax
mov edx, dword [esi + 0x10]
xor dword [ebx + 4], edx
mov ecx, dword [esi + 0x14]
xor ecx, dword [esi + 0x74]
xor dword [ebx + 8], ecx
push ebx
call fcn.00529cb0
pop ecx
push ebx
call fcn.00529c04
pop ecx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x52a5e4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov word [ebp - 2], 0
mov eax, dword [ebp + 8]
lea edi, [eax + 0x1000]
xor ebx, dword [edi]
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.0052a580
add esp, 8
xor esi, eax
xor esi, 0x3fbe82a9
mov eax, ebx
mov ebx, esi
mov esi, eax
inc word [ebp - 2]
add edi, 4
cmp word [ebp - 2], 0x10
jl 0x52a604
mov eax, ebx
mov ebx, esi
mov esi, eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
xor esi, dword [eax + 0x1040]
xor ebx, dword [edx + 0x1044]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
Function at 0x52a658
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov word [ebp - 2], 0x11
mov eax, dword [ebp + 8]
lea edi, [eax + 0x1044]
xor ebx, dword [edi]
push ebx
mov eax, dword [ebp + 8]
push eax
call fcn.0052a580
add esp, 8
xor esi, eax
xor esi, 0x3fbe82a9
mov eax, ebx
mov ebx, esi
mov esi, eax
dec word [ebp - 2]
add edi, 0xfffffffc
cmp word [ebp - 2], 1
jg 0x52a678
mov eax, ebx
mov ebx, esi
mov esi, eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
xor esi, dword [eax + 0x1004]
xor ebx, dword [edx + 0x1000]
mov dword [ecx], ebx
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x52a6cc
Capabilities:
Encrypt data using blowfish

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov ecx, 0x5575ac
mov edx, 0x5571ac
push ebx
push esi
push edi
mov dword [ebp - 0x10], 0x557dac
mov dword [ebp - 0xc], 0x5579ac
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [edx]
add edx, 4
mov dword [eax], ebx
inc edi
mov ebx, dword [ecx]
add ecx, 4
mov dword [eax + 0x400], ebx
mov ebx, dword [ebp - 0xc]
mov ebx, dword [ebx]
mov dword [eax + 0x800], ebx
mov ebx, dword [ebp - 0x10]
mov ebx, dword [ebx]
mov dword [eax + 0xc00], ebx
add eax, 4
add dword [ebp - 0x10], 4
add dword [ebp - 0xc], 4
cmp di, 0x100
jl 0x52a6f2
mov eax, dword [ebp + 8]
xor ebx, ebx
xor edi, edi
lea edx, [eax + 0x1000]
mov dword [ebp - 0x14], edx
xor eax, eax
xor edx, edx
movsx ecx, bx
mov esi, dword [ebp + 0xc]
inc ebx
shl eax, 8
movsx ecx, byte [esi + ecx]
or ecx, eax
cmp bx, word [ebp + 0x10]
mov eax, ecx
jl 0x52a75b
xor ebx, ebx
inc edx
cmp dx, 4
jl 0x52a741
mov edx, dword [ebp - 0x14]
xor dword [edx], eax
inc edi
add dword [ebp - 0x14], 4
cmp di, 0x12
jl 0x52a73d
xor eax, eax
xor ecx, ecx
mov dword [ebp - 4], eax
mov dword [ebp - 8], ecx
mov eax, dword [ebp + 8]
xor edi, edi
lea ebx, [eax + 0x1000]
lea eax, [ebp - 8]
lea edx, [ebp - 4]
push eax
push edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0052a5e4
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [ebx], eax
add di, 2
mov edx, dword [ebp - 8]
mov dword [ebx + 4], edx
add ebx, 8
cmp di, 0x12
jl 0x52a787
xor edi, edi
mov eax, dword [ebp + 8]
mov edx, eax
mov dword [ebp - 0x18], edx
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov esi, eax
lea eax, [ebp - 8]
lea edx, [ebp - 4]
push eax
push edx
mov ecx, dword [ebp + 8]
push ecx
call fcn.0052a5e4
mov eax, dword [ebp - 4]
add esp, 0xc
mov dword [esi], eax
add bx, 2
mov edx, dword [ebp - 8]
mov dword [esi + 4], edx
add esi, 8
cmp bx, 0x100
jl 0x52a7c4
inc edi
add dword [ebp - 0x18], 0x400
cmp di, 4
jl 0x52a7bd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x52b294
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
xor ecx, ecx
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ebx, edx
movzx esi, byte [eax]
movzx edi, byte [eax + 1]
shl esi, 8
add eax, 2
add si, di
inc ecx
mov word [ebx], si
add ebx, 2
cmp ecx, 8
jl 0x52b2a4
xor eax, eax
cmp ecx, 0x34
jge 0x52b302
inc eax
inc ecx
mov ebx, eax
and ebx, 7
lea esi, [eax + 1]
and esi, 7
mov bx, word [edx + ebx*2]
movzx esi, word [edx + esi*2]
sar esi, 7
shl ebx, 9
or bx, si
mov word [edx + eax*2 + 0xe], bx
xor word [edx + eax*2 + 0xe], 0x28fc
mov ebx, eax
and eax, 7
and ebx, 8
add ebx, ebx
add edx, ebx
cmp ecx, 0x34
jl 0x52b2c7
pop edi
pop esi
pop ebx
pop ebp
ret

Function at 0x52b834
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 4]
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp + 8]
mov ebx, edx
mov eax, dword [ebx]
push eax
push edi
call fcn.0052b8e8
add esp, 8
xor esi, eax
mov edx, dword [ebx + 4]
push edx
push esi
call fcn.0052b8e8
add esp, 8
xor edi, eax
add dword [ebp - 4], 2
add ebx, 8
cmp dword [ebp - 4], 0x10
jl 0x52b850
mov ecx, dword [ebp + 0xc]
mov dword [ecx], edi
mov eax, dword [ebp + 0xc]
mov dword [eax + 4], esi
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret

Function at 0x52b88c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov eax, dword [ebp + 0xc]
mov esi, dword [eax]
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 4]
mov dword [ebp - 4], 0x10
mov eax, dword [ebp + 8]
lea ebx, [eax + 0x3c]
mov eax, dword [ebx]
push eax
push edi
call fcn.0052b8e8
add esp, 8
xor esi, eax
mov edx, dword [ebx - 4]
push edx
push esi
call fcn.0052b8e8
add esp, 8
xor edi, eax
sub dword [ebp - 4], 2
add ebx, 0xfffffff8
cmp dword [ebp - 4], 0
jg 0x52b8ab
mov ecx, dword [ebp + 0xc]
mov dword [ecx], edi
mov eax, dword [ebp + 0xc]
mov dword [eax + 4], esi
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret
Function at 0x52bc38
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
mov edx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [edx]
xor edx, edx
add ecx, 8
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp + 0x10]
jge 0x52bd02
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 4]
add ecx, ecx
add ecx, 0xfffffffe
mov dword [ebp - 0xc], ecx
cmp dword [ebp - 0xc], 0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
lea ebx, [edx + ecx*4 + 4]
jl 0x52bcdc
mov edx, dword [ebx]
sub dword [eax + 4], edx
mov edx, dword [eax]
mov esi, dword [eax + 4]
and edx, 0x1f
mov ecx, edx
shr esi, cl
mov ecx, 0x20
sub ecx, edx
mov edx, dword [eax + 4]
shl edx, cl
or esi, edx
mov dword [eax + 4], esi
mov edx, dword [eax]
xor dword [eax + 4], edx
mov ecx, dword [ebx - 4]
add ebx, 0xfffffff8
sub dword [eax], ecx
mov edx, dword [eax + 4]
xor dword [eax], 0x63a72efb
and edx, 0x1f
mov esi, dword [eax]
mov ecx, edx
shr esi, cl
mov ecx, 0x20
sub ecx, edx
mov edx, dword [eax]
shl edx, cl
or esi, edx
mov dword [eax], esi
mov edx, dword [eax + 4]
xor dword [eax], edx
sub dword [ebp - 0xc], 2
cmp dword [ebp - 0xc], 0
jge 0x52bc7d
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ecx, dword [edx]
sub dword [eax], ecx
mov edx, dword [ebp + 8]
mov ecx, dword [edx]
mov edx, dword [ecx + 4]
sub dword [eax + 4], edx
add eax, 8
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp + 0x10]
jl 0x52bc5f
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x52bd08
Capabilities:
Encrypt data using rc6

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov ecx, esi
mov edx, dword [eax + 4]
add edx, edx
add edx, 2
test ecx, ecx
mov dword [ebp - 8], edx
jns 0x52bd2b
add ecx, 3
sar ecx, 2
mov dword [ebp - 0xc], ecx
mov eax, esi
and eax, 0x80000003
jns 0x52bd3f
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
je 0x52bd46
inc dword [ebp - 0xc]
mov edx, dword [ebp - 0xc]
shl edx, 2
push edx
call fcn.0051d750
pop ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x52beb6
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp ebx, dword [ebp - 0xc]
jge 0x52bd77
xor edx, edx
inc ebx
mov dword [eax], edx
add eax, 4
cmp ebx, dword [ebp - 0xc]
jl 0x52bd6a
mov eax, dword [ebp - 4]
xor ebx, ebx
mov edx, eax
mov eax, dword [ebp + 0xc]
cmp esi, ebx
jle 0x52bd90
mov cl, byte [eax]
mov byte [edx], cl
inc ebx
inc edx
inc eax
cmp esi, ebx
jg 0x52bd85
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov dword [eax], 0xb7e15163
mov ebx, 1
cmp ebx, dword [ebp - 8]
jge 0x52bdbd
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + ebx*4 - 4]
add edx, 0x9e3779b9
mov dword [eax + ebx*4], edx
inc ebx
cmp ebx, dword [ebp - 8]
jl 0x52bda5
mov eax, dword [ebp + 8]
xor ecx, ecx
xor ebx, ebx
mov edi, ecx
mov edx, dword [eax]
cmp ebx, dword [ebp - 8]
mov eax, edx
jge 0x52bdda
mov edx, dword [eax]
inc ebx
add eax, 4
cmp ebx, dword [ebp - 8]
jl 0x52bdcf
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 8]
jle 0x52bded
mov eax, dword [ebp - 0xc]
lea eax, [eax + eax*2]
mov dword [ebp - 0x10], eax
jmp 0x52bdf6
mov edx, dword [ebp - 8]
lea edx, [edx + edx*2]
mov dword [ebp - 0x10], edx
xor ecx, ecx
xor ebx, ebx
cmp ebx, dword [ebp - 0x10]
mov edi, ecx
mov esi, ecx
jge 0x52be95
mov eax, ebx
mov ecx, dword [ebp + 8]
cdq
idiv dword [ebp - 8]
mov eax, dword [ecx]
mov ecx, dword [eax + edx*4]
mov eax, ebx
cdq
idiv dword [ebp - 8]
mov eax, dword [ebp + 8]
add ecx, esi
add ecx, edi
shl ecx, 3
mov eax, dword [eax]
add esi, dword [eax + edx*4]
mov eax, ebx
cdq
idiv dword [ebp - 8]
mov eax, dword [ebp + 8]
add esi, edi
shr esi, 0x1d
or ecx, esi
mov eax, dword [eax]
mov esi, ecx
mov dword [eax + edx*4], ecx
mov eax, ebx
lea edx, [edi + esi]
and edx, 0x1f
mov dword [ebp - 0x14], edx
cdq
idiv dword [ebp - 0xc]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
mov edx, dword [eax + edx*4]
mov eax, ebx
add edx, esi
add edx, edi
shl edx, cl
push edx
mov ecx, 0x20
cdq
idiv dword [ebp - 0xc]
mov eax, dword [ebp - 4]
sub ecx, dword [ebp - 0x14]
mov edx, dword [eax + edx*4]
mov eax, ebx
add edx, esi
inc ebx
add edi, edx
shr edi, cl
cdq
idiv dword [ebp - 0xc]
mov eax, dword [ebp - 4]
pop ecx
or ecx, edi
mov dword [eax + edx*4], ecx
mov edi, ecx
cmp ebx, dword [ebp - 0x10]
jl 0x52be07
xor ebx, ebx
mov eax, dword [ebp - 4]
cmp ebx, dword [ebp - 0xc]
jge 0x52beac
xor edx, edx
inc ebx
mov dword [eax], edx
add eax, 4
cmp ebx, dword [ebp - 0xc]
jl 0x52be9f
mov ecx, dword [ebp - 4]
push ecx
call fcn.0051d760
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret