Function at 0x10052f3e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xd0
mov eax, dword [0x1043db14]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea edi, [ebp - 0xa4]
mov dword [edi], 0xffffffff
mov dword [ebp - 0xd8], ecx
mov esi, dword [ecx + 0x28]
lea ebx, [ebp - 0x30]
mov ecx, ebx
push 0x102885b2
call fcn.100014cc
mov ecx, esi
push ebx
push edi
call fcn.10043a60
mov ecx, ebx
call fcn.100017a2
mov eax, dword [edi]
test eax, eax
je 0x10052fce
cmp dword [eax + 4], 0x1f
jbe 0x10052fce
mov eax, dword [ebp + 0xc]
pcmpeqd xmm0, xmm0
movdqu xmmword [ebp - 0x20], xmm0
movdqu xmmword [ebp - 0x30], xmm0
mov eax, dword [eax]
test eax, eax
je 0x10052fdd
mov edi, dword [eax + 4]
cmp edi, 0x20
mov esi, 0x20
cmovb esi, edi
add eax, 0xc
push esi
push eax
push ebx
call fcn.1023a630
add esp, 0xc
cmp edi, 0x1f
jbe 0x10052fdf
jmp 0x10052ffb
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.10001668
jmp 0x100531da
xor esi, esi
mov eax, 0x20
sub eax, esi
lea ecx, [esi + ebp]
add ecx, 0xffffffd0
push eax
push 0x10288810
push ecx
call fcn.1023a630
add esp, 0xc
pcmpeqd xmm0, xmm0
lea esi, [ebp - 0x40]
movdqu xmmword [esi], xmm0
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], 0x20
sub esp, 0xc
movsd xmm0, qword [ebp - 0xac]
movsd qword [esp], xmm0
mov dword [esp + 8], esi
call fcn.10197b3e
add esp, 0xc
mov ebx, dword [ebp - 0xd8]
mov eax, dword [ebx + 0x10]
cmp eax, 3
jl 0x10053077
mov edi, 0x32
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], 0x10
sub esp, 0xc
movsd xmm0, qword [ebp - 0xb4]
movsd qword [esp], xmm0
mov dword [esp + 8], esi
call fcn.10197b3e
add esp, 0xc
dec edi
jne 0x10053045
mov eax, dword [ebx + 0x10]
mov dword [ebp - 0xdc], eax
mov ebx, dword [ebx + 0x18]
cmp ebx, 0x10
mov edi, 0x10
cmovb edi, ebx
mov eax, 0x20
sub eax, edi
lea ecx, [edi + ebp]
add ecx, 0xffffffa0
push eax
push 0
push ecx
call fcn.1023abb0
add esp, 0xc
lea eax, [ebp - 0x60]
push edi
push esi
mov esi, eax
push eax
call fcn.1023a630
add esp, 0xc
mov eax, dword [ebp - 0xa4]
lea ecx, [eax + 0xc]
test eax, eax
mov eax, 0x10265083
cmovne eax, ecx
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + 0x10]
movups xmmword [ebp - 0x80], xmm0
movups xmmword [ebp - 0x70], xmm1
cmp dword [ebp - 0xdc], 2
jne 0x10053129
mov dword [ebp - 0xbc], esi
mov dword [ebp - 0xb8], ebx
lea eax, [ebp - 0x80]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], 0x20
sub esp, 0x10
movsd xmm0, qword [ebp - 0xbc]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0xc4]
movsd qword [esp], xmm0
call fcn.1019719b
add esp, 0x10
jmp 0x100531b0
mov ebx, 0x13
lea esi, [ebp - 0xa0]
lea edi, [ebp - 0x80]
xorps xmm0, xmm0
movups xmmword [ebp - 0x90], xmm0
movups xmmword [ebp - 0xa0], xmm0
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x10053169
xor ecx, ecx
mov dl, byte [ebp + ecx - 0x60]
xor dl, bl
mov byte [ebp + ecx - 0xa0], dl
inc ecx
cmp eax, ecx
jne 0x10053157
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xd4], edi
mov dword [ebp - 0xd0], 0x20
sub esp, 0x10
movsd xmm0, qword [ebp - 0xcc]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0xd4]
movsd qword [esp], xmm0
call fcn.1019719b
add esp, 0x10
sub ebx, 1
jae 0x10053137
mov ecx, 0x20
mov eax, ecx
sub ecx, 1
jb 0x100531cb
mov dl, byte [eax + 0x1028880f]
cmp dl, byte [ebp + eax - 0x81]
je 0x100531b5
lea edx, [ebp - 0x80]
mov esi, dword [ebp + 8]
mov ecx, esi
push eax
push edx
call fcn.10001566
lea ecx, [ebp - 0xa4]
call fcn.100017a2
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.102377e8
mov eax, esi
add esp, 0xd0
pop esi
pop edi
pop ebx
pop ebp
ret 8