joyce8/EMBER2024-capa huggingface dataset:
Function at 0x490c00
Capabilities:
Resolve dns

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1b4
mov eax, dword [esp + 0x1cc]
mov esi, dword [esp + 0x1c8]
mov edi, dword [eax]
mov ebp, dword [eax + 4]
movzx ebx, word [eax + 8]
mov eax, dword [0x51921c]
cmp eax, 3
jne 0x490ceb
cmp ebp, 0x17f
ja 0x490cfc
mov dword [esp + 4], ebx
lea ebx, [esp + 0x34]
push ebp
push edi
push ebx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esp + ebp + 0x34], 0
inc ebp
lea eax, [esp + 8]
push ebp
push ebx
push eax
call fcn.0049ddc0
add esp, 0xc
cmp dword [esp + 8], 0
je 0x490c86
mov eax, dword [0x50c7b8]
mov ecx, dword [0x50c7bc]
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
mov dword [esi], 1
jmp 0x490d0a
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
mov ecx, esp
mov dword [esp], 0
lea edx, [esp + 0x14]
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x1c], 1
push ecx
push edx
push 0
push eax
call dword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x490cd4
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov ecx, 1
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov dword [esi], ecx
jmp 0x490d0a
mov eax, dword [esp]
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov eax, dword [esp + 4]
mov word [esi + 0xc], ax
xor eax, eax
mov dword [esi], eax
jmp 0x490d0a
call fcn.004b3cf0
cmp ebp, 0x17f
jbe 0x490c3b
mov ecx, esi
mov edx, edi
push ebx
push ebp
call fcn.004b3d40
add esp, 8
mov eax, esi
add esp, 0x1b4
pop esi
pop edi
pop ebx
pop ebp
ret

Function at 0x490d20
Capabilities:
Connect socket

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
movzx ecx, byte [eax]
cmp cl, 4
jne 0x490d81
mov ebp, dword [eax + 4]
mov eax, dword [0x51921c]
cmp eax, 3
jne 0x490e2c
mov eax, esp
push 1
push ebp
push eax
call fcn.00486d80
add esp, 0xc
movzx eax, byte [esp]
cmp al, 4
jne 0x490d9d
mov edi, dword [esp + 4]
cmp word [ebp], 0
je 0x490db9
movups xmm0, xmmword [ebp + 4]
mov edx, dword [ebp + 0x18]
lea eax, [ebp + 0x14]
add ebp, 0x1c
mov ecx, 0x1c
mov bx, 0x17
jmp 0x490dcb
movzx edx, byte [eax + 3]
movzx edi, word [eax + 1]
mov eax, dword [eax + 4]
mov byte [esi + 3], dl
mov word [esi + 1], di
mov byte [esi], cl
mov dword [esi + 4], eax
jmp 0x490e22
movzx ecx, byte [esp + 3]
movzx edi, word [esp + 1]
mov edx, dword [esp + 4]
mov byte [esi + 3], cl
mov word [esi + 1], di
mov byte [esi], al
mov dword [esi + 4], edx
jmp 0x490e22
lea eax, [ebp + 2]
add ebp, 6
mov ecx, 0x10
mov bx, 2
xorps xmm0, xmm0
movzx ebp, word [ebp]
mov eax, dword [eax]
mov word [esp], bx
rol bp, 8
mov word [esp + 2], bp
mov dword [esp + 4], eax
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x18], edx
push ecx
lea eax, [esp + 4]
push eax
push edi
call dword [sym.imp.ws2_32.dll_connect]
cmp eax, 0xffffffff
je 0x490e05
mov dword [esi + 4], edi
mov byte [esi], 4
jmp 0x490e22
call dword [sym.imp.ws2_32.dll_WSAGetLastError]
mov byte [esi], 0
mov byte [esi + 3], 0
mov word [esi + 1], 0
mov dword [esi + 4], eax
push edi
call dword [sym.imp.ws2_32.dll_closesocket]
mov eax, esi
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.004b3cf0
jmp 0x490d48
Function at 0x491810
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push edi
push esi
mov eax, dword [0x5190d0]
mov esi, ecx
test eax, eax
je 0x491836
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jbe 0x49184f
cmp dword [eax + 4], 0
je 0x49184f
add eax, 8
pop esi
pop edi
ret
push 0x5190d0
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
ja 0x49182a
mov eax, dword [0x5190d0]
test eax, eax
je 0x4918e6
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x491903
mov edi, eax
test eax, eax
jne 0x4918af
movzx eax, byte [0x519171]
push 4
push 0x10
call fcn.00414120
add esp, 8
test eax, eax
je 0x491917
mov dword [eax], 0x5190d0
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x5190d0]
test eax, eax
je 0x491908
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test esi, esi
je 0x4918cf
mov eax, dword [esi]
xor ecx, ecx
mov edx, 0
mov dword [esi], 0
cmp eax, 1
jne 0x4918d3
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
jmp 0x4918d3
xor ecx, ecx
xor edx, edx
mov dword [edi + 4], 1
mov dword [edi + 8], ecx
lea eax, [edi + 8]
mov byte [edi + 0xc], dl
pop esi
pop edi
ret
push 0x5190d0
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x49186d
xor eax, eax
pop esi
pop edi
ret
push 0x5190d0
call fcn.004b3f30
add esp, 4
jmp 0x4918a7
push 0x10
push 4
call fcn.004b45c0
add esp, 8
ud2
Function at 0x491930
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x492690
mov esi, ecx
lea eax, [ebp - 0x18]
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x5190e0]
test eax, eax
je 0x491985
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jbe 0x49199e
cmp dword [eax + 4], 0
mov ebx, eax
je 0x49199e
add ebx, 8
jmp 0x491a68
push 0x5190e0
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
ja 0x491975
mov eax, dword [0x5190e0]
test eax, eax
je 0x491a49
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x491a66
mov edi, eax
test eax, eax
jne 0x491a02
movzx eax, byte [0x519171]
push 4
push 0x10
call fcn.00414120
add esp, 8
test eax, eax
je 0x491a8d
mov dword [eax], 0x5190e0
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x5190e0]
test eax, eax
je 0x491a7b
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test esi, esi
je 0x491a1c
mov eax, dword [esi]
mov dword [esi], 0
test eax, eax
mov edx, eax
je 0x491a20
mov eax, dword [esi + 4]
mov edx, dword [esi + 8]
jmp 0x491a20
xor eax, eax
xor edx, edx
mov ecx, dword [edi + 0xc]
cmp dword [edi + 4], 0
lea ebx, [edi + 8]
mov dword [edi + 4], 1
mov dword [edi + 8], eax
mov dword [edi + 0xc], edx
je 0x491a68
test ecx, ecx
je 0x491a68
lock dec dword [ecx]
jne 0x491a68
call fcn.00475e70
jmp 0x491a68
push 0x5190e0
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x4919bc
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x5190e0
call fcn.004b3f30
add esp, 4
jmp 0x4919fa
mov dword [ebp - 0x10], 0
push 0x10
push 4
call fcn.004b45c0
add esp, 8
ud2
Function at 0x491ad0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push edi
push esi
mov eax, dword [0x5190f0]
mov esi, ecx
test eax, eax
je 0x491af6
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jbe 0x491b0f
cmp byte [eax + 4], 0
je 0x491b0f
add eax, 5
pop esi
pop edi
ret
push 0x5190f0
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
ja 0x491aea
mov eax, dword [0x5190f0]
test eax, eax
je 0x491b82
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x491b9b
mov edi, eax
test eax, eax
jne 0x491b60
movzx eax, byte [0x519171]
push 4
push 8
call fcn.00414120
add esp, 8
test eax, eax
je 0x491baf
mov dword [eax], 0x5190f0
mov byte [eax + 4], 0
mov edi, eax
mov eax, dword [0x5190f0]
test eax, eax
je 0x491ba0
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
xor ecx, ecx
test esi, esi
je 0x491b75
cmp byte [esi], 0
mov byte [esi], 0
movzx eax, byte [esi + 1]
cmove eax, ecx
mov ecx, eax
mov byte [edi + 4], 1
lea eax, [edi + 5]
mov byte [edi + 5], cl
pop esi
pop edi
ret
push 0x5190f0
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x491b25
xor eax, eax
pop esi
pop edi
ret
push 0x5190f0
call fcn.004b3f30
add esp, 4
jmp 0x491b58
push 8
push 4
call fcn.004b45c0
add esp, 8
ud2
Function at 0x491bc0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0x14], 0x4926a0
mov esi, ecx
lea eax, [ebp - 0x18]
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x519100]
test eax, eax
je 0x491c15
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jbe 0x491c2e
cmp dword [eax + 4], 0
mov ebx, eax
je 0x491c2e
add ebx, 8
jmp 0x491cea
push 0x519100
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
ja 0x491c05
mov eax, dword [0x519100]
test eax, eax
je 0x491ccb
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x491ce8
mov edi, eax
test eax, eax
jne 0x491c8e
movzx eax, byte [0x519171]
push 4
push 0xc
call fcn.00414120
add esp, 8
test eax, eax
je 0x491d0f
mov dword [eax], 0x519100
mov dword [eax + 4], 0
mov edi, eax
mov eax, dword [0x519100]
test eax, eax
je 0x491cfd
dec eax
push edi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
test esi, esi
je 0x491ca3
mov eax, dword [esi]
mov dword [esi], 0
test eax, eax
je 0x491ca5
mov eax, dword [esi + 4]
jmp 0x491ca5
xor eax, eax
mov ecx, dword [edi + 8]
cmp dword [edi + 4], 0
lea ebx, [edi + 8]
mov dword [edi + 4], 1
mov dword [edi + 8], eax
je 0x491cea
test ecx, ecx
je 0x491cea
lock dec dword [ecx]
jne 0x491cea
call fcn.00475eb0
jmp 0x491cea
push 0x519100
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x491c4c
xor ebx, ebx
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, ebx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x519100
call fcn.004b3f30
add esp, 4
jmp 0x491c86
mov dword [ebp - 0x10], 0
push 0xc
push 4
call fcn.004b45c0
add esp, 8
ud2
Function at 0x491d50
Capabilities:
Generate random numbers via winapi
Get thread local storage value
Set thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
and esp, 0xfffffff0
sub esp, 0x30
mov eax, dword [0x519110]
test eax, eax
je 0x491e4f
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jbe 0x491d81
mov esi, eax
mov eax, dword [eax]
or eax, dword [esi + 4]
jne 0x491e4a
mov eax, dword [0x519110]
test eax, eax
je 0x491e71
dec eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
je 0x491e8e
mov esi, eax
test eax, eax
jne 0x491dec
movzx eax, byte [0x519171]
push 8
push 0x20
call fcn.00414120
add esp, 8
test eax, eax
je 0x491eaa
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [eax + 0x18], 0x519110
mov esi, eax
mov eax, dword [0x519110]
test eax, eax
je 0x491e98
dec eax
push esi
push eax
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [ebp + 8]
test eax, eax
je 0x491e0b
mov ecx, dword [eax]
movups xmm0, xmmword [eax + 8]
mov dword [eax + 4], 0
mov dword [eax], 0
cmp ecx, 1
je 0x491e39
xorps xmm0, xmm0
mov eax, esp
movaps xmmword [esp], xmm0
push 2
push 0x10
push eax
push 0
call dword [sym.imp.bcrypt.dll_BCryptGenRandom]
test eax, eax
js 0x491e2b
movaps xmm0, xmmword [esp]
jmp 0x491e39
lea ecx, [esp + 0x10]
call fcn.0048e0c0
movups xmm0, xmmword [esp + 0x10]
mov dword [esi + 4], 0
mov dword [esi], 1
movups xmmword [esi + 8], xmm0
add esi, 8
jmp 0x491e90
push 0x519110
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
ja 0x491d74
jmp 0x491d81
push 0x519110
call fcn.004b3f30
add esp, 4
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, 1
jne 0x491d9f
xor esi, esi
mov eax, esi
lea esp, [ebp - 4]
pop esi
pop ebp
ret
push 0x519110
call fcn.004b3f30
add esp, 4
jmp 0x491de4
push 0x20
push 8
call fcn.004b45c0
add esp, 8
ud2
Function at 0x4a30c0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4a3118
mov esi, dword [esp + 0x18]
lea edi, [edx + eax*2]
xor ebx, ebx
movzx eax, byte [edx + 1]
cmp byte [edx], ch
lea edx, [edx + 2]
lea ebp, [ebx + eax]
jne 0x4a3110
cmp ebp, ebx
jb 0x4a3192
cmp ebp, dword [esp + 0x1c]
ja 0x4a31a3
add ebx, esi
nop word [eax + eax]
test eax, eax
je 0x4a3112
dec eax
cmp byte [ebx], cl
lea ebx, [ebx + 1]
jne 0x4a3100
jmp 0x4a316f
ja 0x4a3118
cmp edx, edi
mov ebx, ebp
jne 0x4a30d5
mov edx, dword [esp + 0x24]
test edx, edx
je 0x4a3173
mov esi, dword [esp + 0x20]
movzx ecx, cx
mov al, 1
add edx, esi
nop dword [eax + eax]
movzx ebx, byte [esi]
lea edi, [esi + 1]
test bl, bl
js 0x4a3150
mov esi, edi
sub ecx, ebx
jns 0x4a3167
jmp 0x4a3175
cmp edi, edx
je 0x4a317c
movzx edi, byte [esi + 1]
and ebx, 0x7f
add esi, 2
shl ebx, 8
or ebx, edi
sub ecx, ebx
js 0x4a3175
xor al, 1
cmp esi, edx
jne 0x4a3130
jmp 0x4a3175
xor eax, eax
jmp 0x4a3175
mov al, 1
and al, 1
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x5106b0
push 0x2b
push str.called__Option::unwrap____on_a__None__valueassertion_failed:__buf.is_empty__
call fcn.004b47c0
add esp, 0xc
ud2
push 0x5106c0
push ebp
push ebx
call fcn.004b4c80
add esp, 0xc
ud2
push 0x5106c0
push dword [esp + 0x20]
push ebp
call fcn.004b4c10
add esp, 0xc
ud2
Function at 0x4a55b0
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 0xc]
xor ecx, ecx
push ebx
xor bl, bl
push ebp
mov ebp, dword [esp + 0xc]
test edx, edx
je 0x4a5667
mov eax, dword [esp + 0x10]
push esi
mov esi, ebp
sub esi, eax
cmp edx, 0x20
jb 0x4a5646
push edi
mov edi, edx
xorps xmm3, xmm3
and edi, 0xffffffe0
xorps xmm2, xmm2
add eax, 0x10
movups xmm0, xmmword [eax - 0x10]
lea eax, [eax + 0x20]
movups xmm1, xmmword [ecx + ebp]
add ecx, 0x20
xorps xmm1, xmm0
orps xmm3, xmm1
movups xmm1, xmmword [esi + eax - 0x20]
movups xmm0, xmmword [eax - 0x20]
xorps xmm1, xmm0
orps xmm2, xmm1
cmp ecx, edi
jb 0x4a55e3
orps xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
orps xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
orps xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 2
orps xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 1
orps xmm2, xmm0
movd ebx, xmm2
pop edi
cmp ecx, edx
jae 0x4a5660
mov eax, dword [esp + 0x14]
add eax, ecx
sub edx, ecx
nop word [eax + eax]
mov cl, byte [esi + eax]
lea eax, [eax + 1]
xor cl, byte [eax - 1]
or bl, cl
sub edx, 1
jne 0x4a5650
pop esi
pop ebp
movzx eax, bl
pop ebx
ret
pop ebp
movzx eax, bl
pop ebx
ret

