joyce8/EMBER2024-capa huggingface dataset:
Function at 0x440570
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x52de04]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x34], eax
xor bl, bl
lea eax, [ebp - 0x30]
mov dword [ebp - 0x28], 0
push eax
push dword [0x52afe8]
mov dword [ebp - 0x24], 4
mov edi, 4
push 0
push str.SYSTEMCurrentControlSetControlSession_ManagerMemory_ManagementPrefetchParameters
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4405f9
mov esi, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x2c], edi
push eax
lea eax, [ebp - 0x38]
push eax
push 0
push str.BootId
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
sete bl
xor edi, edi
test eax, eax
jne 0x4405f2
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x24], edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test bl, bl
je 0x440708
movaps xmm0, xmmword [0x502830]
xor esi, esi
movups xmmword [ebp - 0x20], xmm0
test edi, edi
je 0x44063b
lea edx, [ebp - 0x10]
mov cl, byte [ebp + esi - 0x28]
lea edx, [edx + 2]
movzx eax, cl
inc esi
shr eax, 4
mov al, byte [ebp + eax - 0x20]
mov byte [edx - 2], al
movsx eax, cl
and eax, 0xf
mov al, byte [ebp + eax - 0x20]
mov byte [edx - 1], al
cmp esi, edi
jne 0x440615
lea ecx, [ebp - 0x10]
mov byte [ebp - 8], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x440645
mov ebx, dword [ebp - 0x34]
lea eax, [ebp - 0x10]
sub ecx, edx
push ecx
push eax
mov ecx, ebx
call fcn.00402de0
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
push eax
push str.HybridBootAnimationTime
push str.SYSTEMCurrentControlSetControlSession_ManagerPower
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0043a400
add esp, 0x14
test al, al
je 0x4406f5
movaps xmm0, xmmword [0x502830]
xor esi, esi
mov edi, dword [ebp - 0x24]
movups xmmword [ebp - 0x20], xmm0
test edi, edi
je 0x4406c6
lea edx, [ebp - 0x10]
nop word [eax + eax]
mov cl, byte [ebp + esi - 0x28]
lea edx, [edx + 2]
movzx eax, cl
inc esi
shr eax, 4
mov al, byte [ebp + eax - 0x20]
mov byte [edx - 2], al
movsx eax, cl
and eax, 0xf
mov al, byte [ebp + eax - 0x20]
mov byte [edx - 1], al
cmp esi, edi
jne 0x4406a0
push 1
push 0x502288
mov ecx, ebx
mov byte [ebp - 8], 0
call fcn.00402c50
lea edx, [ebp - 0x10]
lea esi, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x4406e0
sub edx, esi
lea eax, [ebp - 0x10]
push edx
push eax
mov ecx, ebx
call fcn.00402c50
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, bl
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
Function at 0x440ae0
Capabilities:
Check for time delay via queryperformancecounter
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f6ad0
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x52de04]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xorps xmm0, xmm0
xor esi, esi
movlpd qword [ebp - 0x30], xmm0
xor ebx, ebx
mov eax, dword [ebp - 0x30]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x14], eax
mov edx, 0x6a5928
mov ecx, 1
xor eax, eax
lock cmpxchg dword [edx], ecx
cmp eax, 2
je 0x440cc5
cmp eax, 3
je 0x440cc5
cmp eax, 4
jne 0x440b4f
xor ecx, ecx
lock cmpxchg dword [edx], ecx
jmp 0x440b25
cmp eax, 1
jne 0x440ca8
test ebx, ebx
jne 0x440b81
mov eax, dword [0x68abdc]
test eax, eax
jne 0x440b72
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x48]
mov ecx, 1
cmp ecx, eax
sbb ebx, ebx
and ebx, 0xffffffe0
add ebx, 0x20
cmp ebx, 8
jb 0x440ca2
cmp ebx, 0x20
jae 0x440b94
pause
inc ebx
jmp 0x440b20
jne 0x440c43
push 7
call fcn.00440440
add esp, 4
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x1c]
push ecx
lea ecx, [ebp - 0x20]
push ecx
call eax
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x440bd4
mov ecx, dword [ebp - 0x18]
mov eax, 0xd1b71759
lea ecx, [ecx - 1]
mul ecx
mov eax, edx
shr eax, 0xd
jmp 0x440c0c
mov eax, dword [ebp - 0x18]
mov ecx, 0x5f5e100
push dword [ebp - 0x34]
mul ecx
push dword [ebp - 0x38]
mov edi, eax
mov esi, edx
push 0x38d7e
sub edi, 1
push 0xa4c67fff
sbb esi, 0
call fcn.004b4100
add eax, 1
adc edx, 0
push edx
push eax
push esi
push edi
call fcn.004b4100
lea esi, [eax + 1]
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x440c34
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edi, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x28], eax
inc ebx
mov dword [ebp - 0x24], edi
jmp 0x440b20
mov eax, dword [ebp - 0x28]
inc ebx
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
jmp 0x440b20
test esi, esi
jne 0x440c4e
test bl, 1
je 0x440c9a
jmp 0x440c81
lea eax, [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x440c6c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
jmp 0x440c72
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x14]
sbb ecx, edi
test ecx, ecx
ja 0x440c98
jb 0x440c81
cmp eax, esi
jae 0x440c98
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
test eax, eax
jne 0x440ca2
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
jmp 0x440b20
xor esi, esi
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
jmp 0x440b20
mov ecx, 0x6a5930
mov dword [ebp - 4], 0
call fcn.0043cd90
mov eax, 2
mov ecx, 0x6a5928
xchg dword [ecx], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x442530
Capabilities:
Check for time delay via queryperformancecounter
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0xc]
test eax, eax
jne 0x442568
mov eax, dword [0x68abdc]
test eax, eax
jne 0x442556
lea eax, [ebp - 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x24]
mov ecx, 1
cmp ecx, eax
sbb eax, eax
and eax, 0xffffffe0
add eax, 0x20
mov dword [ebx + 0xc], eax
cmp eax, 8
jb 0x442653
cmp eax, 0x20
jae 0x442580
pause
inc dword [ebx + 0xc]
pop ebx
mov esp, ebp
pop ebp
ret
jne 0x442638
push 7
call fcn.00440440
add esp, 4
lea ecx, [ebp - 4]
push ecx
lea ecx, [ebp - 8]
push ecx
lea ecx, [ebp - 0xc]
push ecx
call eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x4425be
mov ecx, dword [ebp - 4]
mov eax, 0xd1b71759
lea ecx, [ecx - 1]
mul ecx
shr edx, 0xd
jmp 0x4425fc
mov eax, dword [ebp - 4]
mov ecx, 0x5f5e100
push esi
push edi
push dword [ebp - 0x10]
mul ecx
push dword [ebp - 0x14]
mov edi, eax
mov esi, edx
push 0x38d7e
sub edi, 1
push 0xa4c67fff
sbb esi, 0
call fcn.004b4100
add eax, 1
adc edx, 0
push edx
push eax
push esi
push edi
call fcn.004b4100
pop edi
mov edx, eax
pop esi
lea eax, [edx + 1]
mov dword [ebx + 8], eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x442625
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
mov dword [ebx], eax
inc dword [ebx + 0xc]
mov dword [ebx + 4], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
inc dword [ebx + 0xc]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 8], 0
jne 0x44265b
test al, 1
je 0x442690
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
test eax, eax
jne 0x442653
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [ebx + 0xc]
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x442673
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
jmp 0x442679
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x14]
sub eax, dword [ebx]
sbb ecx, dword [ebx + 4]
test ecx, ecx
jb 0x442642
ja 0x442689
cmp eax, dword [ebx + 8]
jb 0x442642
mov dword [ebx + 8], 0
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [ebx + 0xc]
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4443ba
Capabilities:
Terminate process

