Function at 0x6c2444e8
Capabilities:
Contain obfuscated stackstrings
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x520
mov dword [esp], 0x3f800000
mov eax, str.lxlow
call fcn.6c239568
fstp dword [0x6c46e3e8]
mov dword [esp], 0x3f800000
mov eax, str.lxhigh
call fcn.6c239568
fst dword [0x6c46e3ec]
fld dword [0x6c46e3e8]
fcomi st(1)
fstp st(1)
jb 0x6c24453f
fadd dword [0x6c3691e0]
fstp dword [0x6c46e3ec]
jmp 0x6c244541
fstp st(0)
mov dword [esp], 0x3f800000
mov eax, str.pwlow
call fcn.6c239568
fstp dword [0x6c46e8c0]
mov dword [esp], 0x3f800000
mov eax, str.pwhigh
call fcn.6c239568
fst dword [0x6c46e8c4]
fld dword [0x6c46e8c0]
fcomi st(1)
fstp st(1)
jb 0x6c244589
fadd dword [0x6c3691e0]
fstp dword [0x6c46e8c4]
jmp 0x6c24458b
fstp st(0)
mov dword [esp], 0x3f800000
mov eax, str.skylow
call fcn.6c239568
fld dword [0x6c3691e0]
fmul st(1), st(0)
fxch st(1)
fstp dword [0x6c46e8c8]
mov dword [esp], 0x3f800000
mov eax, str.skyhigh
fstp dword [esp + 0x50]
call fcn.6c239568
fld dword [esp + 0x50]
fmulp st(1)
fst dword [0x6c46e8cc]
fld dword [0x6c46e8c8]
fcomi st(1)
fstp st(1)
jb 0x6c2445e7
fadd dword [0x6c369200]
fstp dword [0x6c46e8cc]
jmp 0x6c2445e9
fstp st(0)
mov dword [esp], 0x3f800000
mov eax, str.daylow
call fcn.6c239568
fstp dword [0x6c46e8d0]
mov dword [esp], 0x3f800000
mov eax, str.dayhigh
call fcn.6c239568
fst dword [0x6c46e8d4]
fld dword [0x6c46e8d0]
fcomi st(1)
fstp st(1)
jb 0x6c244631
fadd dword [0x6c3691e0]
fstp dword [0x6c46e8d4]
jmp 0x6c244633
fstp st(0)
mov dword [esp], 0x3f800000
mov eax, str.vsclow
call fcn.6c239568
fld dword [0x6c3691e0]
fmul st(1), st(0)
fxch st(1)
fstp dword [0x6c46e8d8]
mov dword [esp], 0x3f800000
mov eax, str.vschigh
fstp dword [esp + 0x50]
call fcn.6c239568
fld dword [esp + 0x50]
fmulp st(1)
fst dword [0x6c46e8dc]
fld dword [0x6c46e8d8]
fcomi st(1)
fstp st(1)
jb 0x6c24468f
fadd dword [0x6c369200]
fstp dword [0x6c46e8dc]
jmp 0x6c244691
fstp st(0)
mov dword [esp], 0x3f800000
mov eax, str.shlow
call fcn.6c239568
fmul dword [0x6c3691e0]
fstp dword [0x6c46e8e0]
mov dword [esp], 0x3f800000
mov eax, str.shhigh
call fcn.6c239568
fstp st(0)
mov dword [0x6c46e8c0], 0
mov dword [0x6c46e8d0], 0
mov dword [0x6c46e8e0], 0
mov dword [0x6c46e8e4], 0x3f800000
mov dword [esp], 0x3f800000
mov eax, str.pwmonthlow
call fcn.6c239568
fstp dword [0x6c46e8e8]
mov dword [esp], 0x3f800000
mov eax, str.pwmonthhigh
call fcn.6c239568
fstp dword [0x6c46e8ec]
mov dword [esp], 0x3f800000
mov eax, str.pwwinterlow
call fcn.6c239568
fstp dword [0x6c46e8f0]
mov dword [esp], 0x3f800000
mov eax, str.pwwinterhigh
call fcn.6c239568
fstp dword [0x6c46e8f4]
mov dword [esp], 0x3f800000
mov eax, str.pwyearlow
call fcn.6c239568
fstp dword [0x6c46e8f8]
mov dword [esp], 0x3f800000
mov eax, str.pwyearhigh
call fcn.6c239568
fstp dword [0x6c46e8fc]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
test ah, 0x20
jne 0x6c244e7c
mov eax, edx
add eax, 8
mov dword [esp], eax
call fcn.6c265f58
mov dword [0x6c46e900], eax
mov edx, 5
mov eax, str.ciesky
call fcn.6c239534
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8c0]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8c4]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8d8]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8dc]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8d0]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8d4]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8c8]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8cc]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8e0]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [0x6c46e8e4]
mov dword [esp], eax
call fcn.6c265f8c
add dword [0x6c46e900], eax
mov eax, dword [ebp + 0x14]
sar eax, 1
mov dword [esp + 0x68], eax
test eax, eax
jle 0x6c2459dc
mov edx, eax
xor eax, eax
sub edx, dword [eax*4 + 0x6c368e20]
inc eax
test edx, edx
jg 0x6c24487b
mov dword [0x6c46e840], eax
cmp eax, 0xb
jg 0x6c244e72
inc eax
mov dword [0x6c46e904], eax
mov eax, dword [ebp + 0x18]
mov dword [0x6c46e83c], eax
mov dword [0x6c46e908], 0
mov eax, str.isocubefile
call fcn.6c239364
test eax, eax
je 0x6c2459a7
mov dword [esp + 4], eax
lea ebx, [esp + 0xa0]
mov dword [esp], ebx
call sub.msvcrt.dll_strcpy
mov dword [esp + 4], 0x6c368450
mov dword [esp], ebx
call fcn.6c21008c
mov dword [esp + 0x8c], eax
test eax, eax
je 0x6c244999
mov dword [esp + 0x90], 0
mov dword [esp + 0x80], ebx
mov edx, dword [esp + 0x90]
lea edi, [edx*4 + 0x6c46e934]
fldz
xor esi, esi
mov ebx, dword [esp + 0x8c]
jmp 0x6c244920
fstp st(1)
inc esi
lea eax, [esi + esi*4]
add eax, dword [esp + 0x90]
lea eax, [eax*4 + 0x6c46e920]
mov dword [esp + 8], eax
mov dword [esp + 4], str._f_____t_n_
mov dword [esp], ebx
fstp dword [esp + 0x50]
call sub.msvcrt.dll_fscanf
fld dword [edi]
fld dword [esp + 0x50]
fadd st(1)
fld qword [0x6c369208]
fmul st(2), st(0)
fxch st(2)
fstp dword [edi]
add edi, 0x14
cmp esi, 0xc
jne 0x6c24491e
fmulp st(1)
mov edx, dword [esp + 0x90]
fstp dword [edx*4 + 0x6c46e920]
inc edx
mov dword [esp + 0x90], edx
cmp edx, 5
jne 0x6c244903
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_fclose
xor eax, eax
mov esi, dword [esp + 0x8c]
test esi, esi
setne al
mov dword [0x6c46e908], eax
mov esi, dword [0x6c46ea24]
test esi, esi
je 0x6c2459bc
mov dword [esp + 8], 0
mov eax, dword [0x6c453e90]
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb0]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov esi, eax
mov dword [esp + 4], 8
mov dword [esp], 0x6c3685fd
call sub.msvcrt_ruby200.dll_rb_str_new
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov eax, dword [0x6c453e84]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 0x78], eax
mov dword [esp + 4], 9
mov dword [esp], 0x6c368606
call sub.msvcrt_ruby200.dll_rb_str_new
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov eax, dword [0x6c453e84]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 0x74], eax
mov dword [esp + 4], 8
mov dword [esp], 0x6c368610
call sub.msvcrt_ruby200.dll_rb_str_new
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov eax, dword [0x6c453e84]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 0x70], eax
mov dword [esp + 4], 0xa
mov dword [esp], str.NorthAngle
call sub.msvcrt_ruby200.dll_rb_str_new
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov eax, dword [0x6c453e84]
mov dword [esp + 4], eax
mov dword [esp], esi
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 0x6c], eax
lea edx, [esp + 0x514]
mov dword [esp], edx
call fcn.6c29b01c
fild dword [esp + 0x68]
fstp dword [esp + 0x7c]
mov dword [esp + 0x88], 0
lea eax, [esp + 0x4e0]
mov dword [esp + 0x94], eax
lea edx, [esp + 0x4c0]
mov dword [esp + 0x98], edx
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0x88]
mov dword [edx*4 + 0x6c46ea28], 0
movaps xmm0, xmmword [0x6c368f40]
movaps xmmword [esp + 0x4c0], xmm0
lea eax, [edx + edx*8]
shl eax, 8
add eax, 0x6c46ea60
mov dword [esp + 0x90], eax
xor ebx, ebx
jmp 0x6c244ba8
fxch st(1)
fcompi st(2)
jbe 0x6c244dac
fld dword [0x6c369214]
fadd st(1)
fxch st(1)
fsubrp st(2)
fdivrp st(1)
fmul dword [0x6c3691e8]
mov edx, dword [esp + 0x88]
fadd dword [edx*4 + 0x6c46ea28]
fstp dword [edx*4 + 0x6c46ea28]
jmp 0x6c244b7e
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, 4
mov edi, dword [esp + 0x98]
mov esi, dword [esp + 0x94]
rep movsd dword es:[edi], dword [esi]
inc ebx
add dword [esp + 0x90], 0x10
cmp ebx, 0x90
je 0x6c244e42
mov eax, dword [0x6c46ea3c]
test eax, eax
je 0x6c244e24
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld qword [eax + 8]
fstp dword [esp + 0x8c]
mov eax, dword [0x6c46ea40]
test eax, eax
je 0x6c244de4
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld qword [eax + 8]
fstp dword [esp + 0x80]
mov eax, dword [0x6c46ea44]
test eax, eax
je 0x6c244dc4
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld dword [esp + 0x8c]
fstp dword [esp + 0x14]
fld dword [esp + 0x80]
fstp dword [esp + 0x10]
fld qword [eax + 8]
fstp dword [esp + 0xc]
fld dword [esp + 0x7c]
fstp dword [esp + 8]
fld dword [0x6c3691e8]
push ebx
fimul dword [esp]
pop ecx
fstp dword [esp + 4]
lea eax, [esp + 0x514]
mov dword [esp], eax
call fcn.6c29b028
fld dword [esp + 0x514]
fstp dword [esp + 0x8c]
fld dword [esp + 0x518]
fstp qword [esp + 0x80]
mov eax, dword [0x6c46ea48]
test eax, eax
je 0x6c244e04
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld qword [0x6c3690f8]
fmul qword [eax + 8]
fsubr qword [esp + 0x80]
fld dword [esp + 0x8c]
fsincos
fstp dword [esp + 0x8c]
fchs
movss xmm1, dword [esp + 0x8c]
xorps xmm2, xmm2
fstp dword [esp + 0x2c]
movss xmm3, dword [esp + 0x2c]
unpcklps xmm2, xmm3
movaps xmm0, xmm2
movlhps xmm0, xmm1
movaps xmmword [esp + 0x4d0], xmm0
fld dword [esp + 0x4d0]
fxch st(1)
fsincos
fld dword [esp + 0x4d4]
fld st(1)
fmul st(4)
fld st(3)
fmul st(2)
fsubp st(1)
fxch st(2)
fmulp st(1)
fxch st(3)
fmulp st(2)
fxch st(2)
faddp st(1)
fxch st(1)
movss xmm1, dword [esp + 0x4d8]
fstp dword [esp + 0x2c]
movss xmm2, dword [esp + 0x2c]
fstp dword [esp + 0x2c]
movss xmm3, dword [esp + 0x2c]
unpcklps xmm2, xmm3
movaps xmm0, xmm2
movlhps xmm0, xmm1
movaps xmmword [esp + 0x4e0], xmm0
mov ecx, 4
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
rep movsd dword es:[edi], dword [esi]
fld dword [esp + 0x4e8]
fld dword [0x6c369210]
fld dword [esp + 0x4c8]
fxch st(2)
fcomi st(1)
ja 0x6c244b40
fxch st(2)
fcomi st(1)
jbe 0x6c244b78
fxch st(1)
fcompi st(2)
jbe 0x6c244db2
fld dword [0x6c369214]
fadd st(1)
fxch st(2)
fsubp st(1)
fdivp st(1)
fmul dword [0x6c3691e8]
jmp 0x6c244b5e
fstp st(0)
fstp st(0)
jmp 0x6c244db6
fstp st(0)
fstp st(0)
fld dword [0x6c3691e8]
jmp 0x6c244b5e
mov dword [esp + 4], 4
mov dword [esp], 0x6c36841e
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c46ea44], eax
jmp 0x6c244c13
mov dword [esp + 4], 4
mov dword [esp], 0x6c36841e
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c46ea40], eax
jmp 0x6c244be4
mov dword [esp + 4], 4
mov dword [esp], 0x6c36841e
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c46ea48], eax
jmp 0x6c244c97
mov dword [esp + 4], 4
mov dword [esp], 0x6c36841e
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c46ea3c], eax
jmp 0x6c244bb5
mov eax, dword [esp + 0x88]
inc eax
cmp eax, 5
je 0x6c244e87
fld dword [0x6c369008]
fimul dword [esp + 0x88]
fadd dword [0x6c368ee4]
fstp dword [esp + 0x7c]
mov dword [esp + 0x88], eax
jmp 0x6c244b04
mov eax, 1
jmp 0x6c244896
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0xc]
jmp 0x6c244786
mov ebx, dword [esp + 0x64]
mov dword [0x6c471760], 0x3f800000
mov dword [0x6c471764], 0x3f800000
mov dword [0x6c471768], 0x3f800000
mov dword [0x6c47176c], 0x3f800000
mov dword [0x6c471770], 0x3f800000
mov dword [0x6c471774], 0x3f800000
mov eax, str.mshfile
call fcn.6c239364
test eax, eax
je 0x6c244f68
mov dword [esp + 4], 0x6c368450
mov dword [esp], eax
call fcn.6c21008c
mov edi, eax
test eax, eax
je 0x6c244f68
mov dword [0x6c471764], 0
mov dword [0x6c471760], 0
mov esi, 0xffffffff
lea edx, [esp + 0x51c]
mov dword [esp + 8], edx
mov dword [esp + 4], str._f_____t_n_
mov dword [esp], edi
mov dword [esp + 0x60], edx
call sub.msvcrt.dll_fscanf
fld dword [esp + 0x51c]
fld dword [0x6c471764]
fadd st(1)
fstp dword [0x6c471764]
cmp esi, 1
mov edx, dword [esp + 0x60]
jbe 0x6c244f53
fld dword [0x6c471760]
fadd st(1)
fstp dword [0x6c471760]
fstp dword [esi*4 + 0x6c47176c]
inc esi
cmp esi, 3
jne 0x6c244f0f
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_fclose
xor eax, eax
fld1
fld st(0)
nop
fld dword [0x6c368ea4]
push eax
fimul dword [esp]
pop edx
fld st(0)
fmul st(1)
fsubr st(2)
fsqrt
fxch st(1)
fpatan
fptan
fstp st(0)
fdivr dword [0x6c369218]
fsubr st(2)
fstp dword [eax*4 + 0x6c471780]
inc eax
cmp eax, 0x100
jne 0x6c244f70
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x68]
add eax, 0x170
mov ecx, 0x16d
cdq
idiv ecx
fld qword [0x6c369220]
push edx
fimul dword [esp]
pop eax
fld st(0)
fsincos
fxch st(2)
fadd st(0)
fsincos
fxch st(3)
fmul dword [0x6c369228]
fxch st(2)
fmul dword [0x6c36922c]
faddp st(2)
fxch st(1)
fadd dword [0x6c369230]
fxch st(2)
fmul dword [0x6c369234]
faddp st(2)
fmul dword [0x6c369238]
faddp st(1)
fmul dword [0x6c36923c]
xor esi, esi
fstp dword [esp + 0x90]
nop
fld dword [0x6c368ea4]
push esi
fimul dword [esp]
pop eax
fld st(0)
fld st(0)
fmul st(1)
fld1
fsubrp st(1)
fsqrt
fpatan
mov dword [esp + 8], 0xc0000000
mov dword [esp + 0xc], 0xbffa2eb1
fmul dword [0x6c369240]
fadd dword [0x6c369244]
fstp qword [esp]
fstp dword [esp + 0x30]
call sub.msvcrt.dll_pow
fmul dword [0x6c369248]
fld dword [esp + 0x30]
faddp st(1)
fld1
fdivrp st(1)
fdivr dword [esp + 0x90]
fstp dword [esi*4 + 0x6c471b80]
inc esi
cmp esi, 0x100
jne 0x6c245008
mov esi, dword [0x6c471f80]
test esi, esi
je 0x6c245987
mov dword [esp + 8], 0
mov eax, dword [0x6c453e90]
mov dword [esp + 4], eax
mov eax, dword [0x6c453eb0]
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
mov edi, eax
mov esi, dword [0x6c471f84]
test esi, esi
je 0x6c245967
mov eax, dword [0x6c471f88]
test eax, eax
je 0x6c245949
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call sub.msvcrt_ruby200.dll_rb_funcall
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], eax
call sub.msvcrt_ruby200.dll_rb_funcall
fld qword [eax + 8]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fst dword [0x6c46e844]
fdivr dword [0x6c368e9c]
fstp dword [0x6c471f8c]
lea eax, [esp + 0x4a0]
mov dword [esp + 0x98], eax
mov esi, 0x6c32efa0
mov ecx, 8
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x7c], 0
lea edx, [esp + 0x4f0]
mov dword [esp + 0x8c], edx
fld xword [0x6c3690a0]
fldz
fyl2x
fchs
fstp dword [esp + 0x78]
mov dword [esp + 0x74], ebx
mov edx, dword [esp + 0x7c]
lea eax, [edx + edx*2]
shl eax, 0xb
add eax, 0x6c4652a0
mov dword [esp + 0x88], eax
mov esi, dword [esp + edx*4 + 0x4a0]
mov ecx, eax
fld qword [0x6c3691f0]
fld qword [0x6c3691f8]
xor ebx, ebx
fldz
mov eax, esi
test esi, esi
jne 0x6c24519c
jmp 0x6c2452ab
fxch st(1)
fxch st(2)
fldz
fld dword [0x6c368eb0]
jmp 0x6c2451d3
mov dword [esp + 0x9c], edx
fild dword [esp + 0x9c]
fcomi st(3)
je 0x6c2451c0
fmul st(1)
faddp st(2)
jmp 0x6c2451c2
fstp st(0)
fmul dword [0x6c368eb0]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
je 0x6c2451e4
mov edx, eax
and edx, 0x80000001
jns 0x6c2451a8
dec edx
or edx, 0xfffffffe
inc edx
jmp 0x6c2451a8
fstp st(0)
fadd st(0)
fsub dword [0x6c368e9c]
fld1
fchs
fcompi st(1)
ja 0x6c2452c0
fld1
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x6c24520a
fsub dword [0x6c368f58]
fld st(0)
fmul st(1)
fsubr dword [0x6c368e9c]
fsqrt
fmul st(3), st(0)
fxch st(3)
fstp dword [ecx]
fxch st(2)
fmulp st(3)
fxch st(2)
fstp dword [ecx + 4]
fstp dword [ecx + 8]
mov dword [ecx + 0xc], 0
movaps xmm2, xmmword [ecx]
movaps xmm1, xmm2
mulps xmm1, xmm2
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xc9
addps xmm0, xmm1
shufps xmm1, xmm1, 0xd2
addps xmm0, xmm1
movss dword [esp + 0x90], xmm0
fld dword [esp + 0x90]
fsqrt
fdivr dword [esp + 0x80]
fstp dword [esp + 0x90]
movss xmm1, dword [esp + 0x90]
shufps xmm1, xmm1, 0
movaps xmm0, xmm1
mulps xmm0, xmm2
movaps xmmword [ecx], xmm0
inc ebx
inc esi
add ecx, 0x10
cmp ebx, 0x180
je 0x6c2452cb
fld dword [0x6c368eb0]
push ebx
fiadd dword [esp]
pop eax
fmul qword [str.es_8RP_9]
fsincos
mov eax, esi
test esi, esi
jne 0x6c245198
jmp 0x6c2452af
fxch st(2)
fxch st(1)
fld1
fchs
fxch st(1)
fxch st(2)
fxch st(3)
fxch st(1)
jmp 0x6c24520a
fadd dword [0x6c368f58]
jmp 0x6c2451fa
fstp st(0)
mov ebx, dword [esp + 0x88]
add ebx, 0x17f0
mov dword [esp + 0x90], 0x17f
call sub.msvcrt.dll_rand
mov edi, dword [esp + 0x8c]
mov esi, ebx
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
cdq
idiv dword [esp + 0x90]
shl edx, 4
mov eax, dword [esp + 0x88]
add eax, edx
mov edi, ebx
mov esi, eax
mov cl, 4
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x4f0]
mov dword [esp + 0x8c], edx
mov edi, eax
mov esi, edx
mov cl, 4
rep movsd dword es:[edi], dword [esi]
sub ebx, 0x10
dec dword [esp + 0x90]
jne 0x6c2452e5
cmp byte [0x6c3600a0], 0
je 0x6c245659
movss xmm0, dword [0x6c364b80]
shufps xmm0, xmm0, 0
movaps xmm4, xmm0
fld dword [0x6c364b80]
fchs
fstp dword [esp + 0x90]
movss xmm0, dword [esp + 0x90]
shufps xmm0, xmm0, 0
movaps xmm3, xmm0
mov eax, dword [esp + 0x7c]
lea ebx, [eax + eax*2]
mov ecx, ebx
shl ecx, 0xb
add ecx, 0x6c4652a0
xor eax, eax
shl ebx, 7
nop
movaps xmm2, xmmword [ecx]
rcpps xmm0, xmm2
movaps xmm1, xmm0
mulps xmm1, xmm0
mulps xmm1, xmm2
addps xmm0, xmm0
subps xmm0, xmm1
minps xmm0, xmm4
maxps xmm0, xmm3
lea edx, [ebx + eax]
shl edx, 4
movaps xmmword [edx + 0x6c45c2a0], xmm0
inc eax
add ecx, 0x10
cmp eax, 0x180
jne 0x6c24538c
inc dword [esp + 0x7c]
cmp dword [esp + 0x7c], 6
jne 0x6c24515e
mov ebx, dword [esp + 0x74]
mov edx, 5
mov eax, str.ciesky
call fcn.6c239534
mov esi, eax
mov dword [esp], ebx
call fcn.6c29b0f8
mov dword [esp + 0x104], esi
fld dword [0x6c488ea0]
fld dword [0x6c488ea4]
fxch st(1)
fpatan
fld dword [0x6c488ea8]
fld st(0)
fmul st(1)
fsubr dword [0x6c368e9c]
fsqrt
fxch st(1)
fpatan
fxch st(1)
fstp dword [esp + 8]
fstp dword [esp + 4]
mov dword [esp], ebx
call fcn.6c29ba3c
xor edi, edi
mov dword [esp + 0x8c], 0
nop
fld dword [0x6c368eb0]
fiadd dword [esp + 0x8c]
fld qword [0x6c369258]
fmulp st(1)
fstp dword [esp + 0x90]
xor esi, esi
jmp 0x6c245468
fstp dword [edi + esi*4 + 0x6c471fa0]
inc esi
cmp esi, 0xb4
je 0x6c2454e4
fld dword [0x6c368eb0]
push esi
fiadd dword [esp]
pop eax
fadd st(0)
fld qword [0x6c3690f8]
fmulp st(1)
fld dword [esp + 0x90]
fsincos
fxch st(2)
fsincos
fxch st(1)
fmul st(2)
fxch st(1)
fmulp st(2)
fxch st(1)
fpatan
fld st(1)
fabs
fld st(0)
fmul st(1)
fsubr dword [0x6c368e9c]
fsqrt
fxch st(1)
fpatan
fxch st(1)
fstp dword [esp + 8]
fstp dword [esp + 4]
mov dword [esp], ebx
fstp dword [esp + 0x30]
call fcn.6c29b39c
fldz
fld dword [esp + 0x30]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x6c245458
fmul dword [0x6c368f64]
fstp dword [edi + esi*4 + 0x6c471fa0]
inc esi
cmp esi, 0xb4
jne 0x6c245468
inc dword [esp + 0x8c]
add edi, 0x2d0
cmp dword [esp + 0x8c], 0x5a
jne 0x6c245438
mov dword [0x6c481cc0], 0
mov dword [0x6c481cc4], 0
fld dword [0x6c471f8c]
mov ebx, 0x6c466a90
lea eax, [esp + 0x500]
mov dword [esp + 0x98], eax
movaps xmm3, xmmword [0x6c368f10]
movaps xmm4, xmmword [0x6c368ed0]
fld1
jmp 0x6c245604
fld dword [esp + 0x508]
fmul st(3)
fld st(0)
fmul st(1)
fsubr st(3)
fsqrt
fxch st(1)
fpatan
fld dword [esp + 0x504]
fmul st(4)
fld dword [esp + 0x500]
fmul st(5)
fpatan
fld qword [0x6c368fd8]
fmul st(2), st(0)
fld dword [0x6c3690f0]
fmul st(3), st(0)
fxch st(3)
fisttp dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
fld dword [0x6c368eb0]
fmul st(2), st(0)
fxch st(2)
fmulp st(1)
fmul dword [0x6c369260]
fadd st(1)
fisttp dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
add eax, 0xb4
mov esi, 0xb4
cdq
idiv esi
lea eax, [ecx + ecx*4]
lea eax, [ecx + eax*2]
lea eax, [ecx + eax*4]
lea eax, [edx + eax*4]
fld dword [eax*4 + 0x6c471fa0]
fld dword [0x6c481cc4]
fadd st(1)
fstp dword [0x6c481cc4]
fxch st(3)
fmul st(5)
fmulp st(3)
fxch st(2)
fadd dword [0x6c481cc0]
fstp dword [0x6c481cc0]
sub ebx, 0x10
cmp ebx, 0x6c465290
je 0x6c245688
fstp st(0)
fstp st(0)
mov edi, dword [esp + 0x98]
mov esi, ebx
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
movaps xmm2, xmmword [esp + 0x500]
movaps xmm1, xmm2
mulps xmm1, xmm3
movaps xmm0, xmm1
shufps xmm0, xmm1, 0xc9
addps xmm0, xmm1
shufps xmm1, xmm1, 0xd2
addps xmm0, xmm1
movss dword [esp + 0x2c], xmm0
fld dword [esp + 0x2c]
fldz
fcompi st(1)
jbe 0x6c245544
mulps xmm2, xmm4
movaps xmmword [esp + 0x500], xmm2
fchs
jmp 0x6c245544
mov dword [esp], 0x6c3600a0
call fcn.6c2dfdc0
test eax, eax
je 0x6c245345
fld dword [esp + 0x78]
fstp dword [0x6c364b80]
mov dword [esp], 0x6c3600a0
call fcn.6c2dfebc
jmp 0x6c245345
fstp st(3)
fxch st(1)
fxch st(2)
fxch st(1)
mov dword [esp], 0xbf800000
mov eax, str.lxscale
fstp dword [esp + 0x30]
fstp dword [esp + 0x40]
fstp xword [esp + 0x50]
call fcn.6c239568
fstp dword [0x6c481cc8]
fld dword [0x6c488ea8]
fld dword [0x6c368e50]
fmul st(1)
fisttp dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
fld dword [0x6c369264]
fmul dword [eax*4 + 0x6c471b80]
fld st(1)
fmul st(2)
fld xword [esp + 0x50]
fsubrp st(1)
fsqrt
fxch st(1)
fxch st(2)
fxch st(1)
fpatan
fld dword [esp + 0x40]
fmulp st(1)
fld qword [0x6c369208]
fmulp st(1)
fst dword [0x6c481ccc]
fld st(0)
fmul st(1)
fld st(1)
fmul st(1)
fld st(1)
fmul st(2)
fld st(2)
fmul st(2)
fxch st(2)
fmul qword [0x6c369268]
fadd qword [0x6c369270]
fxch st(1)
fmul qword [0x6c369278]
fsubp st(1)
fxch st(1)
fmul qword [0x6c369280]
fsubp st(1)
fxch st(1)
fmul qword [0x6c369288]
fsubp st(1)
fxch st(1)
fmul qword [0x6c369290]
faddp st(1)
fmulp st(1)
fstp dword [0x6c46e3e0]
mov eax, dword [0x6c46e3e8]
mov dword [esp], eax
call fcn.6c23a5a0
mov dword [esp + 4], eax
mov dword [esp], 0x6c453160
call sub.msvcrt.dll_strcpy
fld dword [0x6c46e3e8]
fld dword [0x6c46e3ec]
fsub st(1)
fld xword [0x6c369070]
fxch st(1)
fyl2x
fmul dword [0x6c368f54]
fstp qword [esp + 8]
mov dword [esp], 0
mov dword [esp + 4], 0x40240000
fstp dword [esp + 0x40]
call sub.msvcrt.dll_pow
fld dword [esp + 0x40]
faddp st(1)
fstp dword [esp]
call fcn.6c23a5a0
mov dword [esp + 4], eax
mov dword [esp], 0x6c453260
call sub.msvcrt.dll_strcpy
fld dword [0x6c46e3e8]
fld dword [0x6c46e3ec]
fsub st(1)
fld xword [0x6c369070]
fxch st(1)
fyl2x
fld dword [esp + 0x30]
fmulp st(1)
fstp qword [esp + 8]
mov dword [esp], 0
mov dword [esp + 4], 0x40240000
fstp dword [esp + 0x40]
call sub.msvcrt.dll_pow
fld dword [esp + 0x40]
faddp st(1)
fstp dword [esp]
call fcn.6c23a5a0
mov dword [esp + 4], eax
mov dword [esp], 0x6c453360
call sub.msvcrt.dll_strcpy
fld dword [0x6c46e3e8]
fld dword [0x6c46e3ec]
fsub st(1)
fld xword [0x6c369070]
fxch st(1)
fyl2x
fmul dword [0x6c3690c4]
fstp qword [esp + 8]
mov dword [esp], 0
mov dword [esp + 4], 0x40240000
fstp dword [esp + 0x30]
call sub.msvcrt.dll_pow
fld dword [esp + 0x30]
faddp st(1)
fstp dword [esp]
call fcn.6c23a5a0
mov dword [esp + 4], eax
mov dword [esp], 0x6c453460
call sub.msvcrt.dll_strcpy
mov eax, dword [0x6c46e3ec]
mov dword [esp], eax
call fcn.6c23a5a0
mov dword [esp + 4], eax
mov dword [esp], 0x6c453560
call sub.msvcrt.dll_strcpy
mov dword [0x6c453048], 0x6c481ce0
mov esi, 0x6c46e880
mov edi, 0x6c368375
mov ecx, 4
repe cmpsb byte [esi], byte es:[edi]
jne 0x6c24593c
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
and eax, 0x2000
jne 0x6c245e57
mov esi, edx
add esi, 8
mov edi, str.insolation
mov ecx, 0xb
repe cmpsb byte [esi], byte es:[edi]
je 0x6c245d44
test eax, eax
jne 0x6c245d39
mov esi, dword [ebp + 0xc]
add esi, 8
mov edi, str.sunlight
mov ecx, 9
repe cmpsb byte [esi], byte es:[edi]
je 0x6c245c28
test eax, eax
jne 0x6c245c1d
mov esi, dword [ebp + 0xc]
add esi, 8
mov edi, str.insolationyear
mov ecx, 0xf
repe cmpsb byte [esi], byte es:[edi]
je 0x6c245b0a
test eax, eax
jne 0x6c245aff
mov esi, dword [ebp + 0xc]
add esi, 8
mov edi, str.sunlightyear
mov ecx, 0xd
repe cmpsb byte [esi], byte es:[edi]
je 0x6c2459f0
mov eax, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 8
mov dword [esp], str.diagonal
call sub.msvcrt_ruby200.dll_rb_intern2
mov dword [0x6c471f88], eax
jmp 0x6c2450cd
mov dword [esp + 4], 4
mov dword [esp], 0x6c36841e
call sub.msvcrt_ruby200.dll_rb_intern2
mov esi, eax
mov dword [0x6c471f84], eax
jmp 0x6c2450c0
mov dword [esp + 4], 6
mov dword [esp], str.bounds
call sub.msvcrt_ruby200.dll_rb_intern2
mov esi, eax
mov dword [0x6c471f80], eax
jmp 0x6c24507e
lea ebx, [esp + 0xa0]
mov esi, dword [0x6c46ea24]
test esi, esi
jne 0x6c2449ba
mov dword [esp + 4], 0xb
mov dword [esp], 0x6c3685f1
call sub.msvcrt_ruby200.dll_rb_intern2
mov esi, eax
mov dword [0x6c46ea24], eax
jmp 0x6c2449ba
mov dword [0x6c46e840], 0
mov eax, 1
jmp 0x6c244896
mov dword [0x6c46e3a8], 0x6c237af0
mov dword [0x6c46e8a0], 0x6c2395d8
fld dword [0x6c368e90]
fmul dword [0x6c46e8e0]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453160
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8e0]
fld dword [0x6c46e8e4]
fsub st(1)
fmul dword [0x6c368f54]
faddp st(1)
fmul dword [0x6c368e90]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453260
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8e0]
fld dword [0x6c46e8e4]
fsub st(1)
fmul dword [0x6c368eb0]
faddp st(1)
fmul dword [0x6c368e90]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453360
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8e0]
fld dword [0x6c46e8e4]
fsub st(1)
fmul dword [0x6c3690c4]
faddp st(1)
fmul dword [0x6c368e90]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453460
call sub.msvcrt.dll_sprintf
fld dword [0x6c368e90]
fmul dword [0x6c46e8e4]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453560
call sub.msvcrt.dll_sprintf
mov dword [0x6c453048], 0x6c481ce0
mov eax, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0xc]
jmp 0x6c24592a
mov dword [0x6c46e3a8], 0x6c23b8ec
mov dword [0x6c46e8a0], 0x6c2395d8
fld dword [0x6c46e8f8]
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368664
mov dword [esp], 0x6c453160
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8f8]
fld dword [0x6c46e8fc]
fsub st(1)
fmul dword [0x6c368f54]
faddp st(1)
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368664
mov dword [esp], 0x6c453260
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8f8]
fld dword [0x6c46e8fc]
fsub st(1)
fmul dword [0x6c368eb0]
faddp st(1)
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368664
mov dword [esp], 0x6c453360
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8f8]
fld dword [0x6c46e8fc]
fsub st(1)
fmul dword [0x6c3690c4]
faddp st(1)
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368664
mov dword [esp], 0x6c453460
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8fc]
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368664
mov dword [esp], 0x6c453560
call sub.msvcrt.dll_sprintf
fld dword [0x6c368ee8]
fld dword [0x6c46e8f8]
fmul st(1)
fstp dword [0x6c46e8f8]
fmul dword [0x6c46e8fc]
fstp dword [0x6c46e8fc]
mov dword [0x6c453048], 0x6c481ce0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
and eax, 0x2000
jmp 0x6c24591c
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + 0xc]
jmp 0x6c24590a
mov dword [0x6c46e3a8], 0x6c237cdc
mov dword [0x6c46e8a0], 0x6c2395d8
fld dword [0x6c368e90]
fmul dword [0x6c46e8e0]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453160
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8e0]
fld dword [0x6c46e8e4]
fsub st(1)
fmul dword [0x6c368f54]
faddp st(1)
fmul dword [0x6c368e90]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453260
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8e0]
fld dword [0x6c46e8e4]
fsub st(1)
fmul dword [0x6c368eb0]
faddp st(1)
fmul dword [0x6c368e90]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453360
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8e0]
fld dword [0x6c46e8e4]
fsub st(1)
fmul dword [0x6c3690c4]
faddp st(1)
fmul dword [0x6c368e90]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453460
call sub.msvcrt.dll_sprintf
fld dword [0x6c368e90]
fmul dword [0x6c46e8e4]
fisttp dword [esp + 8]
mov dword [esp + 4], str._d__
mov dword [esp], 0x6c453560
call sub.msvcrt.dll_sprintf
mov dword [0x6c453048], 0x6c481ce0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
and eax, 0x2000
jmp 0x6c2458fc
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + 0xc]
jmp 0x6c2458ea
mov dword [0x6c46e3a8], 0x6c237e7c
mov dword [0x6c46e8a0], 0x6c2395d8
fld dword [0x6c46e8c0]
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368637
mov dword [esp], 0x6c453160
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8c0]
fld dword [0x6c46e8c4]
fsub st(1)
fmul dword [0x6c368f54]
faddp st(1)
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368637
mov dword [esp], 0x6c453260
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8c0]
fld dword [0x6c46e8c4]
fsub st(1)
fmul dword [0x6c368eb0]
faddp st(1)
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368637
mov dword [esp], 0x6c453360
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8c0]
fld dword [0x6c46e8c4]
fsub st(1)
fmul dword [0x6c3690c4]
faddp st(1)
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368637
mov dword [esp], 0x6c453460
call sub.msvcrt.dll_sprintf
fld dword [0x6c46e8c4]
fstp qword [esp + 8]
mov dword [esp + 4], 0x6c368637
mov dword [esp], 0x6c453560
call sub.msvcrt.dll_sprintf
fld dword [0x6c368ee8]
fld dword [0x6c46e8c0]
fmul st(1)
fstp dword [0x6c46e8c0]
fmul dword [0x6c46e8c4]
fstp dword [0x6c46e8c4]
mov dword [0x6c453048], 0x6c481ce0
mov edx, dword [ebp + 0xc]
mov eax, dword [edx]
and eax, 0x2000
jmp 0x6c2458dc
mov edx, dword [ebp + 0xc]
mov esi, dword [edx + 0xc]
jmp 0x6c2458ca