Function at 0x4357b0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0xc8
mov eax, dword [0x5ea6c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov edx, dword [ebx + 0xc]
push esi
push edi
mov dword [ebp - 0x98], edx
mov esi, dword [edx + 0x230]
mov dword [ebp - 0x94], esi
test esi, esi
jne 0x4357fa
lea esi, [edx + 0x40]
mov dword [ebp - 0x94], esi
cmp dword [edx + 0x214], 0
lea edi, [edx + 0x100]
mov ecx, dword [edx + 0x210]
mov dword [ebp - 0xa0], edi
ja 0x43588c
cmp ecx, 0xf0
ja 0x43588c
mov eax, dword [edx + 0x220]
mov dword [ebp - 0x98], eax
mov eax, dword [edx + 0x224]
mov dword [ebp - 0x9c], eax
mov eax, dword [edx + 0x220]
or eax, dword [edx + 0x224]
je 0x435868
push dword [ebp - 0x9c]
lea eax, [ebp - 0xc0]
push dword [ebp - 0x98]
push ecx
push edi
push eax
call fcn.004367e0
add esp, 0x14
movups xmm0, xmmword [eax]
jmp 0x435b63
mov eax, dword [edx + 0x21c]
add eax, 0x40
push eax
push esi
push ecx
lea eax, [ebp - 0xc0]
push edi
push eax
call fcn.00435e50
add esp, 0x14
movups xmm0, xmmword [eax]
jmp 0x435b63
movups xmm0, xmmword [edx]
mov eax, dword [edx + 0x200]
mov dword [ebp - 0xa4], eax
movups xmmword [ebp - 0x90], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [ebp - 0x80], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [ebp - 0x70], xmm0
movups xmm0, xmmword [edx + 0x30]
movups xmmword [ebp - 0x60], xmm0
cmp eax, 0x40
jb 0x435a4a
mov ecx, dword [edx + 0x21c]
lea edi, [eax - 1]
mov eax, dword [edx + 0x208]
mov dword [ebp - 0xac], ecx
mov ecx, dword [edx + 0x218]
sub ecx, eax
shr edi, 6
mov dword [ebp - 0xa4], ecx
lea esi, [esi + eax*8]
cmp ecx, edi
ja 0x435a08
sub edi, ecx
mov dword [ebp - 0xa8], edi
test ecx, ecx
je 0x435936
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x9c], ecx
nop dword [eax]
push esi
lea eax, [ebp - 0x90]
push edi
push eax
call fcn.00434980
add esp, 0xc
add esi, 8
add edi, 0x40
sub dword [ebp - 0x9c], 1
jne 0x435910
mov edi, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xac]
mov esi, dword [ebp - 0x94]
add eax, esi
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00435700
add esp, 8
test edi, edi
je 0x435a3f
mov eax, esi
mov esi, dword [ebp - 0xa4]
shl esi, 6
add esi, dword [ebp - 0xa0]
mov dword [ebp - 0x9c], eax
push eax
lea eax, [ebp - 0x90]
push esi
push eax
call fcn.00434980
mov eax, dword [ebp - 0x9c]
add esp, 0xc
add eax, 8
add esi, 0x40
mov dword [ebp - 0x9c], eax
sub edi, 1
jne 0x435973
mov edx, dword [ebp - 0x98]
mov esi, dword [ebp - 0x94]
mov edi, dword [edx + 0x200]
lea ecx, [ebp - 0x90]
mov eax, dword [edx + 0x21c]
add esi, 0xfffffff9
add edi, 0xc0
add eax, esi
mov esi, ecx
add edi, edx
sub edi, esi
mov esi, 4
nop
lea eax, [eax + 0x10]
lea ecx, [ecx + 0x10]
movups xmm0, xmmword [edi + ecx - 0x10]
movups xmm2, xmmword [eax - 0x10]
pshufd xmm1, xmm0, 0x4e
paddq xmm1, xmmword [ecx - 0x10]
pxor xmm2, xmm0
pshufd xmm0, xmm2, 0x31
pmuludq xmm0, xmm2
paddq xmm1, xmm0
movups xmmword [ecx - 0x10], xmm1
sub esi, 1
jne 0x4359d0
jmp 0x435ace
test edi, edi
je 0x4359a1
mov eax, dword [ebp - 0xa0]
push esi
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00434980
mov eax, dword [ebp - 0xa0]
add esp, 0xc
add eax, 0x40
add esi, 8
mov dword [ebp - 0xa0], eax
sub edi, 1
jne 0x435a12
jmp 0x43599b
mov edx, dword [ebp - 0x98]
jmp 0x4359a7
mov esi, 0x40
sub esi, eax
mov eax, edx
sub eax, esi
add eax, 0x200
push esi
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.00552be0
push dword [ebp - 0xa4]
lea eax, [ebp - 0x48]
add eax, esi
push edi
push eax
call fcn.00552be0
mov edx, dword [ebp - 0x98]
add esp, 0x18
mov esi, dword [ebp - 0x94]
add esi, 0xfffffff9
mov ecx, dword [edx + 0x21c]
add ecx, esi
xor eax, eax
movups xmm2, xmmword [ebp + eax - 0x48]
lea ecx, [ecx + 0x10]
movups xmm0, xmmword [ecx - 0x10]
pxor xmm0, xmm2
pshufd xmm1, xmm0, 0x31
pmuludq xmm1, xmm0
pshufd xmm0, xmm2, 0x4e
paddq xmm0, xmmword [ebp + eax - 0x90]
paddq xmm1, xmm0
movups xmmword [ebp + eax - 0x90], xmm1
add eax, 0x10
cmp eax, 0x40
jb 0x435a93
mov esi, dword [edx + 0x214]
mov edi, dword [edx + 0x210]
push 0x9e3779b1
push 0x85ebca87
push esi
push edi
call fcn.005128c0
push edx
push eax
mov eax, dword [ebp - 0x94]
add eax, 0xb
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00435610
add esp, 0x10
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xbc], edx
push 0xc2b2ae3d
push 0x27d4eb4f
push esi
push edi
call fcn.005128c0
mov esi, dword [ebp - 0x94]
not eax
not edx
add esi, 0xfffffff5
push edx
push eax
mov eax, dword [ebp - 0x98]
mov eax, dword [eax + 0x21c]
add eax, esi
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.00435610
mov dword [ebp - 0xb8], eax
add esp, 0x10
mov dword [ebp - 0xb4], edx
movups xmm0, xmmword [ebp - 0xc0]
mov eax, dword [ebx + 8]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
movups xmmword [eax], xmm0
pop esi
call fcn.00512634
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret