Function at 0x413f00
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
ja 0x413f19
call fcn.0043ae00
jmp fcn.00413f00
sub esp, 0x50
xor ebx, ebx
cmp dword [0xf0503c], ebx
jne 0x413f75
mov dword [esp], 0xafc7c
lea ebx, [0xf13380]
mov dword [esp + 4], ebx
add dword [esp + 4], 0x90
call fcn.00427e90
mov eax, dword [esp + 8]
lea ebx, [0xf0503c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00413c30
xor ebx, ebx
cmp dword [0xf0503c], ebx
jne 0x413f75
lea esi, [0x8a5a40]
lea edi, [esp]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00417e10
xor esi, esi
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
xor ecx, ecx
mov edx, eax
cmp ecx, edi
jge 0x413fa7
mov ebp, dword [eax]
add esi, ebp
mov ebp, esi
shl esi, 0xa
add esi, ebp
mov ebp, esi
shr esi, 6
mov edx, esi
xor esi, ebp
add eax, 4
inc ecx
cmp ecx, edi
jl 0x413f8b
mov edi, esi
add edi, dword [esp + 0x58]
mov ecx, edi
shl edi, 0xa
add edi, ecx
mov ecx, edi
shr edi, 6
xor edi, ecx
mov ecx, edi
shl edi, 3
add edi, ecx
mov ecx, edi
shr edi, 0xb
xor edi, ecx
mov eax, 0xba6a1fbd
mul edi
mov ebx, edx
shr ebx, 0x11
imul ebx, ebx, 0x2bf1f
mov ecx, edi
mov dword [esp + 0x20], edi
sub ecx, ebx
mov ebx, dword [0xf0503c]
cmp ebx, 0
je 0x41426d
mov dword [esp + 0x1c], ecx
lea esi, [ebx]
cmp ecx, 0x2bf1f
jae 0x414266
lea esi, [esi + ecx*4]
mov eax, dword [esi]
xor ebx, ebx
cmp eax, ebx
je 0x4140a2
mov ebp, dword [eax + 8]
mov ebx, dword [esp + 0x54]
cmp ebp, ebx
jne 0x414096
mov ebp, dword [eax + 0xc]
cmp ebp, edi
jne 0x414096
mov ebp, dword [eax + 0x10]
mov ebx, dword [esp + 0x58]
cmp ebp, ebx
jne 0x414096
mov dword [esp + 0x28], eax
mov dword [esp], eax
call fcn.00413de0
mov edx, dword [esp + 4]
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], edx
mov dword [esp], edx
mov dword [esp + 0x48], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
call fcn.00414280
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
movzx ebx, byte [esp + 0x18]
cmp bl, 0
je 0x414096
mov dword [esp + 0x6c], eax
add esp, 0x50
ret
mov eax, dword [eax]
xor ebx, ebx
cmp eax, ebx
jne 0x414013
cmp byte [esp + 0x68], 0
jne 0x4140b5
mov dword [esp + 0x6c], 0
add esp, 0x50
ret
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x54]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00413d30
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov dword [esp], eax
call fcn.00413de0
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x40], ecx
mov ebp, dword [esp + 0x5c]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x30], ecx
cmp ecx, eax
jge 0x414113
mov eax, ecx
mov dword [esp + 0x38], esi
mov dword [esp], esi
mov dword [esp + 0x2c], ebp
mov dword [esp + 4], ebp
mov ebx, eax
shl ebx, 2
mov dword [esp + 8], ebx
call fcn.0043ce00
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x58]
mov dword [eax + 0x10], ebp
mov dword [esp], eax
cmp dword [esp], 0
je 0x41425b
mov ebx, dword [0xf0503c]
cmp ebx, 0
je 0x414254
mov ebp, dword [esp + 0x1c]
lea esi, [ebx]
cmp ebp, 0x2bf1f
jae 0x41424d
lea esi, [esi + ebp*4]
mov ebp, dword [esi]
mov dword [esp + 4], ebp
call fcn.00413c30
mov ebx, dword [0xf0503c]
cmp ebx, 0
je 0x414246
mov ebp, dword [esp + 0x1c]
lea esi, [ebx]
cmp ebp, 0x2bf1f
jae 0x41423f
lea esi, [esi + ebp*4]
mov dword [esp], esi
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00413c30
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x54], 1
jne 0x414203
mov dword [esp], eax
cmp dword [esp], 0
je 0x4141fb
add dword [esp], 4
mov ebx, dword [0xf05060]
mov dword [esp + 4], ebx
call fcn.00413c30
lea ebx, [0xf05060]
mov dword [esp], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00413c30
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x6c], ebx
add esp, 0x50
ret
mov dword [0], eax
jmp 0x4141c6
mov dword [esp], eax
cmp dword [esp], 0
je 0x414237
add dword [esp], 4
mov ebx, dword [0xf05038]
mov dword [esp + 4], ebx
call fcn.00413c30
lea ebx, [0xf05038]
mov dword [esp], ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 4], ebx
call fcn.00413c30
jmp 0x4141ef
mov dword [0], eax
jmp 0x41420c
call fcn.00416e50
ud2
mov dword [ebx], eax
jmp 0x41418d
call fcn.00416e50
ud2
mov dword [ebx], eax
jmp 0x41415e
mov dword [0], eax
jmp 0x41414f
call fcn.00416e50
ud2
mov dword [ebx], eax
jmp 0x413ff2