Function at 0x420860
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
fld qword [0x43f680]
fmul qword [0x43f5e8]
fadd dword [0x442a20]
fmul dword [0x442360]
fstp dword [0x442360]
fld qword [0x43f680]
fsub qword [0x43afa8]
fstp qword [0x43f680]
dec dword [0x43d764]
mov ax, word [0x440ea0]
mov ecx, dword [0x43d088]
mov edx, dword [0x43d764]
cwde
not ecx
add eax, ecx
or edx, 0x26359b94
cmp edx, eax
jg 0x4208e4
inc word [0x44103e]
mov ax, word [0x44103e]
mov ecx, dword [0x43c2dc]
mov edx, dword [0x43d164]
cwde
xor eax, 0x4db8357c
or ecx, eax
or edx, ecx
mov dword [0x43c2dc], edx
mov eax, dword [0x43c768]
mov cx, word [0x4419ae]
imul eax, eax, 0x1e5569a8
movsx edx, cx
not edx
mov dword [ebp - 4], 0
cmp edx, eax
je 0x420929
mov eax, dword [0x43c220]
movzx ecx, word [0x441032]
sar eax, 6
add eax, 0x39b92125
xor eax, 0xf8cc7101
imul ecx, eax
mov word [0x441032], cx
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, edi
cdq
and edx, 0x1f
add eax, edx
mov edx, dword [0x43c6e4]
mov ebx, eax
sub edx, 0x15a670d4
sar ebx, 5
cmp edx, 0x8a979c8b
je 0x42095a
add dword [0x43cd04], 0x142472c5
fld dword [0x442e04]
mov esi, dword [ebp + 8]
fmul dword [0x442f60]
mov eax, edi
and eax, 0x1f
push esi
fsub qword [0x43fdf0]
mov dword [ebp + 0xc], eax
fmul dword [0x443478]
fstp dword [0x443478]
call fcn.004169d0
add eax, edi
or edi, 0xffffffff
add dword [0x43c3e8], edi
mov ecx, dword [0x43c3e8]
add esp, 4
cmp ecx, 0x79ccb315
jge 0x4209e1
fld dword [0x44241c]
fld dword [0x442e08]
fmul dword [0x4430c4]
fsubp st(1)
fstp dword [0x44241c]
fld dword [0x442e08]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [0x442e08]
fld dword [0x4430c4]
fadd st(1)
fstp dword [0x4430c4]
jmp 0x420a01
fld dword [0x44279c]
fmul qword [0x43fee8]
fsub dword [0x443480]
fmul dword [0x442644]
fstp dword [0x442644]
fld1
mov edx, dword [esi + 4]
shl edx, 5
cmp edx, eax
jge 0x420a2d
add eax, 0x1f
fstp st(0)
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
push eax
push esi
call fcn.0042b5c0
add esp, 8
test eax, eax
jne 0x420ce3
fld1
add dword [0x43cd08], 0x24400800
inc dword [0x43d34c]
mov eax, dword [0x43d34c]
mov ecx, dword [0x43c200]
imul eax, eax, 0xd3fc8906
shl ecx, 7
or ecx, eax
cmp ecx, 0x39592689
jg 0x420a6f
movzx edx, word [0x44160c]
add edx, 0x4aefceee
mov word [0x44160c], dx
test ebx, ebx
jle 0x420b38
mov eax, dword [0x43ced0]
add eax, 0x1b47f5d7
or eax, 0xc52f2be4
add dword [0x43d02c], eax
mov eax, dword [esi + 4]
dec eax
cmp eax, ebx
jl 0x420ab0
mov edx, eax
sub edx, ebx
add edx, edx
add edx, edx
mov ecx, dword [esi + 8]
mov edi, dword [edx + ecx]
mov dword [ecx + eax*4], edi
dec eax
sub edx, 4
cmp eax, ebx
jge 0x420a9c
or edi, 0xffffffff
mov ecx, dword [0x43c7b0]
and ecx, 0xffffffe0
cmp ecx, 0x54a90920
jne 0x420af3
mov dx, word [0x440f28]
add word [0x440f28], di
movsx ecx, dx
imul ecx, ecx, 0x32b47d58
mov edx, 0x7d2757e3
sub edx, ecx
cmp edx, 0x82aa5d21
jle 0x420af3
fld qword [0x43f4d8]
fstp dword [0x442434]
test eax, eax
jl 0x420b07
sub eax, 1
mov ecx, dword [esi + 8]
mov dword [ecx + eax*4 + 4], 0
jns 0x420af7
add word [0x440fb8], di
mov dx, word [0x440fb8]
mov ecx, dword [0x43d87c]
movsx eax, dx
imul eax, eax, 0xf1754d29
or ecx, eax
cmp ecx, 0xf30dff6f
jne 0x420b38
mov dword [0x43cce4], 0x8316ff2c
fld dword [0x442264]
fsub dword [0x442024]
fsub dword [0x442de0]
fld dword [0x442544]
fsub dword [0x441eec]
fadd dword [0x442d4c]
fld dword [0x442d4c]
fsub st(3)
fstp dword [0x442d4c]
fld dword [0x442024]
fadd st(3)
fstp dword [0x442024]
fld dword [0x442264]
fsubrp st(3)
fxch st(2)
fstp dword [0x442264]
fcompi st(1)
fstp st(0)
jbe 0x420b98
xor dword [0x43d480], 0x9b58e8e7
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x420c8c
mov dword [0x43c020], 0xfe6799fa
cmp ebx, dword [esi + 4]
mov edx, ebx
jge 0x420c5b
mov ebx, 0x20
sub ebx, eax
nop
mov eax, dword [0x43ced0]
imul eax, eax, 0xcad7b989
mov dword [0x43ced0], eax
mov ecx, dword [esi + 8]
mov edi, dword [ecx + edx*4]
mov ecx, ebx
shr edi, cl
mov ecx, dword [0x43c6d0]
mov eax, 0x1c654d7c
sub eax, ecx
mov ecx, dword [ebp + 0xc]
and eax, 0x84f08f42
xor dword [0x43d4dc], eax
mov eax, dword [esi + 8]
shl dword [eax + edx*4], cl
movzx ecx, word [0x44142e]
lea eax, [eax + edx*4]
add ecx, 0x352bb5f6
mov word [0x44142e], cx
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 4]
or dword [eax + edx*4], ecx
lea eax, [eax + edx*4]
fld dword [0x44201c]
inc edx
fmul dword [0x443360]
mov dword [ebp - 4], edi
fsub qword [0x440458]
fstp dword [0x44291c]
mov ax, word [0x441042]
cwde
imul eax, eax, 0x2e6d14e
and eax, 0xa222cef8
sub dword [0x43ceb4], eax
cmp edx, dword [esi + 4]
jl 0x420bc0
mov cx, word [0x441050]
inc word [0x441050]
movsx edx, cx
or edx, 0x7febef5a
cmp edx, 0xcc71f2e8
je 0x420c8c
fld dword [0x4425e0]
fsub qword [0x440c90]
fstp dword [0x4425e0]
fld dword [0x4424c0]
fld dword [0x442000]
fadd qword [0x43ffb0]
fsub dword [0x442258]
fxch st(1)
fucompi st(1)
fstp st(0)
lahf
test ah, 0x44
jnp 0x420cd7
fld dword [0x442f70]
pop edi
fmul qword [0x43eb48]
pop esi
xor eax, eax
pop ebx
fadd dword [0x442c78]
fadd dword [0x442434]
fstp dword [0x442434]
mov esp, ebp
pop ebp
ret
add dword [0x43d264], 0xf3da3bfa
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret