Function at 0x1005bbd0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x100c77f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x100edb9c]
or dword [ebp - 0x94], 0xffffffff
push ebx
xor ebx, ebx
mov dword [ebp - 0xa4], eax
mov eax, dword [0x100edba0]
push esi
push edi
mov dword [ebp - 0x98], ebx
mov dword [ebp - 0xa0], eax
cmp dword [0x100edca4], ebx
je 0x1005bc32
cmp dword [ebp + 8], ebx
jne 0x1005bc32
cmp dword [0x100edcfc], ebx
jne 0x1005bc32
mov dword [ebp - 0xb4], 1
cmp dword [0x100edb78], ebx
je 0x1005bc38
mov dword [ebp - 0xb4], ebx
mov esi, 0x964b0
mov edi, str.transit_graph_grid
mov ecx, esi
call fcn.10022129
mov dword [ebp - 0x8c], eax
cmp eax, ebx
je 0x1005ca63
push esi
push ebx
push eax
call fcn.1006bdd0
add esp, 0xc
cmp dword [ebp + 8], ebx
jne 0x1005bcca
cmp dword [ebp + 0xc], ebx
jne 0x1005bcca
push 0x10
pop ecx
mov esi, 0x100edfa0
lea edi, [ebp - 0x120]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x100edcf8]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x100c8bc0]
mov edi, dword [0x100c8bc8]
imul eax, eax, 0xc
imul edi, dword [ebp + 8]
mov dword [ebp - 0x84], eax
imul eax, eax, 3
imul edi, edi, 0x14
add edi, eax
xor eax, eax
inc eax
sub eax, dword [ebp + 8]
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0xa4], ebx
jne 0x1005bcf3
mov dword [ebp - 0x68], 0x18
jmp 0x1005bd32
push 0x10
pop ecx
mov esi, 0x100ee0a0
lea edi, [ebp - 0x120]
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp + 8], ebx
je 0x1005bc7c
cmp dword [0x100ede54], ebx
je 0x1005bc7c
mov dword [ebp - 0xa8], 1
jmp 0x1005bc87
cmp dword [ebp - 0xa0], ebx
jne 0x1005bd1c
mov eax, dword [ebp - 0x120]
cmp eax, 9
je 0x1005bd13
mov esi, dword [ebp - 0x118]
call fcn.10020ec2
jmp 0x1005bd2f
mov dword [ebp - 0x68], 0x1e
jmp 0x1005bd32
xor eax, eax
cmp dword [0x100edce0], 1
setg al
dec eax
and eax, 0xffffffd0
add eax, 0x3c
mov dword [ebp - 0x68], eax
mov eax, dword [0x100c8aec]
sub eax, edi
sub eax, 2
cdq
idiv dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
xor eax, eax
inc eax
cmp dword [ebp - 0x6c], eax
jg 0x1005bd4e
mov dword [ebp - 0x6c], eax
mov ebx, dword [ebp - 0x6c]
imul ebx, dword [ebp - 0x68]
inc ebx
xor edi, edi
mov dword [ebp - 0x88], ebx
cmp dword [ebp + 8], edi
jne 0x1005bd68
cmp dword [ebp + 0xc], edi
je 0x1005bd9d
and dword [0x100edbe8], 0
push 0x10
pop ecx
mov esi, 0x100edfa0
mov edi, 0x100edf60
push 0
rep movsd dword es:[edi], dword [esi]
call fcn.10008c45
mov ecx, 0x35e
mov esi, 0x100f4ab8
fstp st(0)
mov edi, 0x100f36d0
add esp, 4
rep movsd dword es:[edi], dword [esi]
xor edi, edi
fld qword [0x100b4fb8]
cmp dword [0x100c8aac], edi
jne 0x1005beba
cmp dword [ebp - 0xa4], edi
jne 0x1005bdc5
fild dword [ebp - 0x6c]
fmul qword [ebp - 0x110]
jmp 0x1005be95
cmp dword [ebp - 0xa0], edi
jne 0x1005bde9
mov eax, dword [ebp - 0x11c]
dec eax
mov dword [ebp - 0x60], eax
fild dword [ebp - 0x60]
fld qword [ebp - 0x110]
fdiv st(2)
faddp st(1)
jmp 0x1005be92
cmp dword [0x100edce0], 1
jg 0x1005be41
cmp dword [ebp - 0x120], 9
je 0x1005be11
mov esi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
call fcn.10020ec2
mov dword [ebp - 0x5c], eax
jmp 0x1005be18
mov dword [ebp - 0x5c], 0x1e
mov eax, dword [ebp - 0x11c]
dec eax
mov dword [ebp - 0x60], eax
fild dword [ebp - 0x60]
mov eax, dword [ebp - 0x120]
fld qword [ebp - 0x110]
dec eax
fdiv st(2)
mov dword [ebp - 0x60], eax
faddp st(1)
fidiv dword [ebp - 0x5c]
fild dword [ebp - 0x60]
jmp 0x1005bde2
cmp dword [ebp - 0x120], 9
je 0x1005be60
mov esi, dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
call fcn.10020ec2
mov dword [ebp - 0x5c], eax
jmp 0x1005be67
mov dword [ebp - 0x5c], 0x1e
mov eax, dword [ebp - 0x11c]
dec eax
mov dword [ebp - 0x60], eax
fild dword [ebp - 0x60]
mov eax, dword [ebp - 0x120]
fld qword [ebp - 0x110]
dec eax
fdiv st(2)
mov dword [ebp - 0x60], eax
faddp st(1)
fidiv dword [ebp - 0x5c]
fild dword [ebp - 0x60]
faddp st(1)
fadd st(1)
fimul dword [ebp - 0x6c]
call fcn.1007d440
mov dword [ebp - 0x94], eax
cmp eax, edi
jne 0x1005beba
fldz
fcomp qword [ebp - 0x110]
fnstsw ax
test ah, 1
jne 0x1005beba
or dword [ebp - 0x94], 0xffffffff
mov dword [ebp - 0x74], edi
cmp ebx, edi
jle 0x1005c371
fild dword [ebp - 0x6c]
fstp qword [ebp - 0xe0]
jmp 0x1005bed6
fld qword [0x100b4fb8]
mov eax, dword [ebp - 0x74]
cdq
idiv dword [ebp - 0x6c]
cmp dword [ebp - 0xa4], 0
push 0x10
pop ecx
lea esi, [ebp - 0x120]
mov edi, 0x100edf60
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x60], edx
fild dword [ebp - 0x60]
mov dword [ebp - 0x5c], eax
fdiv qword [ebp - 0xe0]
jne 0x1005bf15
fstp st(1)
fiadd dword [ebp - 0x5c]
mov ebx, dword [0x100edf60]
jmp 0x1005bfb7
cmp dword [ebp - 0xa0], 0
jne 0x1005bf28
inc eax
fmulp st(1)
mov dword [0x100edf64], eax
jmp 0x1005bf0a
cmp dword [0x100edce0], 1
fstp st(1)
jg 0x1005bf49
lea ebx, [eax + 1]
mov dword [0x100edf60], ebx
cmp ebx, 9
je 0x1005bf79
mov esi, dword [0x100edf68]
jmp 0x1005bf6d
push 0xc
cdq
pop ecx
idiv ecx
mov ecx, dword [ebp - 0x118]
lea ebx, [edx + 1]
lea esi, [eax + ecx - 2]
mov dword [0x100edf68], esi
mov dword [0x100edf60], ebx
cmp ebx, 9
je 0x1005bf79
mov eax, ebx
call fcn.10020ec2
mov dword [ebp - 0x5c], eax
jmp 0x1005bf80
mov dword [ebp - 0x5c], 0x1e
fimul dword [ebp - 0x5c]
fstp qword [ebp - 0xb0]
fld qword [ebp - 0xb0]
call fcn.1007d440
fld qword [ebp - 0xb0]
push ecx
push ecx
fstp qword [esp]
mov dword [0x100edf64], eax
call fcn.1007d620
fsubr qword [ebp - 0xb0]
pop ecx
pop ecx
fmul qword [0x100b4fb8]
cmp dword [ebp + 8], 0
fstp qword [0x100edf70]
je 0x1005bff2
xor edi, edi
movzx edx, byte [edi + 0x100ee370]
movzx ecx, byte [edi + 0x100ee2e0]
xor ecx, edx
mov byte [edi + 0x100ee2e0], cl
movzx ecx, cl
xor ecx, edx
xor byte [edi + 0x100ee2e0], cl
mov byte [edi + 0x100ee370], cl
inc edi
cmp edi, 0x2a
jle 0x1005bfc5
mov eax, dword [ebp + 0xc]
mov dword [0x100edbe8], eax
test eax, eax
je 0x1005c049
fld qword [0x100edf80]
mov edi, dword [0x100edf64]
sub esp, 0x18
fstp qword [esp + 0x10]
mov ecx, ebx
fld qword [0x100edf78]
fstp qword [esp + 8]
fld qword [0x100edf70]
fstp qword [esp]
push dword [0x100edf68]
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]
push 0xffffffffffffffff
call fcn.10008c45
fstp st(0)
xor esi, esi
add esp, 4
cmp dword [ebp + 8], esi
je 0x1005c11b
movzx edi, byte [esi + 0x100ee370]
movzx ecx, byte [esi + 0x100ee2e0]
xor ecx, edi
mov byte [esi + 0x100ee2e0], cl
movzx ecx, cl
xor ecx, edi
xor byte [esi + 0x100ee2e0], cl
mov byte [esi + 0x100ee370], cl
inc esi
cmp esi, 0x2a
jle 0x1005c060
mov ecx, 0x35e
mov esi, 0x100f4ab8
mov edi, 0x100f5998
push 0
rep movsd dword es:[edi], dword [esi]
call fcn.1000a8be
pop ecx
test eax, eax
je 0x1005ca63
mov edx, dword [ebp - 0x9c]
mov dword [ebp - 0x64], edx
cmp edx, 0x59
jg 0x1005c35d
xor esi, esi
cmp byte [edx + 0x100ee2e0], 0
jne 0x1005c350
cmp dword [ebp + 8], esi
jne 0x1005c10c
cmp dword [0x100edba4], esi
jne 0x1005c10c
cmp edx, 0x16
jl 0x1005c0ea
cmp edx, 0x21
jle 0x1005c350
cmp dword [0x100edb9c], esi
je 0x1005c10c
cmp edx, 2
je 0x1005c350
cmp dword [0x100edba0], esi
je 0x1005c10c
cmp edx, 5
jle 0x1005c350
xor eax, eax
mov dword [ebp - 0x78], eax
cmp dword [ebp + 8], esi
je 0x1005c123
push 0x5a
pop ecx
jmp 0x1005c125
push esi
call fcn.1000a71c
jmp 0x1005c0a5
mov ecx, edx
cmp eax, ecx
jge 0x1005c350
cmp dword [ebp + 8], esi
jne 0x1005c140
mov edx, eax
call fcn.1005848e
neg eax
sbb eax, eax
inc eax
jmp 0x1005c184
cmp byte [eax + 0x100ee370], 0
jne 0x1005c181
cmp dword [0x100edba4], esi
jne 0x1005c175
cmp eax, 0x16
jl 0x1005c15b
cmp eax, 0x21
jle 0x1005c181
cmp dword [0x100edb9c], esi
je 0x1005c175
cmp eax, 2
je 0x1005c181
cmp dword [0x100edba0], esi
je 0x1005c175
cmp eax, 5
jle 0x1005c181
cmp dword [0x100ede54], esi
je 0x1005c192
cmp eax, edx
je 0x1005c192
xor eax, eax
inc eax
cmp eax, esi
jne 0x1005c340
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x64]
mov ecx, dword [0x100fb4e0]
imul eax, eax, 0x5a
add ecx, eax
movzx ecx, byte [ecx + edx]
mov dword [ebp - 0x7c], ecx
cmp ecx, 1
jl 0x1005c340
cmp ecx, dword [ebp - 0xa8]
jg 0x1005c340
mov ecx, dword [ebp - 0x64]
lea ebx, [eax + ecx]
mov ecx, dword [ebp - 0x8c]
mov eax, ebx
imul eax, eax, 0x13
add eax, dword [ebp - 0x7c]
lea esi, [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
jne 0x1005c20b
mov ecx, dword [ebp - 0x88]
add ecx, ecx
mov edi, str.transit_ephemeris_entry
mov dword [ebp - 0x60], ecx
call fcn.10022129
mov dword [esi], eax
test eax, eax
je 0x1005ca63
push dword [ebp - 0x60]
mov dword [ebp - 0x70], eax
push eax
call fcn.1002078b
inc dword [ebp - 0x98]
pop ecx
pop ecx
jmp 0x1005c20e
mov dword [ebp - 0x70], eax
mov eax, dword [0x100fb4e0]
mov eax, dword [eax + ebx*4 + 0x1fa4]
cdq
xor eax, edx
sub eax, edx
mov dword [ebp - 0x60], eax
mov edi, dword [ebp - 0x74]
fild dword [ebp - 0x60]
mov eax, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x64]
mov edx, dword [ebp - 0x78]
fdiv qword [0x100b4bd8]
add edi, edi
mov dword [ebp - 0x5c], edi
fstp qword [ebp - 0xb0]
call fcn.10020fc9
fdivr qword [ebp - 0xb0]
fmul qword [0x100b70c8]
call fcn.1007d476
mov ecx, dword [ebp - 0x70]
dec ax
cmp dword [ebp - 0xb4], 0
mov word [edi + ecx], ax
je 0x1005c340
cmp dword [ebp - 0x7c], 1
jne 0x1005c286
mov edi, esi
mov esi, dword [ebp - 0x78]
lea ebx, [ebp - 0xd8]
call fcn.1000aa1a
jmp 0x1005c2ae
cmp dword [ebp - 0x7c], 2
jne 0x1005c340
cmp dword [ebp - 0x78], 1
jne 0x1005c340
cmp esi, 2
jne 0x1005c340
lea esi, [ebp - 0xd8]
call fcn.1000ac38
mov dword [ebp - 0x70], eax
test eax, eax
jle 0x1005c340
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x8c]
imul eax, eax, 0x5a
add eax, dword [ebp - 0x78]
imul eax, eax, 0x13
add eax, dword [ebp - 0x7c]
lea esi, [ecx + eax*4]
mov eax, dword [esi]
test eax, eax
jne 0x1005c302
mov ebx, dword [ebp - 0x88]
add ebx, ebx
mov edi, str.transit_eclipse_entry
mov ecx, ebx
call fcn.10022129
mov dword [esi], eax
test eax, eax
je 0x1005ca63
mov esi, eax
push ebx
push esi
call fcn.1002078b
pop ecx
pop ecx
jmp 0x1005c304
mov esi, eax
cmp dword [ebp - 0x70], 3
jge 0x1005c312
fld qword [0x100b4a68]
jmp 0x1005c322
jle 0x1005c31c
fld qword [0x100b70c0]
jmp 0x1005c322
fld qword [0x100b70b8]
fadd qword [ebp - 0xd8]
fmul qword [0x100b70b0]
fdiv qword [0x100b70a8]
call fcn.1007d476
mov ecx, dword [ebp - 0x5c]
mov word [ecx + esi], ax
inc dword [ebp - 0x78]
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x64]
xor esi, esi
jmp 0x1005c111
inc edx
mov dword [ebp - 0x64], edx
cmp edx, 0x59
jle 0x1005c0c2
inc dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x88]
jl 0x1005bed0
jmp 0x1005c373
fstp st(0)
mov eax, dword [0x100c8bcc]
mov esi, dword [0x100c8bdc]
mov ecx, eax
imul ecx, ecx, 0xc
lea ebx, [eax + eax]
xor edi, edi
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0x80], ebx
call fcn.10061d6b
cmp dword [ebp - 0xa4], edi
jne 0x1005c3c5
mov eax, dword [ebp - 0x118]
mov esi, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x120]
xor edx, edx
call fcn.10021a47
push eax
lea eax, [ebp - 0x58]
push eax
call fcn.100675d6
pop ecx
pop ecx
jmp 0x1005c419
cmp dword [ebp - 0xa0], edi
jne 0x1005c3f3
push dword [ebp - 0x118]
mov eax, dword [ebp - 0x120]
push dword [eax*4 + 0x100ee674]
lea eax, [ebp - 0x58]
push str._3.3s_5d
push eax
call fcn.100675d6
add esp, 0x10
jmp 0x1005c419
cmp dword [0x100edce0], 1
jg 0x1005c415
push dword [ebp - 0x118]
lea eax, [ebp - 0x58]
push 0x100a77a8
push eax
call fcn.100675d6
add esp, 0xc
jmp 0x1005c419
mov byte [ebp - 0x58], 0
lea ecx, [ebp - 0x58]
call fcn.10020621
imul eax, dword [0x100c8bcc]
imul eax, eax, 6
cmp eax, dword [ebp - 0x90]
jge 0x1005c43f
push 0x23
push ebx
mov eax, ebx
call fcn.10063581
pop ecx
pop ecx
mov esi, dword [0x100c8be4]
call fcn.10061d6b
cmp dword [ebp - 0xa4], edi
jne 0x1005c4c0
mov edi, dword [ebp - 0x90]
xor esi, esi
cmp dword [0x100edc80], 0
jne 0x1005c491
xor eax, eax
cmp esi, 0xc
setge al
dec eax
and eax, 0xfffffff1
add eax, 0x70
push eax
push 0xc
pop ecx
lea eax, [esi + 0xb]
cdq
idiv ecx
lea eax, [ebp - 0x58]
inc edx
push edx
push str._d_c
push eax
call fcn.100675d6
add esp, 0x10
jmp 0x1005c4a3
push esi
lea eax, [ebp - 0x58]
push 0x1009f0f8
push eax
call fcn.100675d6
add esp, 0xc
push 0x23
push ebx
mov eax, edi
lea ecx, [ebp - 0x58]
call fcn.10063581
add edi, dword [ebp - 0x6c]
inc esi
pop ecx
pop ecx
cmp esi, 0x18
jl 0x1005c45a
jmp 0x1005c5e0
cmp dword [ebp - 0xa0], edi
jne 0x1005c536
cmp dword [ebp - 0x68], edi
jle 0x1005c5e0
mov eax, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x90]
xor edi, edi
inc edi
mov dword [ebp - 0x5c], eax
cmp dword [0x100c8b78], 0
je 0x1005c505
mov eax, dword [0x100edf68]
mov ecx, dword [0x100edf60]
call fcn.10020f63
mov esi, dword [eax*4 + 0x100fb4c4]
call fcn.10061d6b
push edi
lea eax, [ebp - 0x58]
push 0x1009f0f8
push eax
call fcn.100675d6
add esp, 0xc
push 0x23
push dword [ebp - 0x80]
mov eax, ebx
lea ecx, [ebp - 0x58]
call fcn.10063581
add ebx, dword [ebp - 0x6c]
pop ecx
inc edi
dec dword [ebp - 0x5c]
pop ecx
jne 0x1005c4e0
jmp 0x1005c5e0
mov ebx, dword [ebp - 0x90]
xor edi, edi
cmp dword [0x100edce0], 1
jg 0x1005c595
cmp dword [0x100c8b78], 0
je 0x1005c561
mov eax, edi
and eax, 3
mov esi, dword [eax*4 + 0x100faf74]
call fcn.10061d6b
push dword [edi*4 + 0x100ee678]
lea eax, [ebp - 0x58]
push 0x100a4eb4
push eax
call fcn.100675d6
add esp, 0xc
push 0x23
push dword [ebp - 0x80]
mov eax, ebx
lea ecx, [ebp - 0x58]
call fcn.10063581
add ebx, dword [ebp - 0x6c]
inc edi
pop ecx
pop ecx
cmp edi, 0xc
jl 0x1005c547
jmp 0x1005c5e0
mov esi, dword [ebp - 0x6c]
imul esi, esi, 0xc
cmp dword [ebp + 8], 0
jne 0x1005c5ac
cmp dword [ebp + 0xc], 0
mov eax, dword [0x100edfa8]
je 0x1005c5b1
mov eax, dword [0x100ee0a8]
lea eax, [eax + edi - 2]
push eax
lea eax, [ebp - 0x58]
push 0x1009f0f8
push eax
call fcn.100675d6
add esp, 0xc
push 0x23
push dword [ebp - 0x80]
mov eax, ebx
lea ecx, [ebp - 0x58]
call fcn.10063581
inc edi
pop ecx
add ebx, esi
pop ecx
cmp edi, 5
jl 0x1005c59b
mov eax, dword [0x100c8af0]
mov ecx, dword [ebp - 0x84]
cdq
lea ecx, [ecx + 1]
idiv ecx
push 0x18
and dword [ebp - 0xb8], 0
mov ecx, eax
mov eax, dword [ebp - 0x98]
sub eax, ecx
movsx ecx, word [0x100c8cb6]
imul eax, ecx
cdq
pop ecx
idiv ecx
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x64], eax
cmp eax, 0x59
jg 0x1005ca63
mov ecx, eax
imul ecx, ecx, 0x5a
imul eax, eax, 0x4c
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebp - 0x8c]
lea eax, [eax + ecx + 4]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0xc8]
and dword [ebp - 0x78], 0
mov dword [ebp - 0xc4], eax
cmp dword [ebp + 8], 0
je 0x1005c660
push 0x5a
pop eax
jmp 0x1005c663
mov eax, dword [ebp - 0x64]
cmp dword [ebp - 0x78], eax
jge 0x1005ca4b
xor eax, eax
inc eax
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0xa8], eax
jl 0x1005ca39
mov eax, dword [ebp - 0xb8]
imul eax, dword [ebp - 0x84]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0xbc], 0x100fb434
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov eax, dword [eax]
mov dword [ebp - 0x70], eax
test eax, eax
je 0x1005ca19
cmp dword [ebp - 0x98], 0
jle 0x1005c6ce
dec dword [ebp - 0x98]
jmp 0x1005ca19
mov eax, dword [ebp - 0x84]
add dword [ebp - 0xc0], eax
mov edi, dword [ebp - 0xdc]
inc dword [ebp - 0xb8]
cdq
sub eax, edx
sar eax, 1
sub edi, eax
add edi, dword [ebp - 0xc0]
mov dword [ebp - 0x60], eax
add eax, edi
mov dword [ebp - 0x80], eax
cmp eax, dword [0x100c8af0]
jge 0x1005ca63
xor ebx, ebx
cmp dword [ebp + 8], ebx
je 0x1005c74c
mov esi, dword [0x100c8be8]
call fcn.10061d6b
mov ecx, 0x100a782c
cmp dword [ebp + 0xc], ebx
je 0x1005c728
mov ecx, 0x100a7830
mov eax, dword [0x100c8bc8]
lea edx, [edi + eax*2]
imul eax, eax, 5
add eax, dword [0x100c8bc0]
push 0x20
push edx
call fcn.10063581
mov ebx, dword [0x100c8bc8]
pop ecx
imul ebx, ebx, 0xa
pop ecx
add ebx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x78]
push edi
push ebx
call fcn.10063b02
mov eax, dword [ebp - 0xbc]
mov esi, dword [eax]
add ebx, dword [ebp - 0x84]
call fcn.10061d6b
mov ecx, dword [ebp - 0x7c]
push ebx
mov eax, edi
call fcn.10064076
add ebx, dword [ebp - 0x84]
add esp, 0xc
cmp dword [ebp + 8], 0
je 0x1005c7d3
mov eax, dword [ebp - 0x64]
fld qword [eax*8 + 0x100f36d0]
call fcn.1007d440
cdq
push 0x1e
pop ecx
idiv ecx
mov esi, dword [eax*4 + 0x100fb1f0]
call fcn.10061d6b
mov eax, dword [0x100c8bc8]
lea ecx, [edi + eax*2]
sub eax, dword [0x100c8bc0]
push 0x20
imul eax, eax, 5
push ecx
add eax, ebx
mov ecx, 0x100a783c
call fcn.10063581
mov eax, dword [0x100c8bc8]
imul eax, eax, 0xa
pop ecx
pop ecx
add ebx, eax
mov eax, dword [ebp - 0x64]
push edi
push ebx
call fcn.10063b02
mov esi, dword [0x100c8be8]
call fcn.10061d6b
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x90]
lea esi, [eax + ecx - 1]
mov ecx, dword [ebp - 0x80]
push esi
push 0
mov eax, ecx
call fcn.1006212a
add esp, 0x10
cmp dword [ebp - 0xb8], 1
jg 0x1005c823
mov eax, dword [ebp - 0x80]
sub eax, dword [ebp - 0x84]
push esi
push 0
mov ecx, eax
call fcn.1006212a
pop ecx
pop ecx
or dword [ebp - 0xd0], 0xffffffff
mov eax, dword [ebp - 0x70]
xor esi, esi
xor ecx, ecx
cmp dword [ebp - 0x88], esi
jle 0x1005c854
movzx edx, word [eax + ecx*2]
cmp edx, dword [ebp - 0xd0]
jle 0x1005c84b
mov dword [ebp - 0xd0], edx
inc ecx
cmp ecx, dword [ebp - 0x88]
jl 0x1005c839
mov dword [ebp - 0x74], esi
cmp dword [ebp - 0x88], esi
jle 0x1005ca19
mov edi, dword [ebp - 0x90]
lea ebx, [eax + 2]
mov dword [ebp - 0x70], 0xfffffffe
sub dword [ebp - 0x70], eax
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x60], ebx
jmp 0x1005c881
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x94]
jne 0x1005c8af
mov esi, dword [0x100f44b0]
call fcn.10061d6b
mov ecx, dword [ebp - 0x80]
lea eax, [ecx - 1]
sub ecx, dword [ebp - 0x84]
push edi
inc ecx
push edi
call fcn.1006212a
pop ecx
pop ecx
jmp 0x1005c914
cdq
idiv dword [ebp - 0x6c]
test edx, edx
jne 0x1005c914
mov esi, dword [0x100c8be8]
call fcn.10061d6b
xor ecx, ecx
inc ecx
cmp dword [ebp - 0xa4], 0
je 0x1005c8f2
cmp dword [ebp - 0xa0], 0
je 0x1005c8f2
cmp dword [0x100edce0], ecx
jle 0x1005c8f2
mov esi, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x74]
imul esi, esi, 0xc
cdq
idiv esi
test edx, edx
jle 0x1005c8f2
push 3
pop ecx
mov esi, dword [ebp - 0x80]
xor eax, eax
cmp ecx, 1
setg al
push ecx
push esi
push edi
sub eax, dword [ebp - 0x84]
lea eax, [eax + esi + 1]
push eax
push edi
call fcn.100628a9
add esp, 0x14
movzx ecx, word [ebx - 2]
test ecx, ecx
jle 0x1005c9fe
mov edx, dword [ebp - 0x84]
dec edx
lea eax, [ecx - 1]
imul eax, edx
mov dword [ebp - 0xac], edx
cdq
mov esi, 0xffff
idiv esi
mov dword [ebp - 0xd4], eax
cmp ecx, dword [ebp - 0xd0]
jge 0x1005c974
cmp dword [ebp - 0x74], 0
jle 0x1005c957
movzx eax, word [ebx - 4]
cmp ecx, eax
jle 0x1005c96a
mov eax, dword [ebp - 0x88]
dec eax
cmp dword [ebp - 0x74], eax
jge 0x1005c974
movzx eax, word [ebx]
cmp ecx, eax
jg 0x1005c974
mov eax, dword [ebp - 0xbc]
mov esi, dword [eax]
jmp 0x1005c97a
mov esi, dword [0x100c8bdc]
call fcn.10061d6b
mov edi, dword [ebp - 0x80]
push dword [ebp - 0x68]
mov ecx, edi
sub ecx, dword [ebp - 0xd4]
push dword [ebp - 0x68]
dec ecx
lea eax, [edi - 1]
call fcn.1006212a
cmp dword [ebp - 0xb4], 0
pop ecx
pop ecx
je 0x1005c9fe
mov ecx, dword [ebp - 0x5c]
add ecx, dword [ebp - 0x78]
mov eax, dword [ebp - 0x8c]
imul ecx, ecx, 0x13
add ecx, dword [ebp - 0x7c]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x1005c9fe
add eax, dword [ebp - 0x70]
movzx eax, word [eax + ebx]
test ax, ax
je 0x1005c9fe
dec eax
imul eax, dword [ebp - 0xac]
cdq
mov ecx, 0xffff
idiv ecx
mov esi, dword [0x100f44b8]
mov ebx, eax
call fcn.10061d6b
push dword [ebp - 0x68]
mov ecx, edi
push dword [ebp - 0x68]
sub ecx, ebx
dec ecx
lea eax, [edi - 1]
call fcn.1006212a
mov ebx, dword [ebp - 0x60]
pop ecx
pop ecx
inc dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
add ebx, 2
inc dword [ebp - 0x68]
mov dword [ebp - 0x60], ebx
cmp eax, dword [ebp - 0x88]
jl 0x1005c87e
inc dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
add dword [ebp - 0xcc], 4
add dword [ebp - 0xbc], 4
cmp eax, dword [ebp - 0xa8]
jle 0x1005c6a7
inc dword [ebp - 0x78]
add dword [ebp - 0xc4], 0x1ab8
jmp 0x1005c655
inc dword [ebp - 0x64]
add dword [ebp - 0xc8], 0x4c
add dword [ebp - 0x5c], 0x5a
cmp dword [ebp - 0x64], 0x59
jle 0x1005c645
cmp dword [0x100c8ab0], 0
je 0x1005ca9e
mov esi, dword [0x100c8bdc]
call fcn.10061d6b
mov eax, dword [0x100c8bc8]
push eax
push eax
mov eax, dword [0x100c8af0]
dec eax
push eax
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x90]
xor esi, esi
push eax
xor eax, eax
call fcn.10062346
add esp, 0x10
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0x64], eax
cmp eax, 0x59
jg 0x1005cb5d
mov ecx, dword [ebp - 0x8c]
mov esi, eax
imul esi, esi, 0x5a
imul eax, eax, 0x4c
lea eax, [eax + ecx + 4]
mov dword [ebp - 0x60], eax
xor ebx, ebx
mov dword [ebp - 0x5c], eax
cmp dword [ebp + 8], 0
je 0x1005cad5
push 0x5a
pop eax
jmp 0x1005cad8
mov eax, dword [ebp - 0x64]
cmp ebx, eax
jge 0x1005cb42
xor edi, edi
inc edi
cmp dword [ebp - 0xa8], edi
jl 0x1005cb38
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax]
test eax, eax
je 0x1005cb03
push eax
call fcn.10022192
pop ecx
cmp dword [ebp - 0xb4], 0
je 0x1005cb28
mov ecx, dword [ebp - 0x8c]
lea eax, [esi + ebx]
imul eax, eax, 0x13
add eax, edi
mov eax, dword [ecx + eax*4]
test eax, eax
je 0x1005cb28
push eax
call fcn.10022192
pop ecx
add dword [ebp - 0x9c], 4
inc edi
cmp edi, dword [ebp - 0xa8]
jle 0x1005caf0
inc ebx
add dword [ebp - 0x5c], 0x1ab8
jmp 0x1005caca
mov eax, dword [ebp - 0x60]
inc dword [ebp - 0x64]
add eax, 0x4c
add esi, 0x5a
mov dword [ebp - 0x60], eax
cmp esi, 0x1f4a
jle 0x1005cac5
cmp dword [ebp - 0x8c], 0
je 0x1005cb72
push dword [ebp - 0x8c]
call fcn.10022192
pop ecx
and dword [0x100edbe8], 0
push 0x10
pop ecx
mov esi, 0x100edfa0
mov edi, 0x100edf60
push 1
rep movsd dword es:[edi], dword [esi]
call fcn.10008c45
mov ecx, dword [ebp - 4]
add esp, 4
fstp st(0)
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10067574
leave
ret