Function at 0x1002aa40
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 8]
mov dword [ebp - 0x20], eax
movzx eax, byte [esi + 0xc]
mov byte [ebp - 0xd], al
mov eax, dword [0x100f5654]
movzx eax, byte [eax]
push 4
push 0x2f8
call fcn.10004670
add esp, 8
test eax, eax
je 0x1002ade5
lea ecx, [esi + 0x10]
mov dword [ebp - 0x14], ecx
push 0x2f8
push 0
mov dword [ebp - 0x1c], eax
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
mov edx, 0xe414a674
mov ecx, 0xf0de7325
mov eax, dword [esi + 0x30]
movd xmm1, edx
movd xmm0, ecx
punpckldq xmm0, xmm1
movapd xmm1, xmmword [0x100d83a0]
mov dword [ebp - 0x18], eax
nop word cs:[eax + eax]
nop
mov edx, 1
mov ecx, 0
mov esi, 0x70656462
mov ebx, 0x70656462
lock xadd dword [0x10112034], edx
mov dword [ebp - 0x24], edx
xor edx, 0x79746573
mov eax, edx
mov edi, edx
add eax, 0x6e657261
adc ecx, 0xdcdecbc7
shld edi, esi, 0x10
shld ebx, edx, 0x10
xor edi, eax
xor ebx, ecx
mov ecx, edi
mov esi, ebx
mov eax, edi
add ecx, 0xd7dedfc6
adc esi, 0xded7d4e2
shld eax, ebx, 0x15
shld ebx, edi, 0x15
add edx, 0xc19fead0
mov edi, 0
movd xmm2, ecx
movd xmm6, eax
movd xmm3, ebx
mov eax, dword [ebp - 0x24]
adc edi, 0x1671bdd1
punpckldq xmm6, xmm3
movd xmm3, esi
movd xmm5, edi
xor edi, 0xff
xor esi, 0x4000000
punpckldq xmm2, xmm3
movd xmm3, edx
punpcklqdq xmm6, xmm0
movd xmm4, edi
movdqa xmm7, xmm3
punpcklqdq xmm3, xmm4
punpckldq xmm7, xmm5
xor eax, ecx
movd xmm5, esi
punpcklqdq xmm2, xmm7
pxor xmm2, xmm6
movd xmm6, eax
punpcklqdq xmm5, xmm6
movdqa xmm6, xmm2
shufps xmm3, xmm2, 0xe2
shufps xmm6, xmm5, 0x24
paddq xmm3, xmm6
movdqa xmm6, xmm2
pshufd xmm4, xmm3, 0xff
psllq xmm6, 0xd
movd eax, xmm4
movdqa xmm4, xmm2
psrlq xmm2, 0x30
psllq xmm4, 0x10
shufpd xmm2, xmm1, 2
movd xmm5, eax
movsd xmm6, xmm4
movdqa xmm4, xmm3
orpd xmm2, xmm6
shufps xmm4, xmm5, 0x4e
xorpd xmm2, xmm3
shufps xmm4, xmm3, 0x42
movapd xmm3, xmm2
movapd xmm5, xmm2
paddq xmm4, xmm2
psrlq xmm3, 0x2b
psrlq xmm5, 0x2f
movsd xmm5, xmm3
movdqa xmm3, xmm2
psllq xmm2, 0x11
psllq xmm3, 0x15
movsd xmm2, xmm3
pshufd xmm3, xmm4, 0xff
movd eax, xmm3
orpd xmm2, xmm5
movdqa xmm3, xmm4
movd xmm5, eax
xorpd xmm2, xmm4
shufps xmm3, xmm5, 0x4e
movapd xmm6, xmm2
shufps xmm3, xmm4, 0x42
psrlq xmm6, 0x33
paddq xmm3, xmm2
pshufd xmm4, xmm3, 0xff
movd eax, xmm4
movdqa xmm4, xmm2
psrlq xmm4, 0x30
movd xmm5, eax
movsd xmm6, xmm4
movdqa xmm4, xmm2
psllq xmm2, 0xd
psllq xmm4, 0x10
movsd xmm2, xmm4
movdqa xmm4, xmm3
orpd xmm2, xmm6
shufps xmm4, xmm5, 0x4e
xorpd xmm2, xmm3
shufps xmm4, xmm3, 0x42
movapd xmm3, xmm2
movapd xmm5, xmm2
paddq xmm4, xmm2
psrlq xmm3, 0x2b
psrlq xmm5, 0x2f
movsd xmm5, xmm3
movdqa xmm3, xmm2
psllq xmm2, 0x11
psllq xmm3, 0x15
movsd xmm2, xmm3
pshufd xmm3, xmm4, 0xff
movd eax, xmm3
orpd xmm2, xmm5
movdqa xmm3, xmm4
movd xmm5, eax
xorpd xmm2, xmm4
shufps xmm3, xmm5, 0x4e
movapd xmm5, xmm2
shufps xmm3, xmm4, 0x42
movapd xmm4, xmm2
psrlq xmm5, 0x33
psrlq xmm4, 0x30
paddq xmm3, xmm2
movsd xmm5, xmm4
movdqa xmm4, xmm2
psllq xmm2, 0xd
psllq xmm4, 0x10
movsd xmm2, xmm4
orpd xmm2, xmm5
xorpd xmm2, xmm3
pshufd xmm4, xmm2, 0xee
paddq xmm4, xmm3
pshufd xmm3, xmm4, 0x55
movd eax, xmm4
movdqa xmm4, xmm2
movd ecx, xmm3
movdqa xmm3, xmm2
psrlq xmm4, 0x2f
psrlq xmm3, 0x2b
xor eax, ecx
movsd xmm4, xmm3
movdqa xmm3, xmm2
psllq xmm2, 0x11
psllq xmm3, 0x15
movsd xmm2, xmm3
orpd xmm2, xmm4
pshufd xmm3, xmm2, 0xee
pxor xmm3, xmm2
movd edx, xmm3
pshufd xmm2, xmm3, 0x55
movd edi, xmm2
xor edx, eax
xor edi, eax
mov ecx, edx
or ecx, edi
je 0x1002aac0
mov eax, dword [ebp - 0x14]
mov esi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [ebp - 0x20]
movsd qword [esi + 0x98], xmm1
movsd qword [esi + 0x90], xmm0
mov dword [esi + 0xa0], eax
movzx eax, byte [ebp - 0xd]
mov byte [esi + 0xa4], al
mov eax, dword [ebp - 0x1c]
mov dword [esi], 0
mov dword [esi + 4], eax
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x88], eax
mov eax, dword [ecx + 0x20]
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov dword [esi + 0x8c], eax
mov eax, dword [ecx + 0x24]
test eax, eax
je 0x1002addb
mov ecx, dword [ecx + 0x28]
test ecx, ecx
je 0x1002addb
push 1
push ecx
push eax
call fcn.10004680
add esp, 0xc
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x2f8
push 4
call fcn.100a32d0
add esp, 8
ud2