Function at 0x420760
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov ax, word [0x48d344]
movzx ecx, word [0x494724]
cwde
imul eax, eax, 0x5d4cdc0d
and ecx, eax
mov word [0x494724], cx
push ebx
fld dword [0x4a8e70]
push esi
fld qword [0x46b4c0]
xor esi, esi
fld dword [0x4afa80]
push edi
mov edi, dword [ebp + 0x10]
faddp st(2)
lea ebx, [esi + 1]
fsubrp st(1)
fstp qword [0x46b4c0]
mov eax, dword [0x455880]
mov edx, dword [0x444aec]
shl eax, 0xa
sub eax, edx
add dword [0x455b58], eax
cmp dword [ebp + 8], esi
jle 0x420a0c
jmp 0x4207d0
fld dword [0x4a98b4]
fadd dword [0x49e9c4]
fsub dword [0x4a3894]
fadd qword [0x47d318]
fstp qword [0x47d318]
xor dword [0x449208], 0x608f03c2
mov eax, dword [0x450d88]
mov ecx, dword [0x44c4a4]
add dword [0x450d88], ebx
sub ecx, eax
or ecx, 0x53d56626
cmp ecx, 0x7c70092b
je 0x420837
dec word [0x495d5c]
mov dx, word [0x495d5c]
movsx eax, dx
or eax, 0x52c942bd
xor dword [0x43f894], eax
jmp 0x420849
movzx eax, word [0x4952a4]
and eax, 0x17932ec4
mov word [0x4952a4], ax
mov ecx, dword [0x453b18]
mov edx, dword [0x442b80]
mov eax, dword [ebp + 0xc]
xor ecx, edx
xor ecx, 0x3efb077b
mov dword [0x453b18], ecx
mov ecx, dword [eax]
xor eax, eax
push eax
mov eax, dword [ebp + 0x14]
push eax
push 0
push ecx
call fcn.00435ea0
add dword [0x451bdc], 0x1d040a01
fld dword [0x4a48b4]
fld dword [0x49d594]
add dword [ebp + 0xc], 4
fadd qword [0x467f98]
add eax, esi
fsubp st(1)
fstp dword [0x4a48b4]
add dword [0x451e80], ebx
mov ecx, dword [0x451e80]
xor ecx, 0xc7e18327
or dword [0x43eedc], ecx
add word [0x495d00], bx
mov cx, word [0x495d00]
movsx ecx, cx
or ecx, 0xd763146b
cmp ecx, 0x781eddf1
jge 0x420912
mov ecx, dword [0x449424]
or ecx, 0xe4042bc3
cmp ecx, 0xf9c9f97b
jne 0x420912
mov ecx, dword [0x442f80]
lea ebx, [ecx*8]
mov ecx, dword [0x4488d4]
sub ecx, 0x2cdad89b
and ecx, ebx
or dword [0x440630], ecx
mov ebx, 1
cmp eax, esi
sbb ecx, ecx
add dword [0x43c8c0], ebx
neg ecx
add edx, ecx
mov ecx, dword [0x43c8c0]
movzx esi, word [0x493de0]
xor ecx, 0xf45e926d
sub esi, ecx
mov word [0x493de0], si
mov ecx, dword [0x44e420]
add eax, dword [edi]
or ecx, 0x77c29e30
add dword [0x4426d4], ecx
cmp eax, dword [edi]
sbb ecx, ecx
neg ecx
add edx, ecx
mov ecx, dword [0x43efd0]
add ecx, 0x5a8a3c56
cmp ecx, 0x47f6de2d
jl 0x420984
fld dword [0x4ab7e8]
fmul dword [0x4a6b08]
fmul dword [0x4a6390]
fstp dword [0x4a6390]
mov esi, edx
mov dx, word [0x4910e0]
movsx ecx, dx
mov edx, dword [0x45476c]
not ecx
imul edx, ecx
mov dword [0x45476c], edx
mov dword [edi], eax
mov ax, word [0x492c62]
mov ecx, dword [0x44eddc]
add word [0x492c62], bx
cwde
imul eax, eax, 0xabc4bc5b
shl ecx, 4
or eax, 0x43f66b55
or ecx, 0xed7b0f3a
add edi, 4
cmp ecx, eax
jl 0x4209dc
and dword [0x4463ac], 0x856f3eb8
fld dword [0x4a4480]
mov eax, dword [ebp + 8]
fld qword [0x45faf8]
sub eax, ebx
fmul qword [0x47c328]
mov dword [ebp + 8], eax
fadd qword [0x469388]
fsubp st(1)
fstp dword [0x4a4480]
test eax, eax
jg 0x4207d0
fld dword [0x49bdbc]
mov edx, 0x7941b3a
fld dword [0x49ef14]
fadd dword [0x4aa704]
fadd dword [0x4b0818]
fsubp st(1)
fstp dword [0x49bdbc]
fld dword [0x4b0818]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4b0818]
fsubr dword [0x49ef14]
fstp dword [0x49ef14]
or dword [0x453864], 0x58b0a394
lea esp, [esp]
add word [0x4927b8], bx
movzx eax, word [0x4927b8]
movsx ecx, ax
or ecx, 0x8b8c3d62
mov dword [0x44c934], ecx
add dword [edi], esi
movzx eax, word [0x48d71c]
movsx ecx, ax
movzx eax, word [0x4954e6]
cwde
and eax, ecx
mov ecx, dword [0x446cb0]
and ecx, eax
and ecx, 0x18f5e692
mov dword [0x446cb0], ecx
cmp dword [edi], esi
fld dword [0x4b3120]
fsub dword [0x4aa018]
sbb esi, esi
fstp dword [0x4b3120]
xor dword [0x43ce90], edx
neg esi
add edi, 4
test esi, esi
jne 0x420a60
movzx edx, word [0x48d972]
pop edi
xor edx, 0x5e682459
pop esi
mov word [0x48d972], dx
pop ebx
pop ebp
ret