Function at 0x415a70
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x420
push ebx
mov ebx, dword [esp + 0x428]
push ebp
push esi
push edi
lea edi, [ebx + 0x3f]
shr edi, 6
mov dword [esp + 0x14], edi
xor esi, esi
lea ecx, [ecx]
push 8
push edi
call fcn.004b9228
add esp, 8
test eax, eax
je 0x415ba1
push 8
push edi
mov dword [esp + esi + 0x38], eax
call fcn.004b9228
add esp, 8
test eax, eax
je 0x415bbd
mov dword [esp + esi + 0x230], eax
add esi, 4
cmp esi, 0x200
jb 0x415a90
mov eax, dword [esp + 0x438]
lea edx, [esp + 0x30]
push edx
push eax
push ebx
call fcn.004159e0
mov edx, dword [esp + 0x44c]
add esp, 0xc
lea ecx, [esp + 0x230]
push ecx
push edx
push ebx
call fcn.004159e0
mov ecx, dword [esp + 0x448]
add esp, 0xc
lea eax, [esp + 0x130]
push eax
push ecx
push ebx
call fcn.004159e0
mov eax, dword [esp + 0x450]
add esp, 0xc
lea edx, [esp + 0x330]
push edx
push eax
push ebx
call fcn.004159e0
xor esi, esi
add esp, 0xc
xor ebp, ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebp
lea esp, [esp]
cmp esi, ebx
jae 0x415cb6
mov eax, esi
and eax, 0x3f
mov ebx, dword [eax*8 + 0x5aad10]
mov edx, dword [eax*8 + 0x5aad14]
shr esi, 6
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], esi
mov edi, ebp
cmp ebp, 0x80
jae 0x415c05
jmp 0x415b80
mov ecx, dword [esp + edi*4 + 0x230]
mov eax, dword [ecx + esi*8]
mov ecx, dword [ecx + esi*8 + 4]
and eax, ebx
and ecx, edx
or eax, ecx
jne 0x415bd9
inc edi
cmp edi, 0x80
jb 0x415b80
jmp 0x415c05
lea eax, [edi*8]
push eax
push 0x5adcf0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
lea ecx, [edi*8]
push ecx
push 0x5adcf0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov eax, dword [esp + ebp*4 + 0x30]
mov ecx, dword [esp + edi*4 + 0x30]
mov edx, dword [esp + edi*4 + 0x230]
mov dword [esp + ebp*4 + 0x30], ecx
mov dword [esp + edi*4 + 0x30], eax
mov eax, dword [esp + ebp*4 + 0x230]
mov dword [esp + ebp*4 + 0x230], edx
mov dword [esp + edi*4 + 0x230], eax
cmp edi, 0x80
je 0x415c9a
inc edi
cmp edi, 0x80
jae 0x415c95
mov edi, edi
mov eax, dword [esp + edi*4 + 0x230]
mov edx, dword [eax + esi*8 + 4]
mov ecx, dword [eax + esi*8]
and edx, dword [esp + 0x24]
and ecx, ebx
or ecx, edx
je 0x415c8c
cmp dword [esp + 0x14], 0
jbe 0x415c8c
mov edx, dword [esp + ebp*4 + 0x230]
mov esi, dword [esp + ebp*4 + 0x30]
mov ecx, dword [esp + edi*4 + 0x30]
mov ebx, dword [esp + 0x14]
sub edx, eax
sub esi, eax
sub ecx, eax
jmp 0x415c60
mov ebp, dword [edx + eax]
xor dword [eax], ebp
mov ebp, dword [edx + eax + 4]
xor dword [eax + 4], ebp
mov ebp, dword [esi + eax]
xor dword [ecx + eax], ebp
mov ebp, dword [esi + eax + 4]
xor dword [ecx + eax + 4], ebp
add eax, 8
dec ebx
jne 0x415c60
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
inc edi
cmp edi, 0x80
jb 0x415c20
inc ebp
mov dword [esp + 0x2c], ebp
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x434]
inc esi
mov dword [esp + 0x28], esi
cmp ebp, 0x80
jb 0x415b40
xor ecx, ecx
xor edi, edi
cmp ebx, ecx
jbe 0x415d54
mov eax, edi
and eax, 0x3f
mov esi, dword [eax*8 + 0x5aad10]
mov eax, dword [eax*8 + 0x5aad14]
mov edx, edi
shr edx, 6
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], eax
mov esi, ebp
cmp ebp, 0x40
jae 0x415d35
mov dword [esp + 0x14], 0x5aad10
mov ecx, dword [esp + esi*4 + 0x30]
mov eax, dword [ecx + edx*8]
mov ecx, dword [ecx + edx*8 + 4]
and eax, dword [esp + 0x20]
and ecx, dword [esp + 0x24]
or eax, ecx
je 0x415d21
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
or dword [esp + 0x18], ecx
or dword [esp + 0x1c], eax
add dword [esp + 0x14], 8
inc esi
cmp esi, 0x40
jb 0x415cf9
mov ebx, dword [esp + 0x434]
xor ecx, ecx
mov eax, dword [esp + 0x438]
mov edx, dword [esp + 0x18]
mov dword [eax + edi*8], edx
mov edx, dword [esp + 0x1c]
mov dword [eax + edi*8 + 4], edx
inc edi
cmp edi, ebx
jb 0x415cc2
xor esi, esi
mov eax, dword [esp + esi + 0x30]
push eax
call fcn.004b7229
mov ecx, dword [esp + esi + 0x234]
add esp, 4
push ecx
call fcn.004b7229
add esi, 4
add esp, 4
cmp esi, 0x200
jb 0x415d56
cmp ebp, 0x40
jbe 0x415d90
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x420
ret
pop edi
mov eax, 0x40
pop esi
sub eax, ebp
pop ebp
pop ebx
add esp, 0x420
ret