Function at 0x4a5800
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, dword [esp + 0x10]
push esi
or esi, 0xffffffff
test ebx, ebx
je 0x4a5847
push ebp
mov ebp, dword [esp + 0x10]
push edi
mov edi, dword [esp + 0x18]
sub ebp, edi
nop dword [eax]
mov eax, dword [edi + ebp]
lea edi, [edi + 4]
xor eax, dword [edi - 4]
mov ecx, esi
not ecx
lea edx, [eax - 1]
not eax
shr edx, 0x1f
shr eax, 0x1f
and edx, eax
neg edx
or edx, ecx
and esi, edx
sub ebx, 1
jne 0x4a5820
pop edi
pop ebp
mov eax, esi
pop esi
pop ebx
ret
Function at 0x4a6460
Capabilities:
Encrypt data using curve25519

Disassembly:
mov ecx, dword [esp + 4]
mov al, byte [ecx + 0x1f]
and byte [ecx], 0xf8
and al, 0x3f
or al, 0x40
mov byte [ecx + 0x1f], al
ret
Function at 0x4acd50
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x254
mov eax, dword [0x519134]
xor eax, esp
mov dword [esp + 0x250], eax
cmp dword [esp + 0x260], 0
mov eax, dword [esp + 0x264]
mov ecx, dword [esp + 0x268]
push ebp
mov ebp, dword [esp + 0x25c]
push esi
mov esi, dword [esp + 0x264]
mov dword [esp + 8], esi
mov dword [esp + 0x10], eax
je 0x4ace9f
push edi
push eax
lea eax, [esp + 0x80]
push eax
call fcn.004ad430
movups xmm0, xmmword [ecx]
mov ecx, dword [esp + 0x274]
lea edx, [esp + 0x24]
add esp, 8
lea edi, [esp + 0x5c]
movups xmmword [edx], xmm0
mov eax, dword [edx]
sub edi, ebp
mov dword [edx + 0x10], eax
mov eax, dword [edx + 4]
mov dword [edx + 0x14], eax
mov eax, dword [edx + 8]
mov dword [edx + 0x18], eax
mov eax, dword [edx + 0xc]
mov dword [edx + 0x1c], eax
mov edx, dword [esp + 0x28]
bswap edx
push ebx
mov eax, edx
mov dword [esp + 0x14], edx
bswap eax
mov dword [esp + 0x2c], eax
cmp ecx, 2
lea eax, [edx + 1]
mov ebx, ecx
bswap eax
mov dword [esp + 0x3c], eax
mov eax, 2
cmovae ebx, eax
lea eax, [esp + 0x20]
push ebx
push eax
lea eax, [esp + 0x48]
mov dword [esp + 0x24], ebx
push eax
call fcn.004ade90
lea eax, [esp + 0x4c]
push eax
mov eax, dword [esp + 0x28]
push dword [eax + 0xf0]
lea eax, [esp + 0x94]
push eax
call fcn.004ad260
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x7c]
push ebx
push eax
call fcn.004ad520
add esp, 0x24
test ebx, ebx
je 0x4ace72
sub esi, ebp
mov eax, ebp
nop dword [eax]
mov edx, 4
mov ecx, dword [eax]
xor ecx, dword [edi + eax]
mov dword [esi + eax], ecx
add eax, 4
sub edx, 1
jne 0x4ace55
sub ebx, 1
jne 0x4ace50
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x270]
sub ecx, ebx
mov dword [esp + 0x270], ecx
je 0x4ace9d
mov edx, dword [esp + 0x14]
add esi, 0x20
add ebp, 0x20
mov dword [esp + 0x10], esi
sub edi, 0x20
add edx, 2
jmp 0x4acddf
pop ebx
pop edi
mov ecx, dword [esp + 0x258]
pop esi
pop ebp
xor ecx, esp
call fcn.004b09d8
add esp, 0x254
ret
Function at 0x4acf40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x44
mov eax, dword [0x519134]
xor eax, esp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
push ebx
mov ebx, dword [esp + 0x54]
cmp eax, 0x80
je 0x4acf9a
cmp eax, 0x100
je 0x4acf7e
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004b09d8
add esp, 0x44
ret
push ecx
push ebx
call fcn.004ad980
add esp, 8
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004b09d8
add esp, 0x44
ret
push ebp
push esi
push edi
push ecx
lea eax, [esp + 0x34]
mov dword [ebx + 0xf0], 0xa
push eax
call fcn.004ad0c0
movups xmm0, xmmword [esp + 0x38]
add esp, 8
mov edi, 1
movups xmmword [ebx], xmm0
add ebx, 0x10
nop word [eax + eax]
mov eax, dword [esp + 0x30]
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
movups xmmword [esp + 0x20], xmm0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x10]
push eax
call fcn.004ae110
lea eax, [esp + 0x14]
push eax
call fcn.004adba0
lea eax, [esp + 0x18]
push eax
call fcn.004ae110
mov eax, dword [esp + 0x1c]
add esp, 0xc
movzx ebp, byte [edi + 0x4dd197]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
xor eax, eax
mov edx, dword [esp + eax*4 + 0x40]
mov cl, al
add cl, cl
mov esi, ebp
shr esi, cl
mov ecx, edx
and ecx, 0x3000000
shr edx, 8
or ecx, edx
and esi, 3
shr ecx, 0x12
xor esi, ecx
xor esi, dword [esp + eax*4 + 0x30]
mov ecx, esi
shl ecx, 8
xor ecx, esi
shl ecx, 8
xor ecx, esi
shl ecx, 8
xor ecx, esi
mov dword [esp + eax*4 + 0x30], ecx
inc eax
cmp eax, 4
jb 0x4ad047
movups xmm0, xmmword [esp + 0x30]
inc edi
movups xmmword [ebx], xmm0
add ebx, 0x10
cmp edi, 0xa
jbe 0x4acfd0
mov ecx, dword [esp + 0x50]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b09d8
add esp, 0x44
ret
Function at 0x4ad520
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2c
mov eax, dword [0x519134]
xor eax, esp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
push edi
movups xmm0, xmmword [eax]
movups xmmword [esp + 0xc], xmm0
movups xmm0, xmmword [eax + 0x10]
lea eax, [esp + 0xc]
push eax
movups xmmword [esp + 0x20], xmm0
call fcn.004ae110
xor edi, edi
add esp, 4
mov dword [esp + 4], edi
cmp dword [esp + 0x38], edi
jbe 0x4ad710
push ebx
lea eax, [ecx + 8]
push ebp
mov dword [esp + 0x10], eax
push esi
nop
mov ecx, dword [esp + edi*4 + 0x30]
mov eax, dword [esp + edi*4 + 0x28]
movzx eax, al
mov ebx, dword [esp + edi*4 + 0x20]
movzx edx, cl
shl edx, 8
or edx, eax
mov esi, dword [esp + edi*4 + 0x28]
shl edx, 8
movzx eax, bl
or edx, eax
mov eax, dword [esp + edi*4 + 0x18]
movzx eax, al
shl edx, 8
or edx, eax
mov ecx, edx
shr ecx, 0xc
xor ecx, edx
and ecx, 0xf0f0
mov eax, ecx
shl eax, 0xc
xor eax, ecx
xor edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
and eax, 0xcc00cc
mov ebp, eax
shl ebp, 6
xor ebp, eax
mov eax, dword [esp + edi*4 + 0x30]
shr eax, 8
xor ebp, edx
movzx edx, al
mov eax, esi
shr eax, 8
movzx eax, al
shl edx, 8
or edx, eax
mov eax, ebx
shr eax, 8
movzx eax, al
shl edx, 8
or edx, eax
mov eax, dword [esp + edi*4 + 0x18]
shr eax, 8
movzx eax, al
shl edx, 8
or edx, eax
mov ecx, edx
shr ecx, 0xc
xor ecx, edx
and ecx, 0xf0f0
mov eax, ecx
shl eax, 0xc
xor eax, ecx
mov ecx, dword [esp + 0x10]
xor edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
and eax, 0xcc00cc
mov edi, eax
shl edi, 6
xor edi, eax
mov eax, dword [esp + ecx*4 + 0x30]
shr eax, 0x10
xor edi, edx
movzx edx, al
mov eax, esi
shr eax, 0x10
movzx eax, al
shl edx, 8
or edx, eax
mov eax, ebx
shr eax, 0x10
shl edx, 8
movzx eax, al
or edx, eax
mov eax, dword [esp + ecx*4 + 0x18]
shl edx, 8
shr eax, 0x10
and ebx, 0xff00ffff
movzx eax, al
or edx, eax
mov ecx, edx
shr ecx, 0xc
xor ecx, edx
and ecx, 0xf0f0
mov eax, ecx
shl eax, 0xc
xor eax, ecx
mov ecx, dword [esp + 0x10]
xor edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
and eax, 0xcc00cc
mov esi, eax
shl esi, 6
xor esi, eax
mov eax, dword [esp + ecx*4 + 0x28]
xor esi, edx
and eax, 0xff0000ff
mov edx, dword [esp + ecx*4 + 0x18]
shr edx, 8
or edx, ebx
shr edx, 8
or edx, eax
mov eax, dword [esp + ecx*4 + 0x30]
and eax, 0xff000000
shr edx, 8
or edx, eax
mov ecx, edx
shr ecx, 0xc
xor ecx, edx
and ecx, 0xf0f0
mov eax, ecx
shl eax, 0xc
xor eax, ecx
xor edx, eax
mov eax, edx
shr eax, 6
xor eax, edx
and eax, 0xcc00cc
mov ecx, eax
shl ecx, 6
xor ecx, eax
mov eax, dword [esp + 0x14]
xor ecx, edx
mov dword [eax - 8], ebp
mov dword [eax - 4], edi
mov edi, dword [esp + 0x10]
mov dword [eax], esi
inc edi
mov dword [eax + 4], ecx
add eax, 0x10
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
cmp edi, dword [esp + 0x44]
jb 0x4ad570
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2c]
pop edi
xor ecx, esp
call fcn.004b09d8
add esp, 0x2c
ret