Function at 0x523140
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x150
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.00522800
fldz
fstp dword [esi + 0x20]
push 2
mov ecx, dword [0xa1e864]
call fcn.00551ac0
test byte [0x8f71b8], 1
je 0x523455
cmp dword [0x9f9d74], 2
je 0x523455
cmp byte [0x91eb88], 0
je 0x52318e
fld dword [0xa191d8]
jmp 0x523190
fld1
fstp dword [esi + 4]
fldz
fcom dword [esi + 4]
fnstsw ax
test ah, 0x41
jne 0x5231a4
fstp dword [esi + 4]
jmp 0x5231bd
fstp st(0)
fld dword [0x5ae088]
fcom dword [esi + 4]
fnstsw ax
test ah, 5
jp 0x5231bb
fstp dword [esi + 4]
jmp 0x5231bd
fstp st(0)
fld dword [esi + 4]
fmul dword [0x5ad784]
call fcn.00588a90
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x5adc38]
fstp dword [esi + 4]
mov eax, dword [0x91ea8c]
sub eax, 4
je 0x523214
sub eax, 1
jne 0x523249
push eax
mov ecx, 0xa18578
call fcn.004d24a0
test eax, eax
je 0x523249
push str.Weather
mov ecx, eax
call fcn.00567f50
test eax, eax
je 0x523249
push eax
mov ecx, esi
call fcn.00520260
jmp 0x523241
mov eax, dword [0x679888]
test eax, eax
jne 0x523222
mov eax, 0x5ad73f
push eax
lea eax, [esp + 0x64]
push 0x623eb4
push eax
call fcn.00589571
add esp, 0xc
lea ecx, [esp + 0x60]
push ecx
mov ecx, esi
call fcn.00520730
test eax, eax
je 0x5232ef
mov eax, dword [0x91ea8c]
sub eax, 1
je 0x523275
sub eax, 1
je 0x52326d
sub eax, 1
je 0x523265
fld dword [0x5ae17c]
jmp 0x52327b
fld dword [0x5ae1dc]
jmp 0x52327b
fld dword [0x623d2c]
jmp 0x52327b
fld dword [str.ff_33]
mov ecx, esi
fstp dword [esp + 0x14]
call fcn.00522800
push 0x10
call fcn.00588cb9
add esp, 4
test eax, eax
je 0x52329d
mov ecx, eax
call fcn.0051fa70
jmp 0x52329f
xor eax, eax
fldz
mov dword [esi + 0x48], eax
fstp dword [eax]
mov edx, dword [esi + 0x48]
fld dword [0x5adc20]
fstp dword [edx + 4]
mov eax, dword [esi + 0x48]
fld dword [esp + 0x14]
fstp dword [eax + 8]
mov ecx, dword [esi + 0x48]
mov dword [ecx + 0xc], 0
mov edx, dword [esi + 0x48]
fld dword [edx + 8]
push ecx
mov ecx, esi
fstp dword [esp]
call fcn.0051fc30
fld dword [esi + 0x30]
mov eax, dword [esi + 0x48]
fstp dword [esi + 0x34]
fld dword [esi + 0x30]
fstp dword [esi + 0x38]
fld dword [eax + 4]
fst dword [esi + 0x3c]
fstp dword [esi + 0x40]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov eax, dword [esi + 0x40]
mov edi, dword [esi + 0x2c]
mov ebp, dword [esi + 0x30]
mov ebx, dword [esi + 0x34]
mov dword [esp + 0x30], ecx
mov ecx, esi
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
call fcn.005221a0
fldz
mov ecx, dword [esp + 0x30]
fst dword [esi + 8]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov dword [esi + 0x2c], edi
mov dword [esi + 0x30], ebp
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ecx
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], eax
fld dword [esi + 0x2c]
fstp dword [esi + 0xc]
mov dword [esi + 0x44], ecx
fld dword [0x5b319c]
mov byte [esi + 0x4c], 1
fstp dword [esi + 0x50]
xor ecx, ecx
mov eax, 0xffff
mov word [esi + 0x56], ax
mov word [esi + 0x58], ax
mov word [esi + 0x54], cx
mov word [esi + 0x5a], cx
mov word [esi + 0x5c], 0x7fff
mov word [esi + 0x5e], 0x8000
mov byte [esi + 0x60], 0xff
mov byte [esi + 0x61], 0xff
fcomp dword [esi + 0x38]
fnstsw ax
test ah, 5
jp 0x52338a
lea eax, [ecx + 1]
jmp 0x52338c
xor eax, eax
lea edi, [esi + 0x214]
mov byte [esi + 0x18], al
mov ecx, 0xa191fc
mov eax, edi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x5233c0
test dl, dl
je 0x5233bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x5233c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x5233a0
xor eax, eax
jmp 0x5233c5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x5233fd
mov edx, edi
xor eax, eax
sub edx, 0xa191fc
mov cl, byte [eax + 0xa191fc]
test cl, cl
je 0x5233ec
mov byte [eax + edx + 0xa191fc], cl
add eax, 1
cmp eax, 0xb
jl 0x5233d3
push 1
lea ecx, [esi + 0x120]
mov byte [eax + edi], 0
call fcn.0051f600
fld dword [0x62413c]
fst dword [esp + 0x14]
fld dword [0x5aded4]
jmp 0x523411
fxch st(1)
fld dword [0xa19208]
push 1
fadd st(2)
sub esp, 0xc
mov ecx, esi
fstp dword [esp + 8]
fxch st(1)
fstp dword [esp + 4]
fstp dword [esp]
call fcn.00521210
fld dword [esp + 0x14]
fld dword [0x5aded4]
fadd st(1), st(0)
fxch st(1)
fst dword [esp + 0x14]
fldz
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x52340f
fstp st(0)
fstp st(0)
jmp 0x523459
mov byte [esi + 0x18], 0
fld dword [0x623e5c]
mov dword [esi + 0x24], 0xffffffff
fstp dword [esi + 0x64]
mov ecx, esi
fld dword [0x624138]
fstp dword [esi + 0x28]
mov eax, dword [0x9f9488]
mov edx, eax
and edx, 0xff
fld dword [edx*4 + 0x9f988c]
add eax, 1
fmul dword [0x5ad7ac]
mov dword [0x9f9488], eax
fstp dword [esi + 0x11c]
call fcn.0051fa90
mov eax, dword [esi + 0x120]
push eax
mov dword [esi + 0x220], 0
mov ecx, dword [0xa1e864]
push str.SUNRISE
call fcn.0053e830
mov dword [esi + 0x228], eax
mov eax, dword [esi + 0x120]
mov ecx, dword [0xa1e864]
push eax
push 0x62412c
call fcn.0053e830
mov dword [esi + 0x22c], eax
mov eax, dword [esi + 0x120]
mov ecx, dword [0xa1e864]
push eax
push str.SUNSET
call fcn.0053e830
mov dword [esi + 0x230], eax
mov eax, dword [esi + 0x120]
mov ecx, dword [0xa1e864]
push eax
push str.NIGHT
call fcn.0053e830
mov dword [esi + 0x234], eax
mov eax, dword [esi + 0x120]
mov ecx, dword [0xa1e864]
push eax
push str.CLOUDY
call fcn.0053e830
test eax, eax
je 0x523547
push 0
push 0
push 0
mov ecx, eax
call fcn.0053e480
push 0
push 0
push str.SUNRISE
mov ecx, 0xa47ba8
call fcn.00544f00
push 0
push 0
push 0x62412c
mov ecx, 0xa47ba8
mov dword [esi + 0x238], eax
call fcn.00544f00
push 0
push 0
push str.SUNSET
mov ecx, 0xa47ba8
mov dword [esi + 0x23c], eax
call fcn.00544f00
push 0
push 0
push str.NIGHT
mov ecx, 0xa47ba8
mov dword [esi + 0x240], eax
call fcn.00544f00
push 0
mov dword [esi + 0x244], eax
mov ecx, dword [0xa1e864]
push 0x624110
call fcn.0053e830
push 0
push 0
push 0x624110
mov ecx, 0xa47ba8
mov dword [esi + 0x258], eax
call fcn.00544f00
fld dword [0x62410c]
mov dword [esi + 0x25c], eax
xor eax, eax
mov dword [esi + 0x260], eax
mov dword [esi + 0x270], eax
mov ecx, 3
mov dword [esi + 0x264], ecx
mov dword [esi + 0x274], ecx
mov edx, 5
mov dword [esi + 0x268], edx
mov dword [esi + 0x278], edx
mov edi, 6
mov dword [esi + 0x26c], edi
mov dword [esi + 0x27c], edi
fst dword [esi + 0x280]
fld dword [0x624108]
lea edi, [esi + 0x280]
fst dword [edi + 4]
lea ebp, [esi + 0x28c]
fst dword [edi + 8]
lea ebx, [esi + 0x298]
fld dword [0x624104]
fstp dword [ebp]
fld dword [0x624100]
fstp dword [ebp + 4]
fld dword [0x6240fc]
fst dword [ebp + 8]
fldz
fst dword [ebx]
fst dword [ebx + 4]
fst dword [ebx + 8]
fxch st(3)
fst dword [esi + 0x2a4]
fst dword [esi + 0x2a8]
fst dword [esi + 0x2ac]
fld dword [0x5b31ec]
fst dword [esi + 0x2b0]
fst dword [esi + 0x2b4]
fstp dword [esi + 0x2b8]
fxch st(3)
fst dword [esi + 0x2bc]
fst dword [esi + 0x2c0]
fst dword [esi + 0x2c4]
fxch st(3)
fstp dword [esi + 0x2c8]
fxch st(1)
fst dword [esi + 0x2cc]
fst dword [esi + 0x2d0]
push eax
fxch st(1)
mov ecx, 0xa18578
fst dword [esi + 0x2d4]
mov dword [esp + 0x20], 0x6240f0
fstp dword [esi + 0x2d8]
fld dword [0x6240ec]
fstp dword [esi + 0x2dc]
fxch st(1)
fst dword [esi + 0x2e0]
fst dword [esi + 0x2e4]
fst dword [esi + 0x2e8]
fld dword [0x60d4b4]
fst dword [esi + 0x2ec]
fst dword [esi + 0x2f0]
fstp dword [esi + 0x2f4]
fxch st(1)
fst dword [esi + 0x2f8]
fst dword [esi + 0x2fc]
fstp dword [esi + 0x300]
fst dword [esi + 0x304]
fst dword [esi + 0x308]
fst dword [esi + 0x30c]
fld dword [0x5bf868]
fstp dword [esi + 0x310]
fld dword [0x5da428]
fstp dword [esi + 0x314]
fld dword [0x5ad7ac]
fstp dword [esi + 0x318]
fld dword [0x5ae22c]
fstp dword [esi + 0x31c]
fld dword [0x6240e8]
fstp dword [esi + 0x320]
fst dword [esp + 0x24]
fstp dword [esp + 0x40]
fld dword [0x61d0d0]
fstp dword [esp + 0x14]
call fcn.004d24a0
test eax, eax
mov dword [esp + 0x14], eax
je 0x523cee
push str.Latitude
mov ecx, eax
call fcn.00567f50
test eax, eax
je 0x5237c4
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5237b7
mov eax, 0x5ad73f
push eax
call fcn.0058ad69
fstp dword [esp + 0x24]
add esp, 4
mov ecx, dword [esp + 0x14]
push str.NorthDirection
call fcn.00567f50
test eax, eax
je 0x5237ef
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5237e2
mov eax, 0x5ad73f
push eax
call fcn.0058ad69
fstp dword [esp + 0x40]
add esp, 4
mov ecx, dword [esp + 0x14]
push str.RaceDate
call fcn.00567f50
test eax, eax
je 0x523811
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x52380d
mov eax, 0x5ad73f
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
push str.SunriseAmbientRGB
call fcn.00567f50
test eax, eax
je 0x52384c
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x52382f
mov eax, 0x5ad73f
lea ecx, [esi + 0x288]
push ecx
lea edx, [esi + 0x284]
push edx
push edi
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
mov edi, dword [esp + 0x14]
push str.SunriseDirectionalRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523889
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x52386c
mov eax, 0x5ad73f
lea ecx, [esi + 0x294]
push ecx
lea edx, [esi + 0x290]
push edx
push ebp
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.SunriseFogRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x5238c2
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5238a5
mov eax, 0x5ad73f
lea ecx, [esi + 0x2a0]
push ecx
lea edx, [esi + 0x29c]
push edx
push ebx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.DayAmbientRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523901
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5238de
mov eax, 0x5ad73f
lea ecx, [esi + 0x2ac]
push ecx
lea edx, [esi + 0x2a8]
push edx
lea ecx, [esi + 0x2a4]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.DayDirectionalRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523940
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x52391d
mov eax, 0x5ad73f
lea ecx, [esi + 0x2b8]
push ecx
lea edx, [esi + 0x2b4]
push edx
lea ecx, [esi + 0x2b0]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.DayFogRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x52397f
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x52395c
mov eax, 0x5ad73f
lea ecx, [esi + 0x2c4]
push ecx
lea edx, [esi + 0x2c0]
push edx
lea ecx, [esi + 0x2bc]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.SunsetAmbientRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x5239be
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x52399b
mov eax, 0x5ad73f
lea ecx, [esi + 0x2d0]
push ecx
lea edx, [esi + 0x2cc]
push edx
lea ecx, [esi + 0x2c8]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.SunsetDirectionalRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x5239fd
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x5239da
mov eax, 0x5ad73f
lea ecx, [esi + 0x2dc]
push ecx
lea edx, [esi + 0x2d8]
push edx
lea ecx, [esi + 0x2d4]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.SunsetFogRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523a3c
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523a19
mov eax, 0x5ad73f
lea ecx, [esi + 0x2e8]
push ecx
lea edx, [esi + 0x2e4]
push edx
lea ecx, [esi + 0x2e0]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.NightAmbientRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523a7b
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523a58
mov eax, 0x5ad73f
lea ecx, [esi + 0x2f4]
push ecx
lea edx, [esi + 0x2f0]
push edx
lea ecx, [esi + 0x2ec]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.NightDirectionalRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523aba
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523a97
mov eax, 0x5ad73f
lea ecx, [esi + 0x300]
push ecx
lea edx, [esi + 0x2fc]
push edx
lea ecx, [esi + 0x2f8]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.NightFogRGB
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523af9
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523ad6
mov eax, 0x5ad73f
lea ecx, [esi + 0x30c]
push ecx
lea edx, [esi + 0x308]
push edx
lea ecx, [esi + 0x304]
push ecx
push str.___f____f____f
push eax
call fcn.00589c18
add esp, 0x14
push str.SkyBlendRange
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523bc6
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523b19
mov eax, 0x5ad73f
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
push str.___f____f____f____f
push eax
call fcn.00589c18
add esp, 0x18
cmp eax, 4
jne 0x523b97
fld dword [esp + 0x28]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x523b93
fld dword [esp + 0x2c]
fcom st(2)
fnstsw ax
test ah, 1
jne 0x523b8b
fld dword [esp + 0x30]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x523b8f
fxch st(2)
fstp dword [esi + 0x310]
fxch st(2)
fstp dword [esi + 0x314]
fxch st(1)
fstp dword [esi + 0x318]
fstp dword [esi + 0x31c]
jmp 0x523bc6
fstp st(0)
jmp 0x523b93
fstp st(1)
fstp st(2)
fstp st(1)
fstp st(0)
cmp dword [0xa1a2c8], 1
jl 0x523bc6
push 0x58f
push str...SourceweatherOld.cpp
mov ecx, 0xa1a2c8
call fcn.004f3e00
push str.Could_not_read_all_four_SkyBlendRange_parameters_in_GDB_or_values_were_out_of_order
push 0xa1a2c8
call fcn.004f3d30
add esp, 8
push str.SkyBlendSunAngles
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523ca9
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523be6
mov eax, 0x5ad73f
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0x30]
push edx
push str.___f____f____f____f
push eax
call fcn.00589c18
add esp, 0x18
cmp eax, 4
jne 0x523c7a
fld dword [esp + 0x28]
fld dword [esp + 0x24]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x523c6e
fld dword [esp + 0x2c]
fcom st(2)
fnstsw ax
test ah, 1
jne 0x523c6c
fld dword [esp + 0x30]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x523c72
fld dword [0x623b8c]
fmul st(3), st(0)
fxch st(3)
fsin
fstp dword [esi + 0x310]
fxch st(3)
fmul st(2)
fsin
fstp dword [esi + 0x314]
fmul st(1)
fsin
fstp dword [esi + 0x318]
fmulp st(1)
fsin
fstp dword [esi + 0x31c]
jmp 0x523ca9
fstp st(1)
fstp st(0)
jmp 0x523c78
fstp st(2)
fstp st(0)
fstp st(1)
fstp st(0)
cmp dword [0xa1a2c8], 1
jl 0x523ca9
push 0x5a3
push str...SourceweatherOld.cpp
mov ecx, 0xa1a2c8
call fcn.004f3e00
push str.Could_not_read_all_four_SkyBlendRange_parameters_in_GDB_or_values_were_out_of_order
push 0xa1a2c8
call fcn.004f3d30
add esp, 8
push str.ShadowMinSunAngle
mov ecx, edi
call fcn.00567f50
test eax, eax
je 0x523cee
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x523cc5
mov eax, 0x5ad73f
lea ecx, [esp + 0x14]
push ecx
push 0x60dc90
push eax
call fcn.00589c18
add esp, 0xc
test eax, eax
je 0x523cee
fld dword [esp + 0x14]
fmul dword [0x623b8c]
fsin
fstp dword [esi + 0x320]
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x44]
push eax
push str._s__d
push ecx
call fcn.00589c18
add esp, 0x10
cmp eax, 2
jne 0x523ef8
lea edx, [esp + 0x40]
push 0x623f2c
push edx
mov byte [esp + 0x4b], 0
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523d3d
fild dword [esp + 0x18]
fadd dword [0x5ad750]
jmp 0x523ec6
lea eax, [esp + 0x40]
push 0x623f28
push eax
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523d62
fild dword [esp + 0x18]
fadd dword [0x623f24]
jmp 0x523ec6
lea ecx, [esp + 0x40]
push 0x623f20
push ecx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523d87
fild dword [esp + 0x18]
fadd dword [0x623f1c]
jmp 0x523ec6
lea edx, [esp + 0x40]
push 0x623f18
push edx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523dac
fild dword [esp + 0x18]
fadd dword [0x623f14]
jmp 0x523ec6
lea eax, [esp + 0x40]
push 0x623f10
push eax
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523dd1
fild dword [esp + 0x18]
fadd dword [0x623f0c]
jmp 0x523ec6
lea ecx, [esp + 0x40]
push 0x623f08
push ecx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523df6
fild dword [esp + 0x18]
fadd dword [0x623f04]
jmp 0x523ec6
lea edx, [esp + 0x40]
push 0x623f00
push edx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523e1b
fild dword [esp + 0x18]
fadd dword [0x623efc]
jmp 0x523ec6
lea eax, [esp + 0x40]
push 0x623ef8
push eax
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523e40
fild dword [esp + 0x18]
fadd dword [0x623ef4]
jmp 0x523ec6
lea ecx, [esp + 0x40]
push 0x623ef0
push ecx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523e62
fild dword [esp + 0x18]
fadd dword [0x623eec]
jmp 0x523ec6
lea edx, [esp + 0x40]
push 0x623ee8
push edx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523e84
fild dword [esp + 0x18]
fadd dword [0x623ee4]
jmp 0x523ec6
lea eax, [esp + 0x40]
push 0x623ee0
push eax
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523ea6
fild dword [esp + 0x18]
fadd dword [0x623edc]
jmp 0x523ec6
lea ecx, [esp + 0x40]
push 0x623ed8
push ecx
call fcn.00588ead
add esp, 8
test eax, eax
jne 0x523ef8
fild dword [esp + 0x18]
fadd dword [0x623ed4]
fmul dword [0x623ed0]
fst dword [esp + 0x10]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x523ee3
fstp st(1)
fst dword [esp + 0x10]
jmp 0x523f00
fstp st(0)
fld1
fcom st(1)
fnstsw ax
test ah, 5
jp 0x523efe
fstp st(1)
fst dword [esp + 0x10]
jmp 0x523f00
fld dword [esp + 0x10]
jmp 0x523f00
fstp st(0)
xor ebp, ebp
cmp dword [0xa47be4], ebp
jle 0x523f86
fstp st(0)
push ebp
mov ecx, 0xa47ba8
call fcn.005441a0
mov ebx, eax
lea ecx, [ebx + 4]
mov edx, 0x623ec8
mov dword [esp + 0x1c], ebx
call fcn.00567b10
test eax, eax
je 0x523f77
mov edi, dword [esi + 0x24c]
test edi, edi
lea ecx, [esi + 0x248]
jne 0x523f42
xor edx, edx
jmp 0x523f4a
mov edx, dword [ecx + 8]
sub edx, edi
sar edx, 2
test edi, edi
je 0x523f67
mov eax, dword [ecx + 0xc]
sub eax, edi
sar eax, 2
cmp edx, eax
jae 0x523f67
mov eax, dword [ecx + 8]
mov dword [eax], ebx
add eax, 4
mov dword [ecx + 8], eax
jmp 0x523f77
mov eax, dword [ecx + 8]
lea edx, [esp + 0x1c]
push edx
push 1
push eax
call fcn.0051ece0
add ebp, 1
cmp ebp, dword [0xa47be4]
jl 0x523f0c
fld dword [esp + 0x10]
sub esp, 0xc
fstp dword [esp + 8]
lea edi, [esi + 0x1dc]
fld dword [esp + 0x48]
mov ecx, edi
fstp dword [esp + 4]
fld dword [esp + 0x2c]
fstp dword [esp]
call fcn.0051f020
fld dword [0xa19208]
lea eax, [esp + 0x24]
fld qword [0x623b48]
push eax
call fcn.0058aeda
push ecx
mov ecx, edi
fstp dword [esp]
call fcn.0051f2b0
fld dword [esp + 0x2c]
fmul st(0), st(0)
fld dword [esp + 0x28]
fld st(0)
fmul st(1)
faddp st(2)
fld dword [esp + 0x24]
fmul st(0), st(0)
faddp st(2)
fldz
fcom st(2)
fnstsw ax
test ah, 1
je 0x523ff9
fxch st(2)
fsqrt
fld1
fdivrp st(1)
fmulp st(1)
jmp 0x523ffb
fstp st(2)
fcompp
fnstsw ax
test ah, 0x41
jne 0x524079
mov byte [esi + 0x224], 0
mov ecx, dword [0xa1e864]
push 0
call fcn.00540d70
mov ecx, dword [0xa1e7e0]
push 1
push 0x200
call fcn.005397e0
mov ecx, dword [0xa1e7e0]
push 0
push 0x400
call fcn.005397e0
xor edi, edi
mov edi, edi
mov ecx, dword [esi + 0x24c]
test ecx, ecx
je 0x5240e9
mov eax, dword [esi + 0x250]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x5240e9
mov ecx, dword [ecx + edi*4]
lea eax, [edi*4]
push 0
push 4
add edi, 1
call fcn.00543450
jmp 0x524040
mov byte [esi + 0x224], 1
mov ecx, dword [0xa1e864]
push 1
call fcn.00540d70
mov ecx, dword [0xa1e7e0]
push 0
push 0x200
call fcn.005397e0
mov ecx, dword [0xa1e7e0]
push 1
push 0x400
call fcn.005397e0
xor edi, edi
mov ecx, dword [esi + 0x24c]
test ecx, ecx
je 0x5240e9
mov eax, dword [esi + 0x250]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x5240e9
lea eax, [edi*4]
push 0xffffff
mov edx, ecx
mov ecx, dword [edx + eax]
push 4
add edi, 1
call fcn.00543450
jmp 0x5240b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x150
ret