Disassembly:
mov eax, dword [0x6a6b0c]
push esi
push edi
test eax, eax
jne 0x4443d1
push str.devices.dll
call fcn.0041c9d0
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x6a6b0c], eax
test eax, eax
jne 0x4443d1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
push edi
call fcn.00414680
push 0x501b6c
mov esi, eax
call fcn.0041c8c0
push esi
push edi
push eax
push str.Failure_to_load__s_n_nWindows_Error__d:__s
push 0x10
push str.Fatal_Error
call fcn.004154f0
add esp, 0x20
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
pop edi
pop esi
ret

Function at 0x445900
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [ebp + 8]
xor ecx, ecx
push edi
xor edi, edi
mov dword [ebp - 4], ecx
test ebx, ebx
jne 0x44591c
pop edi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
push esi
cmp dword [ebp + 0xc], ecx
jle 0x44597a
mov al, byte [ebx]
mov esi, dword [ebp - 4]
shr al, cl
inc esi
and al, 1
lea ecx, [edi + edi]
movzx edx, al
or dx, cx
mov ecx, dword [ebp + 0xc]
cmp esi, 7
lea eax, [ecx - 1]
cmovle eax, ecx
mov dword [ebp + 0xc], eax
mov eax, edx
xor eax, 0x8005
movzx ecx, ax
movzx eax, dx
mov edx, 0x8000
cmp di, dx
cmovb ecx, eax
lea eax, [ebx + 1]
movzx edx, cx
xor ecx, ecx
cmp esi, 7
mov edi, edx
cmovle ecx, esi
cmovle eax, ebx
cmp dword [ebp + 0xc], 0
mov ebx, eax
mov dword [ebp - 4], ecx
jg 0x445922
mov esi, 0x10
nop
lea edx, [edi + edi]
mov eax, edx
xor eax, 0x8005
movzx ecx, ax
movzx eax, dx
mov edx, 0x8000
cmp di, dx
cmovb ecx, eax
movzx eax, cx
mov ecx, eax
mov edi, eax
sub esi, 1
jne 0x445980
mov eax, edx
lea edx, [esi + 1]
nop dword [eax]
test eax, ecx
je 0x4459b6
or esi, edx
add edx, edx
sar eax, 1
jne 0x4459b0
movzx eax, si
pop esi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x44db20
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov eax, dword [0x52de04]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push 0
push 0
push esi
call fcn.004c3c02
push esi
push 1
lea eax, [ebp - 0x8c]
push 8
push eax
call fcn.004c37de
push esi
push 1
lea eax, [ebp - 0x84]
push 0x40
push eax
call fcn.004c37de
push esi
push 1
lea eax, [ebp - 0x44]
push 0x40
push eax
call fcn.004c37de
push esi
call fcn.004d245c
add esp, 0x40
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x40], 0
push 0
push 0
push esi
call fcn.004c3c02
push esi
push 1
lea eax, [ebp - 0x8c]
push 8
push eax
call fcn.004c3f01
push esi
push 1
lea eax, [ebp - 0x84]
push 0x40
push eax
call fcn.004c3f01
push esi
push 1
lea eax, [ebp - 0x44]
push 0x40
push eax
call fcn.004c3f01
push esi
call fcn.004d245c
mov ecx, dword [ebp - 4]
add esp, 0x40
xor ecx, ebp
pop esi
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
Function at 0x453650
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov ecx, dword [ebp + 0xc]
mov eax, 0x66666667
push edi
mov edi, dword [ebp + 8]
sub ecx, edi
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
mov dword [ebp - 8], eax
mov ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x4537ad
lea eax, [edx - 1]
mov dword [ebp - 0x10], eax
sar eax, 1
mov dword [ebp - 4], eax
lea eax, [ecx + ecx*4]
push ebx
lea eax, [edi + eax*4]
push esi
movups xmm0, xmmword [eax - 0x14]
mov esi, dword [ebp + 0x10]
sub eax, 0x14
dec ecx
mov dword [ebp - 0x18], eax
mov ebx, ecx
mov dword [ebp + 0xc], ecx
movups xmmword [ebp - 0x28], xmm0
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], eax
mov eax, ecx
movups xmmword [ebp - 0x3c], xmm0
cmp ecx, dword [ebp - 4]
jge 0x453713
nop
mov ecx, dword [ebp + 8]
lea edi, [eax + eax]
lea eax, [edi + 2]
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
lea eax, [ecx - 0x14]
push eax
push ecx
mov ecx, esi
call fcn.004706b0
movzx eax, al
inc edi
xor eax, 1
add eax, edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0xc], eax
lea eax, [eax + eax*4]
movups xmm0, xmmword [edi + eax*4]
lea edx, [edi + eax*4]
lea eax, [ebx + ebx*4]
lea ecx, [edi + eax*4]
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0xc]
mov ebx, eax
cmp eax, dword [ebp - 4]
jl 0x4536c0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
cmp ebx, dword [ebp - 4]
jne 0x45373d
test dl, 1
jne 0x45373d
lea eax, [edx + edx*4]
movups xmm0, xmmword [edi + eax*4 - 0x14]
lea edx, [edi + eax*4]
lea eax, [ebx + ebx*4]
mov ebx, dword [ebp - 0x10]
lea ecx, [edi + eax*4]
movups xmmword [ecx], xmm0
mov eax, dword [edx - 4]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
jge 0x45378b
mov ecx, dword [ebp + 8]
lea edi, [ebx - 1]
sar edi, 1
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0xc], eax
push ecx
push eax
mov ecx, esi
call fcn.004706b0
test al, al
je 0x453785
mov ecx, dword [ebp + 8]
lea eax, [ebx + ebx*4]
lea ecx, [ecx + eax*4]
mov ebx, edi
mov eax, dword [ebp - 0xc]
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov ecx, dword [ebp + 0xc]
cmp ecx, edi
jl 0x453741
jmp 0x453788
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov edx, dword [ebp - 0x14]
lea eax, [ebx + ebx*4]
movups xmm0, xmmword [ebp - 0x28]
movups xmmword [edi + eax*4], xmm0
mov dword [edi + eax*4 + 0x10], edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x18]
test ecx, ecx
jg 0x453694
pop esi
pop ebx
pop edi
mov esp, ebp
pop ebp
ret
Function at 0x453eb0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov ecx, dword [ebp + 0xc]
mov eax, 0x2aaaaaab
push ebx
push esi
mov esi, dword [ebp + 8]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, eax
mov dword [ebp - 0xc], eax
sar ebx, 1
test ebx, ebx
jle 0x453fdb
dec eax
mov ecx, eax
mov dword [ebp - 0x10], eax
sar ecx, 1
lea eax, [ebx + ebx*2]
mov dword [ebp - 4], ecx
lea eax, [esi + eax*8]
push edi
movups xmm2, xmmword [eax - 0x18]
sub eax, 0x18
dec ebx
mov dword [ebp - 8], ebx
mov edi, ebx
mov dword [ebp - 0x14], eax
mov edx, ebx
movq xmm1, qword [eax + 0x10]
cmp ebx, ecx
jge 0x453f52
mov ebx, dword [ebp - 4]
add edx, edx
xor ecx, ecx
lea eax, [edx + edx*2]
movsd xmm0, qword [esi + eax*8 + 0x40]
comisd xmm0, xmmword [esi + eax*8 + 0x28]
lea eax, [edi + edi*2]
seta cl
xor ecx, 1
inc ecx
add edx, ecx
mov edi, edx
lea ecx, [edx + edx*2]
movups xmm0, xmmword [esi + ecx*8]
movups xmmword [esi + eax*8], xmm0
movq xmm0, qword [esi + ecx*8 + 0x10]
movq qword [esi + eax*8 + 0x10], xmm0
cmp edx, ebx
jl 0x453f10
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
cmp edi, ecx
jne 0x453f7b
mov eax, dword [ebp - 0xc]
test al, 1
jne 0x453f7b
lea ecx, [eax + eax*2]
movups xmm0, xmmword [esi + ecx*8 - 0x18]
lea eax, [edi + edi*2]
mov edi, dword [ebp - 0x10]
movups xmmword [esi + eax*8], xmm0
movq xmm0, qword [esi + ecx*8 - 8]
movq qword [esi + eax*8 + 0x10], xmm0
lea ecx, [edi - 1]
sar ecx, 1
cmp ebx, edi
jge 0x453fbf
nop dword [eax]
nop dword [eax + eax]
lea edx, [ecx + ecx*2]
movsd xmm0, qword [esi + edx*8 + 0x10]
comisd xmm0, xmm1
jbe 0x453fbf
movups xmm0, xmmword [esi + edx*8]
lea eax, [edi + edi*2]
mov edi, ecx
dec ecx
movups xmmword [esi + eax*8], xmm0
sar ecx, 1
movq xmm0, qword [esi + edx*8 + 0x10]
movq qword [esi + eax*8 + 0x10], xmm0
cmp ebx, edi
jl 0x453f90
mov ecx, dword [ebp - 4]
lea eax, [edi + edi*2]
movups xmmword [esi + eax*8], xmm2
movq qword [esi + eax*8 + 0x10], xmm1
mov eax, dword [ebp - 0x14]
test ebx, ebx
jg 0x453ef2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x455920
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov ecx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
lea eax, [ecx - 1]
mov dword [ebp + 0xc], ebx
mov dword [ebp - 8], eax
mov esi, ebx
sar eax, 1
mov dword [ebp - 4], eax
push edi
mov edi, dword [ebp + 8]
cmp ebx, eax
jge 0x45598c
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*4]
lea eax, [ecx - 0x14]
push eax
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.004706b0
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*4]
movups xmm0, xmmword [edi + eax*4]
lea edx, [edi + eax*4]
lea eax, [ebx + ebx*4]
mov ebx, esi
lea ecx, [edi + eax*4]
movups xmmword [ecx], xmm0
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 4]
cmp esi, eax
jl 0x455946
mov ecx, dword [ebp + 0x10]
cmp esi, eax
jne 0x4559b2
test cl, 1
jne 0x4559b2
lea eax, [ecx + ecx*4]
movups xmm0, xmmword [edi + eax*4 - 0x14]
lea edx, [edi + eax*4]
lea eax, [ebx + ebx*4]
mov ebx, dword [ebp - 8]
lea ecx, [edi + eax*4]
movups xmmword [ecx], xmm0
mov eax, dword [edx - 4]
mov dword [ecx + 0x10], eax
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0xc], ebx
jge 0x4559ff
nop word [eax + eax]
mov ecx, dword [ebp + 8]
lea edi, [ebx - 1]
push dword [ebp + 0x14]
sar edi, 1
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov ecx, esi
push eax
mov dword [ebp + 0x10], eax
call fcn.004706b0
test al, al
je 0x4559ff
lea eax, [ebx + ebx*4]
mov ecx, dword [ebp + 8]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp + 0x10]
mov ebx, edi
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
cmp dword [ebp + 0xc], edi
jl 0x4559c0
mov ecx, dword [ebp + 8]
lea eax, [ebx + ebx*4]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
movups xmm0, xmmword [eax]
movups xmmword [ecx], xmm0
mov eax, dword [eax + 0x10]
mov dword [ecx + 0x10], eax
mov esp, ebp
pop ebp
ret
Function at 0x455c40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
lea ecx, [eax - 1]
mov dword [ebp + 0xc], ebx
push edi
mov edi, ecx
mov dword [ebp - 4], ecx
sar edi, 1
mov esi, ebx
cmp ebx, edi
jge 0x455cc6
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*8]
lea ecx, [edx + eax*8]
lea eax, [ecx - 0x48]
push eax
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.00450f90
mov edx, dword [ebp + 8]
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*8]
lea ecx, [edx + eax*8]
lea eax, [ebx + ebx*8]
mov ebx, esi
movups xmm0, xmmword [ecx]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx + 0x40]
movq qword [edx + eax*8 + 0x40], xmm0
cmp esi, edi
jl 0x455c63
mov eax, dword [ebp + 0x10]
cmp esi, edi
jne 0x455d09
test al, 1
jne 0x455d09
lea eax, [eax + eax*8]
movups xmm0, xmmword [edx + eax*8 - 0x48]
lea ecx, [edx + eax*8]
lea eax, [ebx + ebx*8]
mov ebx, dword [ebp - 4]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx - 0x38]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx - 0x28]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx - 0x18]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx - 8]
movq qword [edx + eax*8 + 0x40], xmm0
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0xc], ebx
jge 0x455d6b
push dword [ebp + 0x14]
lea edi, [ebx - 1]
mov ecx, esi
sar edi, 1
lea eax, [edi + edi*8]
lea eax, [edx + eax*8]
push eax
mov dword [ebp + 0x10], eax
call fcn.00450f90
mov edx, dword [ebp + 8]
test al, al
je 0x455d6b
lea eax, [ebx + ebx*8]
mov ecx, dword [ebp + 0x10]
mov ebx, edi
movups xmm0, xmmword [ecx]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx + 0x40]
movq qword [edx + eax*8 + 0x40], xmm0
cmp dword [ebp + 0xc], edi
jl 0x455d11
mov ecx, dword [ebp + 0x14]
lea eax, [ebx + ebx*8]
pop edi
pop esi
pop ebx
movups xmm0, xmmword [ecx]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx + 0x40]
movq qword [edx + eax*8 + 0x40], xmm0
mov esp, ebp
pop ebp
ret
Function at 0x455db0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
lea ecx, [eax - 1]
mov dword [ebp + 0xc], ebx
push edi
mov edi, ecx
mov dword [ebp - 4], ecx
sar edi, 1
mov esi, ebx
cmp ebx, edi
jge 0x455e36
add esi, esi
lea eax, [esi + 2]
lea eax, [eax + eax*8]
lea ecx, [edx + eax*8]
lea eax, [ecx - 0x48]
push eax
push ecx
mov ecx, dword [ebp + 0x18]
call fcn.004510f0
mov edx, dword [ebp + 8]
movzx eax, al
xor eax, 1
inc eax
add esi, eax
lea eax, [esi + esi*8]
lea ecx, [edx + eax*8]
lea eax, [ebx + ebx*8]
mov ebx, esi
movups xmm0, xmmword [ecx]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx + 0x40]
movq qword [edx + eax*8 + 0x40], xmm0
cmp esi, edi
jl 0x455dd3
mov eax, dword [ebp + 0x10]
cmp esi, edi
jne 0x455e79
test al, 1
jne 0x455e79
lea eax, [eax + eax*8]
movups xmm0, xmmword [edx + eax*8 - 0x48]
lea ecx, [edx + eax*8]
lea eax, [ebx + ebx*8]
mov ebx, dword [ebp - 4]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx - 0x38]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx - 0x28]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx - 0x18]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx - 8]
movq qword [edx + eax*8 + 0x40], xmm0
mov esi, dword [ebp + 0x18]
cmp dword [ebp + 0xc], ebx
jge 0x455edb
push dword [ebp + 0x14]
lea edi, [ebx - 1]
mov ecx, esi
sar edi, 1
lea eax, [edi + edi*8]
lea eax, [edx + eax*8]
push eax
mov dword [ebp + 0x10], eax
call fcn.004510f0
mov edx, dword [ebp + 8]
test al, al
je 0x455edb
lea eax, [ebx + ebx*8]
mov ecx, dword [ebp + 0x10]
mov ebx, edi
movups xmm0, xmmword [ecx]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx + 0x40]
movq qword [edx + eax*8 + 0x40], xmm0
cmp dword [ebp + 0xc], edi
jl 0x455e81
mov ecx, dword [ebp + 0x14]
lea eax, [ebx + ebx*8]
pop edi
pop esi
pop ebx
movups xmm0, xmmword [ecx]
movups xmmword [edx + eax*8], xmm0
movups xmm0, xmmword [ecx + 0x10]
movups xmmword [edx + eax*8 + 0x10], xmm0
movups xmm0, xmmword [ecx + 0x20]
movups xmmword [edx + eax*8 + 0x20], xmm0
movups xmm0, xmmword [ecx + 0x30]
movups xmmword [edx + eax*8 + 0x30], xmm0
movq xmm0, qword [ecx + 0x40]
movq qword [edx + eax*8 + 0x40], xmm0
mov esp, ebp
pop ebp
ret