Function at 0x47e4a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x9e0
mov esi, esp
mov eax, dword [0x584fa8]
xor ebx, ebx
mov edi, 0xfffffec9
xor eax, ebp
mov dword [esi + 0x9d8], eax
lea eax, [ecx + 0x60]
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x24], 0
mov dword [ecx + 0x20], 0
mov dword [ecx + 0x2c], 0
mov dword [ecx + 0x28], 0
mov dword [ecx + 0x34], 0
mov dword [ecx + 0x30], 0
mov dword [ecx + 0x3c], 0
mov dword [ecx + 0x38], 0
mov dword [ecx + 0x44], 0
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x4c], 0
mov dword [ecx + 0x48], 0
mov dword [ecx + 0x54], 0
mov dword [ecx + 0x50], 0
mov dword [ecx + 0x5c], 0
mov dword [ecx + 0x58], 0
mov dword [ecx + 0x64], 0
mov dword [ecx + 0x60], 0x1571
mov dword [esi + 4], ecx
mov dword [esi + 0xc], eax
mov eax, 0x1571
nop dword [eax + eax]
mov ecx, ebx
shr ecx, 0x1e
xor ecx, eax
mov eax, 0x5851f42d
mov edx, ecx
imul edx, eax
mov eax, ecx
mov ecx, 0x4c957f2d
mov dword [esi + 8], edx
mul ecx
lea ecx, [edi + 0x138]
add edx, dword [esi + 8]
mov dword [esi + 8], ecx
mov ecx, 0x4c957f2d
imul ebx, ecx
add eax, dword [esi + 8]
mov ecx, dword [esi + 4]
adc ebx, edx
mov dword [ecx + edi*8 + 0xa20], eax
mov dword [ecx + edi*8 + 0xa24], ebx
inc edi
jne 0x47e590
mov ebx, dword [esi + 4]
xorps xmm0, xmm0
mov edi, esp
movhps xmm0, qword [0x52f858]
lea ecx, [ebx + 0xa38]
mov dword [ebx + 0xa20], 0
movups xmmword [ebx + 0xa28], xmm0
push eax
push eax
mov edx, dword [ebp + 8]
mov eax, esp
mov edx, dword [edx]
test edx, edx
mov dword [eax], edx
je 0x47e612
lock inc dword [edx]
mov edx, dword [ebp + 0xc]
mov dword [eax + 4], edx
call fcn.004abd60
mov esp, edi
lea eax, [ebx + 0xb64]
mov dword [ebx + 0xb58], 0
mov dword [ebx + 0xb5c], 0
mov dword [ebx + 0xb60], 0
mov dword [ebx + 0xb64], eax
mov dword [ebx + 0xb68], eax
lea eax, [ebx + 0xb7c]
mov dword [ebx + 0xb70], 0
mov dword [ebx + 0xb6c], 0
mov dword [ebx + 0xb78], 0
mov dword [ebx + 0xb74], 0
mov dword [ebx + 0xb7c], eax
mov dword [ebx + 0xb80], eax
lea eax, [ebx + 0xb8c]
mov dword [ebx + 0xb84], 0
mov dword [ebx + 0xb8c], 0
mov dword [ebx + 0xb90], 0
mov dword [ebx + 0xb88], eax
push 0x24
call fcn.0050317c
add esp, 4
mov ecx, eax
mov edi, eax
call fcn.004ac0c0
lea eax, [ebx + 0xbac]
mov dword [ebx + 0xb94], edi
mov byte [ebx + 0xb98], 0
mov dword [ebx + 0xba4], 0
mov dword [ebx + 0xba0], 0
mov dword [ebx + 0xbac], 0
mov dword [ebx + 0xbb0], 0
lea ecx, [ebx + 0xc04]
lea edx, [esi + 0x10]
mov dword [ebx + 0xba8], eax
lea eax, [ebx + 0xbb8]
mov dword [ebx + 0xbb8], 0
mov dword [ebx + 0xbbc], 0
mov dword [ebx + 0xbb4], eax
lea eax, [ebx + 0xbc4]
mov dword [ebx + 0xbc4], 0
mov dword [ebx + 0xbc8], 0
mov dword [ebx + 0xbc0], eax
lea eax, [ebx + 0xbf8]
mov word [ebx + 0xbcc], 0
mov dword [ebx + 0xbd4], 0
mov dword [ebx + 0xbd0], 0
mov dword [ebx + 0xbdc], 0
mov dword [ebx + 0xbd8], 0
mov dword [ebx + 0xbe4], 0
mov dword [ebx + 0xbe0], 0
mov dword [ebx + 0xbec], 0
mov dword [ebx + 0xbe8], 0
mov dword [ebx + 0xbf4], 0
mov dword [ebx + 0xbf0], 0
mov dword [ebx + 0xbf8], eax
mov dword [ebx + 0xbfc], eax
lea eax, [ebx + 0xc08]
mov dword [ebx + 0xc00], 0
mov dword [ebx + 0xc08], 0
mov dword [ebx + 0xc0c], 0
mov dword [ebx + 0xc04], eax
push 0x53bacc
push eax
push edx
call fcn.004835e0
mov eax, dword [ebp + 0xc]
cmp byte [eax + 4], 0
je 0x47e88b
call fcn.0042c620
mov ecx, edx
mov edi, 1
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov edx, ecx
shr edx, 0x1e
xor edx, eax
mov eax, 0x5851f42d
mov ebx, edx
imul ebx, eax
mov eax, edx
mov edx, 0x4c957f2d
mul edx
add edx, ebx
mov ebx, 0x4c957f2d
imul ecx, ebx
add eax, edi
adc ecx, edx
mov dword [esi + edi*8 + 0x10], eax
mov dword [esi + edi*8 + 0x14], ecx
inc edi
cmp edi, 0x138
jne 0x47e820
mov dword [esi + 0x9d0], 0
push 0x9c8
lea eax, [esi + 0x10]
push eax
push dword [esi + 0xc]
call fcn.00506bc0
add esp, 0xc
xorps xmm0, xmm0
mov ebx, dword [esi + 4]
movhps xmm0, qword [0x52f858]
movups xmmword [ebx + 0xa28], xmm0
mov ecx, dword [esi + 0x9d8]
xor ecx, ebp
call fcn.005031f1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8