Function at 0x1001ad70
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x27c8
call fcn.100732c0
mov eax, dword [0x100c77f4]
xor eax, ebp
mov dword [ebp - 8], eax
fld qword [0x100edf40]
push ebx
push esi
fstp qword [ebp - 0x277c]
fld qword [0x100edf58]
push edi
mov ecx, 0x35e
fstp qword [ebp - 0x2774]
mov esi, 0x100f4ab8
lea edi, [ebp - 0x26d4]
rep movsd dword es:[edi], dword [esi]
push 0x10
pop ecx
mov esi, 0x100ee0a0
lea edi, [ebp - 0x27c4]
rep movsd dword es:[edi], dword [esi]
xor edi, edi
xor edx, edx
inc edi
mov dword [ebp - 0x2724], edx
cmp dword [ebp + 8], edx
je 0x1001addc
mov dword [ebp - 0x2718], edx
jmp 0x1001adf8
push 0x16
mov dword [ebp - 0x2718], edi
pop eax
movzx ecx, byte [eax + 0x100ee370]
and dword [ebp - 0x2718], ecx
inc eax
cmp eax, 0x21
jle 0x1001ade5
mov eax, dword [0x100edd24]
mov dword [ebp - 0x271c], eax
cmp dword [ebp + 8], edx
jne 0x1001ae1d
cmp dword [ebp - 0x2718], edx
jne 0x1001ae1d
push 0x60
pop ecx
cmp eax, ecx
jg 0x1001ae1d
mov dword [ebp - 0x271c], ecx
cmp dword [0x100ede54], edx
je 0x1001ae2d
mov dword [ebp - 0x2700], edi
jmp 0x1001ae38
mov eax, dword [0x100edcf8]
mov dword [ebp - 0x2700], eax
cmp dword [0x100edb78], edx
je 0x1001ae51
push 2
pop eax
cmp dword [ebp - 0x2700], eax
jl 0x1001ae51
mov dword [ebp - 0x2700], eax
mov ecx, dword [0x100ee0a8]
mov eax, dword [0x100ee0a0]
mov dword [ebp - 0x2730], ecx
mov esi, ecx
mov dword [ebp - 0x2720], eax
mov dword [ebp - 0x2748], eax
cmp dword [0x100edba0], edx
je 0x1001aea5
mov eax, dword [0x100edce0]
mov dword [ebp - 0x2748], edi
mov dword [ebp - 0x2720], 0xc
cmp eax, edx
je 0x1001aea5
jge 0x1001ae99
lea esi, [eax + ecx + 1]
jmp 0x1001aea5
lea eax, [ecx + eax - 1]
mov dword [ebp - 0x2730], eax
mov ecx, eax
mov dword [0x100ee0a8], esi
cmp esi, ecx
jg 0x1001be13
mov ebx, dword [ebp - 0x2748]
mov dword [0x100ee0a0], ebx
cmp ebx, dword [ebp - 0x2720]
jg 0x1001bdf7
fild dword [ebp - 0x271c]
fstp qword [ebp - 0x2764]
mov edi, dword [0x100edb9c]
test edi, edi
je 0x1001af01
cmp ebx, 9
je 0x1001aef5
mov eax, ebx
call fcn.10020ec2
mov dword [ebp - 0x26f0], eax
jmp 0x1001af0b
mov dword [ebp - 0x26f0], 0x1e
jmp 0x1001af0b
mov dword [ebp - 0x26f0], 1
fild dword [ebp - 0x26f0]
mov dword [0x100edf60], ebx
fmul qword [0x100b4fb8]
fmul qword [0x100b5a40]
fstp qword [ebp - 0x2714]
fld qword [ebp - 0x2714]
fdiv qword [ebp - 0x2764]
fstp qword [ebp - 0x273c]
test edi, edi
je 0x1001af44
xor edi, edi
inc edi
jmp 0x1001af4a
mov edi, dword [0x100ee0a4]
fldz
mov eax, dword [ebp + 8]
fst qword [0x100edf70]
mov dword [0x100edf64], edi
fld qword [0x100ee0b8]
mov dword [0x100edf68], esi
fst qword [0x100edf78]
mov dword [0x100edbe8], eax
fld qword [0x100ee0c0]
fst qword [0x100edf80]
fld qword [0x100ee0c8]
fstp qword [0x100edf88]
fld qword [0x100ee0d0]
fstp qword [0x100edf90]
test eax, eax
je 0x1001afca
sub esp, 0x18
fstp qword [esp + 0x10]
mov ecx, ebx
fstp qword [esp + 8]
fstp qword [esp]
push esi
call fcn.100070b8
fstp qword [0x100edef8]
add esp, 0x1c
push 0x10
pop ecx
mov esi, 0x100edfa0
mov edi, 0x100edf60
rep movsd dword es:[edi], dword [esi]
jmp 0x1001afd0
fstp st(1)
fstp st(0)
fstp st(0)
xor eax, eax
movzx esi, byte [eax + 0x100ee370]
movzx ecx, byte [eax + 0x100ee2e0]
xor ecx, esi
mov byte [eax + 0x100ee2e0], cl
movzx ecx, cl
xor ecx, esi
xor byte [eax + 0x100ee2e0], cl
mov byte [eax + 0x100ee370], cl
inc eax
cmp eax, 0x2a
jle 0x1001afd2
push 0xffffffffffffffff
call fcn.10008c45
fstp st(0)
add esp, 4
xor eax, eax
movzx esi, byte [eax + 0x100ee370]
movzx ecx, byte [eax + 0x100ee2e0]
xor ecx, esi
mov byte [eax + 0x100ee2e0], cl
movzx ecx, cl
xor ecx, esi
xor byte [eax + 0x100ee2e0], cl
mov byte [eax + 0x100ee370], cl
inc eax
cmp eax, 0x2a
jle 0x1001b00d
xor eax, eax
inc eax
mov ecx, 0x35e
mov esi, 0x100f4ab8
mov edi, 0x100f5998
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x26f0], eax
cmp dword [ebp - 0x271c], eax
jl 0x1001bdd8
fld qword [ebp - 0x2714]
fdiv qword [0x100b4fb8]
fdiv qword [0x100b5a40]
fstp qword [ebp - 0x2784]
and dword [ebp - 0x26e0], 0
cmp dword [0x100edb9c], 0
je 0x1001b08c
fld1
jmp 0x1001b092
fild dword [0x100ee0a4]
fild dword [ebp - 0x26f0]
mov esi, dword [0x100ee0a0]
mov dword [0x100edf60], esi
fmul qword [ebp - 0x2784]
fdiv qword [ebp - 0x2764]
faddp st(1)
fstp qword [ebp - 0x26ec]
fld qword [ebp - 0x26ec]
call fcn.1007d440
fld qword [ebp - 0x26ec]
mov edi, dword [0x100ee0a8]
push ecx
mov ebx, eax
push ecx
fstp qword [esp]
mov dword [0x100edf64], ebx
mov dword [0x100edf68], edi
call fcn.1007d620
fsubr qword [ebp - 0x26ec]
cmp dword [ebp + 8], 0
pop ecx
fmul qword [0x100b4fb8]
pop ecx
fstp qword [0x100edf70]
fld qword [0x100ee0b8]
fst qword [0x100edf78]
fld qword [0x100ee0c0]
fst qword [0x100edf80]
fld qword [0x100ee0c8]
fstp qword [0x100edf88]
fld qword [0x100ee0d0]
fstp qword [0x100edf90]
je 0x1001b165
sub esp, 0x18
fstp qword [esp + 0x10]
mov ecx, esi
fstp qword [esp + 8]
fldz
fstp qword [esp]
push edi
mov edi, ebx
call fcn.100070b8
fstp qword [0x100edef8]
add esp, 0x1c
push 0x10
pop ecx
mov esi, 0x100edfa0
mov edi, 0x100edf60
rep movsd dword es:[edi], dword [esi]
jmp 0x1001b169
fstp st(1)
fstp st(0)
xor eax, eax
movzx esi, byte [eax + 0x100ee370]
movzx ecx, byte [eax + 0x100ee2e0]
xor ecx, esi
mov byte [eax + 0x100ee2e0], cl
movzx ecx, cl
xor ecx, esi
xor byte [eax + 0x100ee2e0], cl
mov byte [eax + 0x100ee370], cl
inc eax
cmp eax, 0x2a
jle 0x1001b16b
push 0xffffffffffffffff
call fcn.10008c45
fstp st(0)
add esp, 4
xor eax, eax
movzx esi, byte [eax + 0x100ee370]
movzx ecx, byte [eax + 0x100ee2e0]
xor ecx, esi
mov byte [eax + 0x100ee2e0], cl
movzx ecx, cl
xor ecx, esi
xor byte [eax + 0x100ee2e0], cl
mov byte [eax + 0x100ee370], cl
inc eax
cmp eax, 0x2a
jle 0x1001b1a6
mov edx, 0x35e
mov eax, 0x100f5998
mov ecx, edx
mov esi, eax
mov edi, 0x100f36d0
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov esi, 0x100f4ab8
mov edi, eax
rep movsd dword es:[edi], dword [esi]
xor edi, edi
cmp dword [0x100edbf0], 0
je 0x1001b3fa
cmp dword [0x100edcac], 0
jne 0x1001b3fa
cmp byte [edi + 0x100ee370], 0
jne 0x1001b3fa
fld qword [ebp - 0x277c]
mov esi, edi
fstp qword [0x100edf40]
sub esp, 0x10
fld qword [ebp - 0x2774]
fstp qword [0x100edf58]
fld qword [esi*8 + 0x100f39a0]
fstp qword [esp + 8]
fld qword [esi*8 + 0x100f36d0]
fstp qword [esp]
call fcn.1000722f
fstp qword [ebp - 0x26fc]
fld qword [esi*8 + 0x100f5c68]
fstp qword [esp + 8]
fld qword [esi*8 + 0x100f5998]
fstp qword [esp]
call fcn.1000722f
fstp qword [ebp - 0x270c]
add esp, 0x10
fld qword [ebp - 0x26fc]
call fcn.1007d440
fld qword [ebp - 0x270c]
cdq
push 0x1e
pop ecx
idiv ecx
mov dword [ebp - 0x26dc], eax
call fcn.1007d440
cdq
push 0x1e
pop ecx
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0x26dc]
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp dword [ebp - 0x26dc], ecx
je 0x1001b3fa
cmp eax, 1
je 0x1001b2cd
cmp eax, 0xb
jne 0x1001b3fa
cmp byte [eax + 0x100ee2f5], 0
jne 0x1001b3fa
cmp dword [ebp - 0x26e0], 0xc8
jge 0x1001b3fa
fldz
mov ebx, dword [ebp - 0x26e0]
fcomp qword [esi*8 + 0x100f3c70]
lea eax, [ecx + 1]
mov dword [ebp + ebx*4 - 0x37c], eax
mov dword [ebp + ebx*4 - 0xcdc], edi
mov dword [ebp + ebx*4 - 0x69c], 0xfffffffc
fnstsw ax
test ah, 0x41
jp 0x1001b324
mov dword [ebp - 0x26dc], ecx
jmp 0x1001b330
mov eax, dword [ebp - 0x26dc]
mov dword [ebp - 0x26dc], eax
fild dword [ebp - 0x26dc]
mov ecx, dword [ebp - 0x26e0]
sub esp, 0x10
fmul qword [0x100b6360]
fstp qword [esp + 8]
fld qword [ebp - 0x26fc]
fstp qword [esp]
call fcn.10020a78
fstp qword [ebp - 0x2744]
fld qword [ebp - 0x270c]
fstp qword [esp + 8]
fld qword [ebp - 0x26fc]
fstp qword [esp]
call fcn.10020a78
fdivr qword [ebp - 0x2744]
mov eax, dword [ebp - 0x26f0]
dec eax
mov dword [ebp - 0x26e8], eax
add esp, 8
fmul qword [ebp - 0x273c]
fild dword [ebp - 0x26e8]
fmul qword [ebp - 0x273c]
faddp st(1)
fstp qword [ebp + ecx*8 - 0x131c]
fld qword [esi*8 + 0x100f36d0]
fstp qword [ebp + ecx*8 - 0x195c]
fld qword [esi*8 + 0x100f5f38]
fstp qword [esp]
call fcn.100207c2
call fcn.1007d440
fld qword [esi*8 + 0x100f3c70]
fstp qword [esp]
mov dword [ebp - 0x26e8], eax
call fcn.100207c2
add esp, 8
call fcn.1007d440
mov ecx, dword [ebp - 0x26e8]
add ecx, eax
inc dword [ebp - 0x26e0]
mov dword [ebp + ebx*4 - 0x9bc], ecx
cmp byte [edi + 0x100ee2e0], 0
jne 0x1001b98e
xor esi, esi
mov dword [ebp - 0x26dc], esi
cmp dword [0x100ede54], 0
je 0x1001b421
xor eax, eax
cmp edi, esi
setne al
jmp 0x1001b428
movzx eax, byte [esi + 0x100ee370]
test eax, eax
jne 0x1001b97e
cmp dword [ebp - 0x2718], eax
je 0x1001b446
cmp esi, 0x12
jle 0x1001b446
cmp esi, 0x22
jl 0x1001b97e
xor eax, eax
inc eax
cmp dword [0x100edb78], 0
mov dword [ebp - 0x26d8], eax
jne 0x1001b7fd
cmp dword [ebp - 0x2700], eax
jl 0x1001b97e
push dword [ebp - 0x26dc]
mov ebx, edi
push dword [ebp - 0x26d8]
call fcn.1000a0aa
pop ecx
pop ecx
test eax, eax
je 0x1001b7da
fld qword [ebp + edi*8 - 0x26d4]
mov esi, dword [ebp - 0x26dc]
mov ebx, dword [ebp - 0x26d8]
fstp qword [ebp - 0x26ec]
fld qword [esi*8 + 0x100f36d0]
lea ebx, [ebx*8 + 0x100ee960]
fstp qword [ebp - 0x2714]
push ecx
fld qword [esi*8 + 0x100f5998]
push ecx
fstp qword [ebp - 0x272c]
fld qword [ebp - 0x26ec]
fsub qword [ebx]
fstp qword [ebp - 0x275c]
fld qword [ebp - 0x275c]
fstp qword [esp]
call fcn.10020874
fstp qword [ebp - 0x2754]
fld qword [ebx]
fadd qword [ebp - 0x26ec]
fstp qword [ebp - 0x2744]
fld qword [ebp - 0x2744]
fstp qword [esp]
call fcn.10020874
fstp qword [ebp - 0x276c]
fld qword [ebp - 0x2754]
fstp qword [esp]
push ecx
fld qword [ebp - 0x2714]
push ecx
fstp qword [esp]
call fcn.10020a78
fstp qword [ebp - 0x26fc]
fld qword [ebp - 0x276c]
fstp qword [esp + 8]
fld qword [ebp - 0x272c]
fstp qword [esp]
call fcn.10020a78
fcomp qword [ebp - 0x26fc]
add esp, 0x10
push ecx
push ecx
fnstsw ax
test ah, 0x41
jne 0x1001b56e
fld qword [ebx]
fadd qword [ebp - 0x2714]
fstp qword [esp]
call fcn.10020874
fstp qword [ebp - 0x2714]
fld qword [ebx]
fadd qword [ebp - 0x272c]
jmp 0x1001b58c
fld qword [ebp - 0x2714]
fsub qword [ebx]
fstp qword [esp]
call fcn.10020874
fstp qword [ebp - 0x2714]
fld qword [ebp - 0x272c]
fsub qword [ebx]
fstp qword [esp]
call fcn.10020874
fstp qword [ebp - 0x272c]
pop ecx
fld qword [ebp - 0x2714]
pop ecx
fsub qword [ebp - 0x26ec]
fstp qword [ebp - 0x26fc]
fld qword [ebp - 0x26fc]
fabs
fcomp qword [0x100b4978]
fnstsw ax
test ah, 0x41
jne 0x1001b5e8
fld qword [ebp - 0x26fc]
push ecx
push ecx
fstp qword [esp]
call fcn.100207c2
fmul qword [0x100b49c0]
add esp, 8
fsubr qword [ebp - 0x26fc]
fstp qword [ebp - 0x26fc]
fld qword [ebp - 0x272c]
fsub qword [ebp - 0x26ec]
fstp qword [ebp - 0x270c]
fld qword [ebp - 0x270c]
fabs
fcomp qword [0x100b4978]
fnstsw ax
test ah, 0x41
jne 0x1001b634
fld qword [ebp - 0x270c]
push ecx
push ecx
fstp qword [esp]
call fcn.100207c2
fmul qword [0x100b49c0]
add esp, 8
fsubr qword [ebp - 0x270c]
fstp qword [ebp - 0x270c]
fld qword [ebp - 0x272c]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x2714]
fstp qword [esp]
call fcn.10020acf
fstp qword [esp + 8]
fld qword [ebp - 0x26ec]
fstp qword [esp]
call fcn.10020a78
fcomp qword [0x100b49b8]
add esp, 0x10
fnstsw ax
test ah, 5
jp 0x1001b7da
fld qword [ebp - 0x26fc]
push ecx
push ecx
fstp qword [esp]
call fcn.100207c2
fstp qword [ebp - 0x2714]
fld qword [ebp - 0x270c]
fstp qword [esp]
call fcn.100207c2
fld qword [ebp - 0x2714]
add esp, 8
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1001b7da
cmp dword [ebp - 0x26e0], 0xc8
jge 0x1001b7da
fld qword [ebp - 0x26fc]
mov eax, dword [ebp - 0x26e0]
fabs
mov ecx, dword [ebp - 0x26dc]
fld qword [ebp - 0x270c]
mov ebx, eax
fabs
mov dword [ebp + ebx*4 - 0xcdc], ecx
fadd st(1)
mov ecx, dword [ebp - 0x26d8]
mov dword [ebp + ebx*4 - 0x69c], ecx
mov ecx, dword [ebp - 0x26f0]
fdivp st(1)
dec ecx
mov dword [ebp - 0x26e8], ecx
sub esp, 0x10
mov dword [ebp + ebx*4 - 0x37c], edi
fmul qword [ebp - 0x273c]
fild dword [ebp - 0x26e8]
fmul qword [ebp - 0x273c]
faddp st(1)
fstp qword [ebp + eax*8 - 0x131c]
fld qword [ebp - 0x2754]
fstp qword [esp + 8]
fld qword [esi*8 + 0x100f36d0]
fstp qword [esp]
call fcn.10020a78
fstp qword [ebp - 0x2754]
fld qword [ebp - 0x276c]
fstp qword [esp + 8]
fld qword [esi*8 + 0x100f5998]
fstp qword [esp]
call fcn.10020a78
fcomp qword [ebp - 0x2754]
add esp, 0x10
fnstsw ax
test ah, 0x41
jne 0x1001b777
fld qword [ebp - 0x275c]
jmp 0x1001b77d
fld qword [ebp - 0x2744]
push ecx
push ecx
fstp qword [esp]
call fcn.10020874
mov eax, dword [ebp - 0x26e0]
fstp qword [ebp + eax*8 - 0x195c]
fld qword [esi*8 + 0x100f5f38]
fstp qword [esp]
call fcn.100207c2
call fcn.1007d440
fld qword [esi*8 + 0x100f3c70]
fstp qword [esp]
mov dword [ebp - 0x26e8], eax
call fcn.100207c2
add esp, 8
call fcn.1007d440
mov ecx, dword [ebp - 0x26e8]
add ecx, eax
inc dword [ebp - 0x26e0]
mov dword [ebp + ebx*4 - 0x9bc], ecx
inc dword [ebp - 0x26d8]
mov eax, dword [ebp - 0x26d8]
cmp eax, dword [ebp - 0x2700]
jle 0x1001b468
mov esi, dword [ebp - 0x26dc]
jmp 0x1001b97e
cmp dword [ebp - 0x2700], eax
jl 0x1001b97e
push esi
push dword [ebp - 0x26d8]
mov ebx, edi
call fcn.1000a0aa
pop ecx
pop ecx
test eax, eax
je 0x1001b966
cmp dword [ebp - 0x26d8], 2
fld qword [ebp + edi*8 - 0x2404]
mov ebx, esi
fld qword [ebx*8 + 0x100f39a0]
fld qword [ebx*8 + 0x100f5c68]
jne 0x1001b849
fxch st(1)
fchs
fxch st(1)
fchs
fxch st(1)
push ecx
fsub st(2)
push ecx
fstp qword [ebp - 0x26fc]
fsubrp st(1)
fstp qword [ebp - 0x270c]
fld qword [ebp - 0x26fc]
fstp qword [esp]
call fcn.100207c2
fstp qword [ebp - 0x2744]
fld qword [ebp - 0x270c]
fstp qword [esp]
call fcn.100207c2
fld qword [ebp - 0x2744]
add esp, 8
fucompp
fnstsw ax
test ah, 0x44
jnp 0x1001b966
cmp dword [ebp - 0x26e0], 0xc8
jge 0x1001b966
fld qword [ebp - 0x26fc]
mov eax, dword [ebp - 0x26e0]
fabs
mov ecx, dword [ebp - 0x26dc]
fld qword [ebp - 0x270c]
mov esi, eax
fabs
mov dword [ebp + esi*4 - 0xcdc], ecx
fadd st(1)
mov ecx, dword [ebp - 0x26d8]
mov dword [ebp + esi*4 - 0x69c], ecx
mov ecx, dword [ebp - 0x26f0]
fdivp st(1)
dec ecx
mov dword [ebp - 0x26e8], ecx
push ecx
push ecx
mov dword [ebp + esi*4 - 0x37c], edi
fmul qword [ebp - 0x273c]
fild dword [ebp - 0x26e8]
fmul qword [ebp - 0x273c]
faddp st(1)
fstp qword [ebp + eax*8 - 0x131c]
fld qword [ebp + edi*8 - 0x26d4]
fstp qword [ebp + eax*8 - 0x195c]
fld qword [ebx*8 + 0x100f5f38]
fstp qword [esp]
call fcn.100207c2
call fcn.1007d440
fld qword [ebx*8 + 0x100f3c70]
fstp qword [esp]
mov dword [ebp - 0x26e8], eax
call fcn.100207c2
add esp, 8
call fcn.1007d440
mov ecx, dword [ebp - 0x26e8]
add ecx, eax
inc dword [ebp - 0x26e0]
mov dword [ebp + esi*4 - 0x9bc], ecx
mov esi, dword [ebp - 0x26dc]
inc dword [ebp - 0x26d8]
mov eax, dword [ebp - 0x26d8]
cmp eax, dword [ebp - 0x2700]
jle 0x1001b809
inc esi
mov dword [ebp - 0x26dc], esi
cmp esi, 0x2a
jle 0x1001b40f
inc edi
cmp edi, 0x59
jle 0x1001b1f5
cmp dword [ebp - 0x26e0], 1
jle 0x1001ba87
mov eax, dword [ebp - 0x26e0]
and dword [ebp - 0x26d8], 0
dec eax
mov dword [ebp - 0x26e8], eax
mov esi, dword [ebp - 0x26d8]
test esi, esi
jmp 0x1001ba69
lea edx, [ebp + esi*8 - 0x131c]
fld qword [edx + 8]
fcomp qword [edx]
fnstsw ax
test ah, 5
jp 0x1001ba75
mov eax, esi
fld qword [edx]
fld qword [edx + 8]
lea ecx, [ebp + eax*4 - 0xcdc]
mov edi, dword [ecx + 4]
fstp qword [edx]
xor dword [ecx], edi
mov esi, dword [ecx]
fstp qword [edx + 8]
xor esi, edi
xor dword [ecx], esi
mov dword [ecx + 4], esi
lea edi, [ebp + eax*4 - 0x698]
mov ebx, dword [edi]
lea ecx, [ebp + eax*4 - 0x69c]
xor dword [ecx], ebx
mov esi, dword [ecx]
xor esi, ebx
xor dword [ecx], esi
mov dword [edi], esi
lea edi, [ebp + eax*4 - 0x378]
mov ebx, dword [edi]
lea ecx, [ebp + eax*4 - 0x37c]
xor dword [ecx], ebx
mov esi, dword [ecx]
xor esi, ebx
xor dword [ecx], esi
mov dword [edi], esi
mov esi, dword [ebp - 0x26dc]
lea ecx, [ebp + esi*8 - 0x195c]
fld qword [ecx]
lea edx, [ebp + esi*8 - 0x1954]
fld qword [edx]
fstp qword [ecx]
fstp qword [edx]
lea edx, [ebp + eax*4 - 0x9b8]
mov edi, dword [edx]
lea eax, [ebp + eax*4 - 0x9bc]
xor dword [eax], edi
mov ecx, dword [eax]
xor ecx, edi
xor dword [eax], ecx
mov dword [edx], ecx
dec esi
mov dword [ebp - 0x26dc], esi
jns 0x1001b9c6
inc dword [ebp - 0x26d8]
dec dword [ebp - 0x26e8]
jne 0x1001b9b9
and dword [ebp - 0x26d8], 0
cmp dword [ebp - 0x26e0], 0
jle 0x1001bda2
mov eax, dword [ebp - 0x26d8]
fld qword [ebp + eax*8 - 0x131c]
fmul qword [0x100b5a40]
call fcn.1007d440
xor esi, esi
mov ecx, eax
mov dword [ebp - 0x26dc], ecx
cmp dword [0x100edb9c], esi
je 0x1001badf
cdq
mov edi, 0x15180
idiv edi
mov ebx, eax
imul eax, eax, 0xfffeae80
add ecx, eax
mov dword [ebp - 0x26dc], ecx
jmp 0x1001bae6
mov ebx, dword [0x100ee0a4]
dec ebx
mov eax, ecx
cdq
mov edi, 0xe10
idiv edi
push 0x3c
pop edi
mov dword [ebp - 0x26f8], eax
imul eax, eax, 0xe10
sub ecx, eax
mov eax, ecx
cdq
idiv edi
mov dword [ebp - 0x2708], eax
cmp dword [0x100edc2c], esi
je 0x1001bb21
imul eax, eax, 0x3c
sub ecx, eax
mov dword [ebp - 0x26e8], ecx
jmp 0x1001bb28
or dword [ebp - 0x26e8], 0xffffffff
fild dword [ebp - 0x26dc]
mov eax, dword [0x100ee0a0]
mov dword [0x100ee0e0], eax
mov eax, dword [0x100ee0a8]
fdiv qword [0x100b4bd8]
inc ebx
mov dword [0x100ee0e4], ebx
mov dword [0x100ee0e8], eax
fstp qword [0x100ee0f0]
fld qword [0x100ee0b8]
fstp qword [0x100ee0f8]
fld qword [0x100ee0c0]
fstp qword [0x100ee100]
fld qword [0x100ee0c8]
fstp qword [0x100ee108]
fld qword [0x100ee0d0]
fstp qword [0x100ee110]
cmp dword [0x100edcd8], esi
jne 0x1001bc0a
mov eax, dword [0x100ede08]
test eax, eax
je 0x1001bc0a
cmp byte [eax], 0
je 0x1001bc0a
push 0x10
pop ecx
mov esi, 0x100ee0e0
mov edi, 0x100edf60
push 0xffffffffffffffff
rep movsd dword es:[edi], dword [esi]
call fcn.10008c45
mov eax, dword [ebp - 0x26d8]
mov edx, dword [ebp + eax*4 - 0xcdc]
fstp st(0)
xor ecx, ecx
mov dword [0x100f95f8], edx
mov edx, dword [ebp + eax*4 - 0x69c]
mov eax, dword [ebp + eax*4 - 0x37c]
add esp, 4
push dword [0x100ede08]
mov dword [0x100f9608], ecx
mov dword [0x100f9620], ecx
mov dword [0x100f9610], edx
mov dword [0x100f9638], ecx
mov dword [0x100f9628], eax
call fcn.10020592
pop ecx
test eax, eax
je 0x1001bd8a
cmp dword [0x100edc2c], 0
je 0x1001bc5b
mov eax, dword [0x100ee0a8]
mov ecx, dword [0x100ee0a0]
mov edi, ebx
call fcn.10020f63
mov esi, eax
mov ecx, dword [esi*4 + 0x100ef4fc]
call fcn.100214a7
push dword [esi*4 + 0x100ee6fc]
lea eax, [ebp - 0x5c]
push 0x1009efbc
push eax
call fcn.100675d6
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.10021135
or ecx, 0xffffffff
call fcn.100214a7
mov edi, dword [ebp - 0x26e8]
mov eax, dword [ebp - 0x2708]
mov ecx, dword [ebp - 0x26f8]
call fcn.10021b0f
mov ecx, dword [0x100ee0a0]
push eax
mov eax, dword [0x100ee0a8]
xor edx, edx
mov esi, ebx
call fcn.10021a47
push eax
lea eax, [ebp - 0x5c]
push 0x100a76c4
push eax
call fcn.100675d6
lea ecx, [ebp - 0x5c]
call fcn.10021135
mov esi, dword [ebp - 0x26d8]
mov edi, dword [ebp + esi*4 - 0x37c]
mov eax, dword [ebp + esi*4 - 0x69c]
fld qword [ebp + edi*8 - 0x26d4]
cmp dword [ebp + 8], 0
fstp qword [esp + 8]
mov ebx, dword [ebp + esi*4 - 0xcdc]
mov dword [ebp - 0x26dc], eax
mov eax, esi
fld qword [ebp + eax*8 - 0x195c]
setne al
add al, 0x74
fstp qword [esp]
fld qword [ebp + edi*8 - 0x2134]
movzx eax, al
push eax
push ecx
push ecx
fstp qword [esp]
call fcn.100207c2
add esp, 8
call fcn.1007d440
mov edx, dword [ebp - 0x26dc]
push eax
push dword [ebp + esi*4 - 0x9bc]
mov ecx, edi
push ebx
call fcn.100175fc
add esp, 0x20
cmp dword [ebp - 0x26dc], 1
jne 0x1001bd64
cmp ebx, edi
jne 0x1001bd64
mov ecx, dword [0x100ef330]
call fcn.100214a7
cmp ebx, 1
jne 0x1001bd39
mov eax, str.Solar
jmp 0x1001bd4a
mov eax, str.Lunar
cmp ebx, 2
je 0x1001bd4a
mov eax, dword [ebx*4 + 0x100f5830]
push eax
lea eax, [ebp - 0x5c]
push str.___s_Return_
push eax
call fcn.100675d6
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.10021135
mov al, 0xa
call fcn.10021373
cmp dword [0x100edbec], 0
je 0x1001bd82
push dword [ebp - 0x26dc]
mov ecx, edi
call fcn.10022e3b
pop ecx
or ecx, 0xffffffff
call fcn.100214a7
inc dword [ebp - 0x26d8]
mov eax, dword [ebp - 0x26d8]
cmp eax, dword [ebp - 0x26e0]
jl 0x1001ba9b
mov esi, dword [ebp - 0x26e0]
cmp esi, 0xc8
jl 0x1001bdba
mov ecx, str.Too_many_transits_found._n
call fcn.10021135
add dword [ebp - 0x2724], esi
inc dword [ebp - 0x26f0]
mov eax, dword [ebp - 0x26f0]
cmp eax, dword [ebp - 0x271c]
jle 0x1001b078
mov ebx, dword [0x100ee0a0]
mov esi, dword [0x100ee0a8]
inc ebx
mov dword [0x100ee0a0], ebx
cmp ebx, dword [ebp - 0x2720]
jle 0x1001aed7
inc esi
mov dword [0x100ee0a8], esi
cmp esi, dword [ebp - 0x2730]
jle 0x1001aeb3
cmp dword [ebp - 0x2724], 0
jne 0x1001be1d
mov ecx, str.No_transits_found._n
call fcn.10021135
and dword [0x100edbe8], 0
push 0x10
pop ecx
mov esi, 0x100edfa0
mov edi, 0x100edf60
rep movsd dword es:[edi], dword [esi]
push 0x10
pop ecx
lea esi, [ebp - 0x27c4]
mov edi, 0x100ee0a0
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x35e
lea esi, [ebp - 0x26d4]
mov edi, 0x100f4ab8
push 1
rep movsd dword es:[edi], dword [esi]
call fcn.10008c45
mov ecx, dword [ebp - 8]
add esp, 4
fstp st(0)
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067574
leave
ret