Function at 0x10002080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x134
mov eax, dword [0x10019078]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push esi
push edi
push 4
call fcn.10003dc1
add esp, 4
push 0x3c0
mov ebx, eax
call fcn.10003514
add esp, 4
push 0x104
push 0x1001aed8
xor esi, esi
push 0x10000000
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], esi
mov dword [0x10019bf8], 0x13
call dword [0x10011028]
push 0x100132b0
push esi
push 0x1f0001
call dword [0x10011048]
test eax, eax
je 0x100020fb
push esi
call dword [0x10011078]
mov edi, dword [0x1001ae9c]
lea eax, [esi + 2]
push eax
lea ecx, [esp + 0x1c]
call fcn.10001240
inc esi
xor eax, 0x6d
lea ecx, [esi + 2]
add esp, 4
add edi, eax
cmp ecx, 0x6d
jl 0x10002101
fld qword [0x100133a0]
mov dword [0x10019c04], esi
fld qword [0x10013398]
mov dword [0x1001ae9c], edi
mov dword [0x10019bf8], 1
call fcn.1000b06a
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fldz
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100021a0
fld qword [0x100133a0]
call fcn.1000b200
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld st(0)
fchs
fstp dword [esp + 0x18]
fld qword [0x100133a0]
fxch st(1)
call fcn.1000b06a
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x100021a0
mov dword [0x10019bf8], 0xe48
mov edx, dword [0x1001ad88]
push edi
push edx
push 0x100132c4
mov dword [0x1001aed0], 0x100132c4
call dword [0x10011050]
mov dword [0x1001b4f0], eax
cmp eax, 0xffffffff
jne 0x100021cf
call dword [0x1001103c]
jmp 0x100021d1
xor eax, eax
push 0xffffffffffffffff
push 0x1001aed8
mov dword [0x10019c04], eax
push 0x104
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x34]
push ecx
call fcn.10003a11
add esp, 0x14
push 0x1001aed8
call dword [0x10011148]
mov esi, dword [0x10011054]
push 0x100132d0
push 0x1001aed8
call esi
push 0x100132d4
push 0x1001aed8
call esi
push 0x104
push 0
push 0x1001ad90
call fcn.100078d0
add esp, 0xc
lea edx, [esp + 0x30]
push edx
call dword [0x1001114c]
fld qword [0x10013390]
fabs
mov dword [0x10019bf8], 0xffd30cec
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x10]
fld qword [0x10013388]
call fcn.1000b0d0
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
lea eax, [esp + 0x30]
fchs
lea edx, [eax + 1]
fmul dword [esp + 0x10]
fstp dword [0x1001ae98]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10002280
mov ecx, dword [0x1001b4f4]
sub eax, edx
mov dword [ecx], eax
call fcn.10001040
lea edx, [esp + 0x14]
push edx
call fcn.10001cc0
add esp, 4
push 0x1001ad90
call dword [0x1001101c]
cmp eax, 1
jne 0x100022c0
push 0x10
push 0x1001ad90
call dword [0x10011040]
push 0xa
call fcn.10002d09
add esp, 4
push 0x20
mov dword [0x1001ae94], eax
call fcn.10003dc1
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
add esp, 4
mov esi, eax
mov dword [eax + 0x1c], ecx
call fcn.10001440
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.100014b0
mov ecx, dword [0x1001b4f0]
add esp, 0xc
lea eax, [esp + 0x28]
push eax
push ecx
call dword [0x10011034]
mov dword [0x1001ad88], eax
test eax, eax
jne 0x10002335
mov dword [0x1001ad88], 0xf
call dword [esp + 0x14]
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebx
xor ecx, esp
mov dword [0x10019bf8], 0xffff28a6
mov eax, 1
call fcn.10002d14
mov esp, ebp
pop ebp
ret