Function at 0x1001cf30
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
fld qword [0x452f84a8]
push ebx
push ebp
fstp qword [esp + 0x1c]
fld qword [0x452f84a8]
mov ebp, dword [esp + 0x34]
push esi
fstp qword [esp + 0x28]
push edi
xor edi, edi
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x14], esi
lea esp, [esp]
test esi, esi
mov eax, dword [esp + 0x44]
jne 0x1001cf6c
mov eax, dword [esp + 0x40]
push 0
push eax
mov eax, dword [0x453e0d24]
push eax
call fcn.10028b60
xor eax, eax
add esp, 0xc
cmp word [0x453c09c0], ax
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], eax
jbe 0x1001d07d
shl esi, 7
add esi, dword [esp + 0x14]
mov eax, 0x40
sub eax, dword [esp + 0x38]
shl esi, 5
add esi, 0x453782f8
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x38]
sub dword [esp + 0x10], ecx
jns 0x1001d036
nop
mov eax, edi
mov edx, ebx
mov ecx, ebp
call fcn.10001080
xor esi, esi
test ebp, ebp
mov edi, eax
mov ebx, edx
jle 0x1001d02c
jmp 0x1001cfe0
mov eax, dword [0x453e0d24]
cmp eax, 0x3ec
jne 0x1001d016
cmp dword [0x453c04b8], 0
je 0x1001d016
mov edx, dword [0x453c0434]
mov ecx, dword [0x453c0430]
sub edx, ecx
cmp edx, 1
jl 0x1001d016
movzx eax, byte [ecx]
add ecx, 1
mov dword [0x453c0430], ecx
jmp 0x1001d01f
push eax
call fcn.10029e60
add esp, 4
mov ecx, esi
shl eax, cl
add esi, 8
or edi, eax
cmp esi, ebp
jl 0x1001cfe0
add dword [esp + 0x10], ebp
js 0x1001cfc0
mov esi, dword [esp + 0x1c]
mov ecx, 0x40
sub ecx, dword [esp + 0x10]
mov eax, edi
sub ecx, dword [esp + 0x38]
mov edx, ebx
call fcn.10001080
mov ecx, dword [esp + 0x20]
call fcn.100010d0
movzx ecx, word [0x453c09c0]
mov word [esi], ax
mov eax, dword [esp + 0x18]
add eax, 1
add esi, 2
cmp eax, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
jl 0x1001cfb5
mov esi, dword [esp + 0x14]
add esi, 1
cmp esi, 2
mov dword [esp + 0x14], esi
jl 0x1001cf60
movzx edx, word [0x453c09c0]
sub edx, 1
xor eax, eax
cmp edx, 4
mov dword [esp + 0x1c], edx
jl 0x1001d237
jmp 0x1001d0b0
movzx edx, word [eax*2 + 0x4537931a]
movzx ecx, word [eax*2 + 0x453782f8]
movzx ebx, word [eax*2 + 0x453782fa]
sub ecx, edx
mov esi, ecx
sar esi, 0x1f
mov edi, esi
xor edi, ecx
movzx ecx, word [eax*2 + 0x45379318]
sub ecx, ebx
sub edi, esi
mov dword [esp + 0x20], edi
mov edi, ecx
sar edi, 0x1f
fild dword [esp + 0x20]
mov ebp, edi
xor ebp, ecx
movzx ecx, word [eax*2 + 0x4537931c]
sub ebp, edi
mov dword [esp + 0x20], ebp
sub ebx, ecx
mov edx, eax
and edx, 1
lea edx, [esp + edx*8 + 0x24]
mov ebp, ebx
sar ebp, 0x1f
fadd qword [edx]
mov esi, eax
not esi
and esi, 1
fstp qword [edx]
lea esi, [esp + esi*8 + 0x24]
fild dword [esp + 0x20]
mov dword [esp + 0x20], ebp
xor ebp, ebx
sub ebp, dword [esp + 0x20]
fadd qword [esi]
movzx ebx, word [eax*2 + 0x4537931a]
mov dword [esp + 0x20], ebp
fstp qword [esi]
movzx ebp, word [eax*2 + 0x453782fc]
fild dword [esp + 0x20]
sub ebx, ebp
mov ebp, ebx
sar ebp, 0x1f
mov dword [esp + 0x20], ebp
xor ebp, ebx
sub ebp, dword [esp + 0x20]
movzx ebx, word [eax*2 + 0x453782fc]
mov dword [esp + 0x20], ebp
movzx ebp, word [eax*2 + 0x4537931e]
lea ecx, [eax - 1]
mov edi, ecx
sub ebx, ebp
and edi, 1
lea edi, [esp + edi*8 + 0x24]
mov ebp, ebx
sar ebp, 0x1f
fadd qword [edi]
not ecx
and ecx, 1
lea ecx, [esp + ecx*8 + 0x24]
fstp qword [edi]
fild dword [esp + 0x20]
mov dword [esp + 0x20], ebp
xor ebp, ebx
sub ebp, dword [esp + 0x20]
fadd qword [ecx]
movzx ebx, word [eax*2 + 0x453782fe]
mov dword [esp + 0x20], ebp
fstp qword [ecx]
fild dword [esp + 0x20]
fadd qword [edx]
fstp qword [edx]
movzx edx, word [eax*2 + 0x4537931c]
sub edx, ebx
mov ebx, edx
sar ebx, 0x1f
mov ebp, ebx
xor ebp, edx
sub ebp, ebx
movzx edx, word [eax*2 + 0x453782fe]
mov dword [esp + 0x20], ebp
add eax, 4
fild dword [esp + 0x20]
fadd qword [esi]
fstp qword [esi]
movzx esi, word [eax*2 + 0x45379318]
sub edx, esi
mov esi, edx
sar esi, 0x1f
mov ebx, esi
xor ebx, edx
movzx edx, word [eax*2 + 0x45379316]
sub ebx, esi
movzx esi, word [eax*2 + 0x453782f8]
mov dword [esp + 0x20], ebx
sub edx, esi
mov esi, edx
fild dword [esp + 0x20]
sar esi, 0x1f
fadd qword [edi]
fstp qword [edi]
mov edi, esi
xor edi, edx
mov edx, dword [esp + 0x1c]
sub edi, esi
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fadd qword [ecx]
fstp qword [ecx]
lea ecx, [edx - 3]
cmp eax, ecx
jl 0x1001d0b0
cmp eax, edx
jge 0x1001d2ad
jmp 0x1001d240
movzx esi, word [eax*2 + 0x4537931a]
movzx ecx, word [eax*2 + 0x453782f8]
sub ecx, esi
mov esi, ecx
sar esi, 0x1f
mov ebx, esi
xor ebx, ecx
movzx ecx, word [eax*2 + 0x45379318]
sub ebx, esi
movzx esi, word [eax*2 + 0x453782fa]
mov dword [esp + 0x20], ebx
sub ecx, esi
mov edi, eax
fild dword [esp + 0x20]
and edi, 1
lea edi, [esp + edi*8 + 0x24]
mov esi, ecx
sar esi, 0x1f
fadd qword [edi]
mov ebx, esi
xor ebx, ecx
sub ebx, esi
fstp qword [edi]
mov edi, eax
not edi
mov dword [esp + 0x20], ebx
and edi, 1
lea edi, [esp + edi*8 + 0x24]
fild dword [esp + 0x20]
add eax, 1
cmp eax, edx
fadd qword [edi]
fstp qword [edi]
jl 0x1001d240
fld qword [esp + 0x24]
pop edi
fdiv qword [esp + 0x28]
pop esi
pop ebp
pop ebx
fldln2
fxch st(1)
fyl2x
fmul qword [0x452f8fa0]
add esp, 0x24
ret