Function at 0x4952f0
Capabilities:
Delete file

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x6a0
mov eax, dword [0x4b3008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebx + 8]
mov eax, dword [edi + 0xf8]
sub eax, dword [edi + 0xf4]
test eax, 0xfffffffc
je 0x49800a
push 0x7c1d48
lea eax, [ebp - 0x208]
mov dword [ebp - 0x668], 0
push str._sresult.ShopValves.dat
push eax
call fcn.00404440
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
lea eax, [ebp - 0x208]
add esp, 0xc
push 0x4a6fb8
push eax
call esi
add esp, 8
mov dword [ebp - 0x66c], eax
test eax, eax
je 0x49800a
push 0x4a7480
push eax
call fcn.00411e60
push 0x7c1d48
lea eax, [ebp - 0x608]
push str._sresult.ShopGPA.dat
push eax
call fcn.00404440
add esp, 0x14
lea eax, [ebp - 0x608]
push 0x4a6fb8
push eax
call esi
add esp, 8
mov dword [ebp - 0x658], eax
test eax, eax
je 0x49800a
push 0x4a74d0
push eax
call fcn.00411e60
push 0x7c1d48
lea eax, [ebp - 0x108]
mov dword [ebp - 0x64c], 0
push str._sresult.ShopAVO.dat
push eax
call fcn.00404440
add esp, 0x14
lea eax, [ebp - 0x108]
push 0x4a6fb8
push eax
call esi
add esp, 8
mov dword [ebp - 0x630], eax
test eax, eax
je 0x49800a
push 0x4a72e0
push eax
call fcn.00411e60
push 0x7c1d48
lea eax, [ebp - 0x408]
mov dword [ebp - 0x654], 0
push str._sresult.ShopDust.dat
push eax
call fcn.00404440
add esp, 0x14
lea eax, [ebp - 0x408]
push 0x4a6fb8
push eax
call esi
add esp, 8
mov dword [ebp - 0x650], eax
test eax, eax
je 0x49800a
push 0x4a735c
push eax
call fcn.00411e60
push 0x7c1d48
lea eax, [ebp - 0x308]
mov dword [ebp - 0x678], 0
push str._sresult.ShopAbsorber.dat
push eax
call fcn.00404440
add esp, 0x14
lea eax, [ebp - 0x308]
push 0x4a6fb8
push eax
call esi
add esp, 8
mov dword [ebp - 0x674], eax
test eax, eax
je 0x49800a
push 0x4a764c
push eax
call fcn.00411e60
push 0x7c1d48
lea eax, [ebp - 0x508]
mov dword [ebp - 0x664], 0
push str._sresult.ShopInOut.dat
push eax
call fcn.00404440
add esp, 0x14
lea eax, [ebp - 0x508]
push 0x4a6fb8
push eax
call esi
mov esi, eax
add esp, 8
mov dword [ebp - 0x670], esi
test esi, esi
je 0x49800a
push str.P_T_Ro_Q_CO2_N2_
push esi
call fcn.00411e60
mov ecx, dword [edi + 0xf8]
add esp, 8
mov eax, dword [edi + 0xf4]
mov dword [ebp - 0x698], ecx
mov dword [ebp - 0x680], eax
cmp eax, ecx
je 0x497f58
xorps xmm1, xmm1
mov ecx, dword [eax]
cmp dword [ecx + 0x49d8], 2
jge 0x495545
movsd xmm0, qword [ecx + 0x4890]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x497f37
mov eax, dword [ecx + 0x49d0]
test eax, eax
je 0x497f37
mov ecx, dword [eax + 0x485c]
mov eax, dword [eax + 0x4858]
mov dword [ebp - 0x694], ecx
mov dword [ebp - 0x67c], eax
cmp eax, ecx
je 0x497f37
nop dword [eax]
nop word [eax + eax]
mov eax, dword [eax]
mov ecx, dword [eax + 0x499c]
lea edx, [eax + 0x499c]
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x620], edx
lea edi, [eax + 0x49a8]
mov eax, dword [edx + 4]
sub eax, ecx
mov dword [ebp - 0x634], edi
sar eax, 2
test eax, eax
jne 0x4955c7
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 2
test eax, eax
je 0x497f19
jmp 0x49580b
xor esi, esi
mov dword [ebp - 0x614], esi
nop
mov edi, dword [ecx + esi*4]
mov dword [ebp - 0x634], edi
mov esi, dword [edi + 0x4868]
sub esi, dword [edi + 0x4864]
sar esi, 2
mov dword [ebp - 0x644], esi
test esi, esi
je 0x4957da
mov eax, dword [edi + 0x4858]
mov ecx, eax
mov edx, dword [edi + 0x485c]
cmp ecx, edx
je 0x49562e
nop dword [eax + eax]
mov edi, dword [ecx]
mov dword [ebp - 0x618], edi
cmp dword [edi + 0x4818], 1
mov edi, dword [ebp - 0x634]
je 0x495640
add ecx, 4
cmp ecx, edx
jne 0x495610
mov dword [ebp - 0x618], 0
cmp eax, edx
je 0x495658
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x638], ecx
cmp dword [ecx + 0x4818], 2
je 0x495662
add eax, 4
cmp eax, edx
jne 0x495640
mov dword [ebp - 0x638], 0
test esi, esi
jle 0x4957d4
nop word [eax + eax]
mov eax, dword [edi + 0x4868]
mov ecx, dword [ebp - 0x620]
add eax, 0xfffffffc
mov esi, dword [eax]
mov dword [edi + 0x4868], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x624], esi
mov dword [ebp - 0x610], esi
cmp eax, dword [ecx + 8]
je 0x4956a3
mov dword [eax], esi
add dword [ecx + 4], 4
jmp 0x4956b0
lea edx, [ebp - 0x610]
push edx
push eax
call fcn.00411bc0
mov eax, dword [esi + 0x4858]
mov edx, dword [esi + 0x485c]
cmp eax, edx
je 0x4956d8
mov ecx, dword [eax]
mov dword [ebp - 0x61c], ecx
cmp dword [ecx + 0x4818], 1
je 0x4956e0
add eax, 4
cmp eax, edx
jne 0x4956c0
xor ecx, ecx
mov dword [ebp - 0x61c], ecx
mov eax, dword [ecx + 0x4960]
push dword [ebp - 0x618]
mov edi, dword [ecx + 0x4964]
mov esi, dword [ecx + 0x4968]
mov dword [ebp - 0x610], eax
call fcn.00424940
mov ecx, dword [ebp - 0x61c]
mov eax, dword [ebp - 0x610]
mov dword [ecx + 0x4964], edi
mov edi, dword [ebp - 0x634]
mov dword [ecx + 0x4960], eax
mov dword [ecx + 0x4968], esi
mov eax, dword [edi + 0x485c]
sub eax, dword [edi + 0x4858]
sar eax, 2
cmp eax, 1
jbe 0x4957c7
mov ecx, dword [ebp - 0x624]
mov eax, dword [ecx + 0x4858]
mov edx, dword [ecx + 0x485c]
cmp eax, edx
je 0x495778
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x61c], ecx
cmp dword [ecx + 0x4818], 2
je 0x495780
add eax, 4
cmp eax, edx
jne 0x495760
xor ecx, ecx
mov dword [ebp - 0x61c], ecx
mov eax, dword [ecx + 0x4960]
push dword [ebp - 0x638]
mov edi, dword [ecx + 0x4964]
mov esi, dword [ecx + 0x4968]
mov dword [ebp - 0x624], eax
call fcn.00424940
mov ecx, dword [ebp - 0x61c]
mov eax, dword [ebp - 0x624]
mov dword [ecx + 0x4964], edi
mov edi, dword [ebp - 0x634]
mov dword [ecx + 0x4960], eax
mov dword [ecx + 0x4968], esi
sub dword [ebp - 0x644], 1
jne 0x495670
mov edx, dword [ebp - 0x620]
mov eax, dword [edx + 4]
mov esi, dword [ebp - 0x614]
mov ecx, dword [edx]
inc esi
sub eax, ecx
mov dword [ebp - 0x614], esi
sar eax, 2
cmp esi, eax
jb 0x4955d0
mov edi, dword [ebp - 0x62c]
add edi, 0x49a8
mov dword [ebp - 0x634], edi
mov eax, dword [edi + 4]
xor esi, esi
mov ecx, dword [edi]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x610], esi
test eax, eax
je 0x495a6f
nop word [eax + eax]
mov esi, dword [ecx + esi*4]
mov dword [ebp - 0x61c], esi
mov eax, dword [esi + 0x4868]
sub eax, dword [esi + 0x4864]
sar eax, 2
mov dword [ebp - 0x618], eax
test eax, eax
je 0x495a4a
mov eax, dword [esi + 0x4858]
mov ecx, eax
mov edx, dword [esi + 0x485c]
cmp ecx, edx
je 0x49588e
nop dword [eax + eax]
mov edi, dword [ecx]
mov dword [ebp - 0x614], edi
cmp dword [edi + 0x4818], 1
mov edi, dword [ebp - 0x634]
je 0x4958a0
add ecx, 4
cmp ecx, edx
jne 0x495870
mov dword [ebp - 0x614], 0
cmp eax, edx
je 0x4958b8
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x638], ecx
cmp dword [ecx + 0x4818], 2
je 0x4958c2
add eax, 4
cmp eax, edx
jne 0x4958a0
mov dword [ebp - 0x638], 0
cmp dword [ebp - 0x618], 0
jle 0x495a4a
nop
mov eax, dword [esi + 0x4868]
mov ecx, dword [ebp - 0x61c]
add eax, 0xfffffffc
mov esi, dword [eax]
mov dword [ecx + 0x4868], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x60c], esi
mov dword [ebp - 0x624], esi
cmp eax, dword [edi + 8]
je 0x495903
mov dword [eax], esi
add dword [edi + 4], 4
jmp 0x495912
lea ecx, [ebp - 0x624]
push ecx
push eax
mov ecx, edi
call fcn.00411bc0
mov eax, dword [esi + 0x4858]
mov edx, dword [esi + 0x485c]
cmp eax, edx
je 0x495948
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x644], ecx
cmp dword [ecx + 0x4818], 1
je 0x495950
add eax, 4
cmp eax, edx
jne 0x495930
xor ecx, ecx
mov dword [ebp - 0x644], ecx
mov eax, dword [ecx + 0x4960]
push dword [ebp - 0x614]
mov edi, dword [ecx + 0x4964]
mov esi, dword [ecx + 0x4968]
mov dword [ebp - 0x624], eax
call fcn.00424940
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x624]
mov dword [ecx + 0x4968], esi
mov esi, dword [ebp - 0x61c]
mov dword [ecx + 0x4960], eax
mov dword [ecx + 0x4964], edi
mov eax, dword [esi + 0x485c]
sub eax, dword [esi + 0x4858]
sar eax, 2
cmp eax, 1
jbe 0x495a37
mov ecx, dword [ebp - 0x60c]
mov eax, dword [ecx + 0x4858]
mov edx, dword [ecx + 0x485c]
cmp eax, edx
je 0x4959e8
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x644], ecx
cmp dword [ecx + 0x4818], 2
je 0x4959f0
add eax, 4
cmp eax, edx
jne 0x4959d0
xor ecx, ecx
mov dword [ebp - 0x644], ecx
mov eax, dword [ecx + 0x4960]
push dword [ebp - 0x638]
mov edi, dword [ecx + 0x4964]
mov esi, dword [ecx + 0x4968]
mov dword [ebp - 0x60c], eax
call fcn.00424940
mov ecx, dword [ebp - 0x644]
mov eax, dword [ebp - 0x60c]
mov dword [ecx + 0x4968], esi
mov esi, dword [ebp - 0x61c]
mov dword [ecx + 0x4960], eax
mov dword [ecx + 0x4964], edi
sub dword [ebp - 0x618], 1
mov edi, dword [ebp - 0x634]
jne 0x4958d0
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0x610]
mov ecx, dword [edi]
inc esi
sub eax, ecx
mov dword [ebp - 0x610], esi
sar eax, 2
cmp esi, eax
jb 0x495830
mov edx, dword [ebp - 0x620]
mov ecx, dword [edx + 4]
mov eax, dword [edx]
mov dword [ebp - 0x618], ecx
mov dword [ebp - 0x614], eax
cmp eax, ecx
je 0x4960ef
nop dword [eax + eax]
mov eax, dword [eax]
mov dword [ebp - 0x60c], eax
mov ecx, dword [eax + 0x485c]
mov eax, dword [eax + 0x4858]
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x610], eax
cmp eax, ecx
je 0x4960d4
nop dword [eax + eax]
mov eax, dword [eax]
mov dword [ebp - 0x61c], eax
mov edi, dword [eax + 0x4978]
test edi, edi
je 0x495aff
cmp dword [eax + 0x4860], 0
mov esi, dword [eax + 0x4960]
jne 0x495af8
mov eax, dword [ebp - 0x62c]
push esi
push edx
add eax, 0x49cc
push eax
call fcn.0040d5f0
test eax, eax
jne 0x495aff
push edi
push esi
call fcn.00424d60
mov eax, dword [ebp - 0x60c]
mov edx, dword [eax + 0x4818]
cmp edx, 0x5a
mov dword [ebp - 0x624], edx
lea eax, [edx - 0x5a]
cmovle eax, edx
lea ecx, [edx - 0x50]
cmp eax, 0x50
lea edi, [edx - 0x1e]
cmovle ecx, eax
lea eax, [edx - 0x46]
cmp ecx, 0x46
cmovle eax, ecx
lea ecx, [edx - 0x3c]
cmp eax, 0x3c
cmovle ecx, eax
lea eax, [edx - 0x32]
cmp ecx, 0x32
cmovle eax, ecx
lea ecx, [edx - 0x28]
cmp eax, 0x28
cmovle ecx, eax
mov eax, dword [ebp - 0x61c]
cmp ecx, 0x1e
cmovle edi, ecx
movsd xmm0, qword [eax + 0x4918]
lea esi, [eax + 0x18]
mulsd xmm0, qword [0x4af568]
push dword [eax + 0x4864]
push ecx
movsd qword [ebp - 0x648], xmm0
mov ecx, esi
movsd xmm0, qword [eax + 0x4898]
movsd qword [ebp - 0x640], xmm0
movsd xmm0, qword [eax + 0x4950]
subsd xmm0, qword [0x4af658]
movsd qword [ebp - 0x6a0], xmm0
movsd xmm0, qword [eax + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [ebp - 0x660], xmm0
call fcn.0042ece0
mov eax, dword [ebp - 0x61c]
sub esp, 0x10
movsd xmm2, qword [eax + 0x2418]
lea ecx, [eax + 0x2408]
movsd xmm1, qword [eax + 0x2410]
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [eax + 0x4930]
mulsd xmm0, qword [0x4ae928]
movsd qword [esp + 4], xmm0
call fcn.0042e5e0
mov eax, dword [ebp - 0x61c]
sub esp, 8
mov ecx, esi
movsd xmm2, qword [eax + 0x28]
movsd xmm1, qword [eax + 0x20]
movsd qword [esp + 4], xmm0
call fcn.0042e5e0
mov esi, dword [ebp - 0x61c]
sub esp, 0xac
movsd xmm2, qword [ebp - 0x640]
movsd xmm1, qword [ebp - 0x648]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [esi + 0x48]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [esi + 0x4880]
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [esi + 0x48e0]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [esi + 0x48f0]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [esi + 0x48f8]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esi + 0x4910]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [esi + 0x48e8]
movsd qword [esp + 0x70], xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm1
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x60], xmm1
movsd xmm0, qword [esi + 0x4908]
mulsd xmm0, qword [0x4aeb28]
mov eax, dword [esi + 0x4858]
movsd xmm1, qword [ebp - 0x660]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [esi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [ebp - 0x6a0]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [esi + 0x4920]
movsd qword [esp + 0x30], xmm1
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + 0x4928]
movsd qword [esp + 0x10], xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [eax + 0x78]
mov eax, dword [esi + 0x4818]
dec eax
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm2
push eax
mov eax, dword [ebp - 0x624]
add eax, 0xffffffec
cmp edi, 0x14
cmovle eax, edi
push eax
push 0
push dword [esi + 0x4960]
push str._d__d__d__d__.10lf__.10lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__d_n
push dword [ebp - 0x658]
call fcn.00411e60
mov ecx, dword [esi + 0x495c]
add esp, 0xe4
test ecx, ecx
je 0x495eae
mov eax, dword [ecx + 0x4920]
test eax, eax
je 0x495dcb
push eax
push dword [ecx + 0x489c]
call fcn.00424d60
mov edx, dword [esi + 0x495c]
sub esp, 8
xor eax, eax
mov dword [ebp - 0x64c], 1
movsd xmm0, qword [edx + 0x48]
mov ecx, dword [edx + 0x4864]
movsd qword [esp], xmm0
movsd xmm0, qword [edx + 0x4880]
push ecx
push dword [edx + 0x4860]
sub esp, 0x38
test ecx, ecx
setne al
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edx + 0x4918]
mulsd xmm0, qword [0x4af5d0]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movsd xmm0, qword [edx + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edx + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edx + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edx + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edx + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push 0
push dword [esi + 0x4964]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
add esp, 0x58
mov ecx, dword [esi + 0x4958]
mov dword [ebp - 0x624], ecx
test ecx, ecx
je 0x496064
mov edx, dword [ecx + 0x4900]
xorps xmm0, xmm0
mov eax, dword [ecx + 0x48b0]
mov edi, edx
mov dword [ebp - 0x654], 1
mov dword [ebp - 0x644], edi
movsd qword [ebp - 0x640], xmm0
test eax, eax
je 0x495fd9
movsd xmm2, qword [ecx + 0x4860]
mov esi, 1
movsd qword [ebp - 0x640], xmm2
cmp eax, esi
jl 0x495f7e
mov eax, dword [ebp - 0x61c]
lea edi, [ecx + 0x4868]
movsd xmm0, qword [eax + 0x20]
mulsd xmm0, qword [0x4ae888]
movsd qword [ebp - 0x660], xmm0
nop dword [eax]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
mulsd xmm0, qword [edi]
inc esi
add edi, 8
mov ecx, dword [ebp - 0x624]
movsd xmm2, qword [ebp - 0x640]
addsd xmm2, xmm0
movsd xmm0, qword [ebp - 0x660]
movsd qword [ebp - 0x640], xmm2
cmp esi, dword [ecx + 0x48b0]
jle 0x495f30
mov edi, dword [ebp - 0x644]
xorps xmm0, xmm0
mov edx, dword [ecx + 0x4900]
mulsd xmm2, qword [0x4af6e8]
mov esi, dword [ebp - 0x61c]
divsd xmm2, qword [0x4af760]
comisd xmm2, xmm0
jbe 0x495fc5
movsd xmm1, qword [esi + 0x30]
movaps xmm0, xmm1
mulsd xmm1, qword [0x4aeeb0]
divsd xmm0, xmm2
cvttsd2si edi, xmm0
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x495fc5
inc edi
movd xmm1, edx
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
movsd qword [ebp - 0x640], xmm1
mov eax, dword [ecx + 0x48f8]
test eax, eax
je 0x495fef
push eax
push dword [esi + 0x4968]
call fcn.00424d60
movsd xmm2, qword [ebp - 0x640]
sub esp, 8
mulsd xmm2, qword [0x4aeb28]
movsd xmm0, qword [esi + 0x28]
subsd xmm0, qword [0x4af658]
movsd xmm1, qword [esi + 0x20]
mulsd xmm1, qword [0x4ae8b0]
movsd qword [esp], xmm2
push edi
sub esp, 0x28
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
movups xmmword [esp + 0x18], xmm0
movsd xmm0, qword [esi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movups xmmword [esp + 8], xmm1
movsd qword [esp], xmm0
push 0
push dword [esi + 0x4968]
push str._d__d__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x650]
call fcn.00411e60
add esp, 0x44
mov ecx, dword [ebp - 0x62c]
cmp dword [ecx + 0x6f54], 1
jne 0x4960ad
mov eax, dword [ecx + 0x49ac]
lea edi, [ecx + 0x49a8]
sub eax, dword [edi]
test eax, 0xfffffffc
jne 0x4960b3
mov eax, dword [esi + 0x496c]
lea edx, [ebp - 0x624]
push 0
push 1
push edx
push eax
push eax
push ecx
mov dword [ebp - 0x624], 2
call fcn.0041c4a0
jmp 0x4960b3
mov edi, dword [ebp - 0x634]
mov eax, dword [ebp - 0x610]
mov edx, dword [ebp - 0x620]
add eax, 4
mov dword [ebp - 0x610], eax
cmp eax, dword [ebp - 0x638]
jne 0x495ac0
mov eax, dword [ebp - 0x614]
add eax, 4
mov dword [ebp - 0x614], eax
cmp eax, dword [ebp - 0x618]
jne 0x495a90
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [ebp - 0x620], ecx
mov dword [ebp - 0x644], eax
cmp eax, ecx
je 0x496734
nop dword [eax + eax]
mov eax, dword [eax]
mov dword [ebp - 0x60c], eax
mov ecx, dword [eax + 0x485c]
mov eax, dword [eax + 0x4858]
mov dword [ebp - 0x618], ecx
mov dword [ebp - 0x614], eax
cmp eax, ecx
je 0x496719
nop dword [eax + eax]
mov edi, dword [eax]
mov dword [ebp - 0x638], edi
mov eax, dword [edi + 0x4978]
test eax, eax
je 0x49618a
cmp dword [edi + 0x4860], 0
mov esi, dword [edi + 0x4960]
jne 0x496183
mov eax, dword [ebp - 0x62c]
push esi
push dword [ebp - 0x634]
add eax, 0x49d8
push eax
call fcn.0040d5f0
test eax, eax
jne 0x49618a
mov eax, dword [edi + 0x4978]
push eax
push esi
call fcn.00424d60
mov eax, dword [ebp - 0x60c]
mov edx, dword [eax + 0x4818]
cmp edx, 0x5a
lea eax, [edx - 0x5a]
cmovle eax, edx
lea ecx, [edx - 0x50]
cmp eax, 0x50
cmovle ecx, eax
lea eax, [edx - 0x46]
cmp ecx, 0x46
cmovle eax, ecx
lea ecx, [edx - 0x3c]
cmp eax, 0x3c
cmovle ecx, eax
lea eax, [edx - 0x32]
cmp ecx, 0x32
cmovle eax, ecx
lea ecx, [edx - 0x28]
cmp eax, 0x28
cmovle ecx, eax
lea eax, [edx - 0x1e]
cmp ecx, 0x1e
cmovle eax, ecx
mov dword [ebp - 0x610], eax
cmp eax, 0x14
jle 0x4961e9
lea eax, [edx - 0x14]
mov dword [ebp - 0x610], eax
movsd xmm0, qword [edi + 0x4918]
mulsd xmm0, qword [0x4af568]
push dword [edi + 0x4864]
push ecx
movsd qword [ebp - 0x6a0], xmm0
lea ecx, [edi + 0x18]
movsd xmm0, qword [edi + 0x4898]
movsd qword [ebp - 0x660], xmm0
movsd xmm0, qword [edi + 0x4950]
subsd xmm0, qword [0x4af658]
movsd qword [ebp - 0x640], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [ebp - 0x628], xmm0
call fcn.0042ece0
movsd xmm2, qword [edi + 0x2418]
lea ecx, [edi + 0x2408]
movsd xmm1, qword [edi + 0x2410]
sub esp, 0x10
movsd qword [esp + 0xc], xmm0
movsd xmm0, qword [edi + 0x4930]
mulsd xmm0, qword [0x4ae928]
movsd qword [esp + 4], xmm0
call fcn.0042e5e0
movsd xmm2, qword [edi + 0x28]
lea ecx, [edi + 0x18]
movsd xmm1, qword [edi + 0x20]
sub esp, 8
movsd qword [esp + 4], xmm0
call fcn.0042e5e0
sub esp, 0xac
movsd xmm2, qword [ebp - 0x660]
movsd xmm1, qword [ebp - 0x6a0]
mov eax, dword [edi + 0x4858]
movsd qword [esp + 0xa8], xmm0
movsd xmm0, qword [edi + 0x48]
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [edi + 0x4880]
movsd qword [esp + 0x98], xmm0
movsd xmm0, qword [edi + 0x48e0]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [edi + 0x48f0]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [edi + 0x48f8]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [edi + 0x4910]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [edi + 0x48e8]
movsd qword [esp + 0x70], xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm1
movsd qword [esp + 0x68], xmm0
movsd xmm0, qword [edi + 0x4908]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x60], xmm1
movsd xmm1, qword [ebp - 0x628]
movsd qword [esp + 0x58], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [ebp - 0x640]
movsd qword [esp + 0x48], xmm0
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [edi + 0x4920]
movsd qword [esp + 0x30], xmm1
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x4928]
movsd qword [esp + 0x10], xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [eax + 0x78]
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm2
push dword [edi + 0x4818]
push dword [ebp - 0x610]
push 0
push dword [edi + 0x4960]
push str._d__d__d__d__.10lf__.10lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__d_n
push dword [ebp - 0x658]
call fcn.00411e60
mov ecx, dword [edi + 0x495c]
add esp, 0xe4
test ecx, ecx
je 0x496522
mov eax, dword [ecx + 0x4920]
test eax, eax
je 0x49643f
push eax
push dword [ecx + 0x489c]
call fcn.00424d60
mov edx, dword [edi + 0x495c]
sub esp, 8
xor eax, eax
mov dword [ebp - 0x64c], 1
movsd xmm0, qword [edx + 0x48]
mov ecx, dword [edx + 0x4864]
movsd qword [esp], xmm0
movsd xmm0, qword [edx + 0x4880]
push ecx
push dword [edx + 0x4860]
sub esp, 0x38
test ecx, ecx
setne al
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edx + 0x4918]
mulsd xmm0, qword [0x4af5d0]
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm0
movsd xmm0, qword [edx + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edx + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edx + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edx + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edx + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push 0
push dword [edi + 0x4964]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
add esp, 0x58
mov ecx, dword [edi + 0x4958]
mov dword [ebp - 0x624], ecx
test ecx, ecx
je 0x4966d6
mov edx, dword [ecx + 0x4900]
xorps xmm0, xmm0
mov eax, dword [ecx + 0x48b0]
mov esi, edx
mov dword [ebp - 0x654], 1
mov dword [ebp - 0x610], esi
movsd qword [ebp - 0x640], xmm0
test eax, eax
je 0x49664b
movsd xmm2, qword [ecx + 0x4860]
mov esi, 1
movsd qword [ebp - 0x640], xmm2
cmp eax, esi
jl 0x4965ee
movsd xmm0, qword [edi + 0x20]
lea edi, [ecx + 0x4868]
mulsd xmm0, qword [0x4ae888]
movsd qword [ebp - 0x660], xmm0
nop dword [eax + eax]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
mulsd xmm0, qword [edi]
inc esi
add edi, 8
mov ecx, dword [ebp - 0x624]
movsd xmm2, qword [ebp - 0x640]
addsd xmm2, xmm0
movsd xmm0, qword [ebp - 0x660]
movsd qword [ebp - 0x640], xmm2
cmp esi, dword [ecx + 0x48b0]
jle 0x4965a0
mov edi, dword [ebp - 0x638]
xorps xmm0, xmm0
mov edx, dword [ecx + 0x4900]
mulsd xmm2, qword [0x4af6e8]
divsd xmm2, qword [0x4af760]
comisd xmm2, xmm0
jbe 0x496631
movsd xmm1, qword [edi + 0x30]
movaps xmm0, xmm1
mulsd xmm1, qword [0x4aeeb0]
divsd xmm0, xmm2
cvttsd2si esi, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm2
comisd xmm1, xmm0
jbe 0x496637
inc esi
jmp 0x496637
mov esi, dword [ebp - 0x610]
movd xmm1, edx
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm2
movsd qword [ebp - 0x640], xmm1
mov eax, dword [ecx + 0x48f8]
test eax, eax
je 0x496661
push eax
push dword [edi + 0x4968]
call fcn.00424d60
movsd xmm2, qword [ebp - 0x640]
sub esp, 8
mulsd xmm2, qword [0x4aeb28]
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd xmm1, qword [edi + 0x20]
mulsd xmm1, qword [0x4ae8b0]
movsd qword [esp], xmm2
push esi
sub esp, 0x28
unpcklpd xmm0, xmm0
unpcklpd xmm1, xmm1
movups xmmword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movups xmmword [esp + 8], xmm1
movsd qword [esp], xmm0
push 0
push dword [edi + 0x4968]
push str._d__d__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x650]
call fcn.00411e60
add esp, 0x44
mov eax, dword [edi + 0x496c]
lea ecx, [ebp - 0x684]
push 0
push 0
push ecx
push eax
push eax
push dword [ebp - 0x62c]
mov dword [ebp - 0x684], 2
call fcn.0041c4a0
mov eax, dword [ebp - 0x614]
add eax, 4
mov dword [ebp - 0x614], eax
cmp eax, dword [ebp - 0x618]
jne 0x496140
mov eax, dword [ebp - 0x644]
add eax, 4
mov dword [ebp - 0x644], eax
cmp eax, dword [ebp - 0x620]
jne 0x496110
mov esi, dword [ebp - 0x62c]
mov edx, dword [esi + 0x49d0]
lea ecx, [esi + 0x49cc]
mov eax, dword [ecx]
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x610], eax
cmp eax, edx
je 0x4969d4
nop dword [eax]
mov edi, dword [eax]
cmp dword [edi + 0x4978], 1
je 0x4967da
cmp dword [edi + 0x4860], 0
mov eax, dword [edi + 0x4960]
mov dword [ebp - 0x60c], eax
jne 0x496798
push eax
lea eax, [esi + 0x499c]
push eax
push ecx
call fcn.0040d5f0
test eax, eax
jne 0x4967a4
mov eax, dword [ebp - 0x60c]
push dword [edi + 0x4978]
push eax
call fcn.00424d60
mov eax, dword [esi + 0x49ac]
sub eax, dword [esi + 0x49a8]
test eax, 0xfffffffc
jne 0x4967da
mov eax, dword [edi + 0x496c]
lea ecx, [ebp - 0x60c]
push 0
push 0
push ecx
push eax
push eax
push esi
mov dword [ebp - 0x60c], 1
call fcn.0041c4a0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x48]
xorps xmm2, xmm2
mov eax, dword [edi + 0x4858]
sub esp, 0xc8
movsd xmm1, qword [edi + 0x4898]
movups xmmword [esp + 0xb8], xmm2
movups xmmword [esp + 0xa8], xmm2
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [edi + 0x4880]
movsd qword [esp + 0x98], xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [eax + 0x78]
mov eax, dword [edi + 0x4818]
movups xmmword [esp + 0x88], xmm2
dec eax
movups xmmword [esp + 0x78], xmm2
movups xmmword [esp + 0x68], xmm2
movups xmmword [esp + 0x58], xmm2
movups xmmword [esp + 0x48], xmm2
movups xmmword [esp + 0x38], xmm2
movups xmmword [esp + 0x28], xmm2
movups xmmword [esp + 0x18], xmm2
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
push eax
push dword [edi + 0x4974]
push 1
push dword [edi + 0x4960]
push str._d__d__d__d__.10lf__.10lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__d_n
push dword [ebp - 0x658]
call fcn.00411e60
mov ecx, dword [edi + 0x495c]
add esp, 0xe4
test ecx, ecx
je 0x496944
mov eax, dword [ecx + 0x4920]
cmp eax, 1
je 0x4968bb
push eax
push dword [ecx + 0x489c]
call fcn.00424d60
mov eax, dword [edi + 0x495c]
sub esp, 8
xorps xmm1, xmm1
mov dword [ebp - 0x64c], 1
mov dword [eax + 0x4864], 0
mov eax, dword [edi + 0x495c]
movsd xmm0, qword [eax + 0x48]
movsd qword [esp], xmm0
push dword [eax + 0x4864]
movsd xmm0, qword [eax + 0x4918]
push dword [eax + 0x4860]
mulsd xmm0, qword [0x4af5d0]
sub esp, 0x38
movsd qword [esp + 0x30], xmm1
mulsd xmm0, xmm1
movsd qword [esp + 0x28], xmm0
movups xmmword [esp + 0x18], xmm1
movups xmmword [esp + 8], xmm1
movsd qword [esp], xmm1
push 1
push dword [edi + 0x4964]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
add esp, 0x58
mov eax, dword [edi + 0x4958]
test eax, eax
je 0x4969b3
mov eax, dword [eax + 0x48f8]
cmp eax, 1
je 0x496965
push eax
push dword [edi + 0x4968]
call fcn.00424d60
mov eax, dword [edi + 0x4958]
sub esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x654], 1
movsd qword [esp], xmm0
push dword [eax + 0x4900]
sub esp, 0x28
movups xmmword [esp + 0x18], xmm0
movups xmmword [esp + 8], xmm0
movsd qword [esp], xmm0
push 1
push dword [edi + 0x4968]
push str._d__d__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x650]
call fcn.00411e60
add esp, 0x44
mov eax, dword [ebp - 0x610]
lea ecx, [esi + 0x49cc]
add eax, 4
mov dword [ebp - 0x610], eax
cmp eax, dword [ebp - 0x624]
jne 0x496760
mov edx, dword [esi + 0x49dc]
lea ecx, [esi + 0x49d8]
mov eax, dword [ecx]
mov dword [ebp - 0x614], ecx
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x610], eax
cmp eax, edx
je 0x496c40
mov esi, dword [ebp - 0x634]
mov edi, dword [eax]
cmp dword [edi + 0x4978], 1
je 0x496a40
cmp dword [edi + 0x4860], 0
mov eax, dword [edi + 0x4960]
mov dword [ebp - 0x60c], eax
jne 0x496a34
push eax
push esi
push ecx
call fcn.0040d5f0
test eax, eax
jne 0x496a40
mov eax, dword [ebp - 0x60c]
push dword [edi + 0x4978]
push eax
call fcn.00424d60
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x48]
xorps xmm2, xmm2
mov eax, dword [edi + 0x4858]
sub esp, 0xc8
movsd xmm1, qword [edi + 0x4898]
movups xmmword [esp + 0xb8], xmm2
movups xmmword [esp + 0xa8], xmm2
movsd qword [esp + 0xa0], xmm0
movsd xmm0, qword [edi + 0x4880]
movsd qword [esp + 0x98], xmm0
movaps xmm0, xmm1
mulsd xmm0, qword [eax + 0x78]
mov eax, dword [edi + 0x4818]
movups xmmword [esp + 0x88], xmm2
dec eax
movups xmmword [esp + 0x78], xmm2
movups xmmword [esp + 0x68], xmm2
movups xmmword [esp + 0x58], xmm2
movups xmmword [esp + 0x48], xmm2
movups xmmword [esp + 0x38], xmm2
movups xmmword [esp + 0x28], xmm2
movups xmmword [esp + 0x18], xmm2
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
push eax
push dword [edi + 0x4974]
push 1
push dword [edi + 0x4960]
push str._d__d__d__d__.10lf__.10lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__lf__d_n
push dword [ebp - 0x658]
call fcn.00411e60
mov eax, dword [edi + 0x495c]
add esp, 0xe4
test eax, eax
je 0x496baa
mov ecx, dword [eax + 0x4920]
cmp ecx, 1
je 0x496b21
push ecx
push dword [eax + 0x489c]
call fcn.00424d60
mov eax, dword [edi + 0x495c]
sub esp, 8
xorps xmm1, xmm1
mov dword [ebp - 0x64c], 1
mov dword [eax + 0x4864], 0
mov eax, dword [edi + 0x495c]
movsd xmm0, qword [eax + 0x48]
movsd qword [esp], xmm0
push dword [eax + 0x4864]
movsd xmm0, qword [eax + 0x4918]
push dword [eax + 0x4860]
mulsd xmm0, qword [0x4af5d0]
sub esp, 0x38
movsd qword [esp + 0x30], xmm1
mulsd xmm0, xmm1
movsd qword [esp + 0x28], xmm0
movups xmmword [esp + 0x18], xmm1
movups xmmword [esp + 8], xmm1
movsd qword [esp], xmm1
push 1
push dword [edi + 0x4964]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
add esp, 0x58
mov eax, dword [edi + 0x4958]
test eax, eax
je 0x496c19
mov eax, dword [eax + 0x48f8]
cmp eax, 1
je 0x496bcb
push eax
push dword [edi + 0x4968]
call fcn.00424d60
mov eax, dword [edi + 0x4958]
sub esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x654], 1
movsd qword [esp], xmm0
push dword [eax + 0x4900]
sub esp, 0x28
movups xmmword [esp + 0x18], xmm0
movups xmmword [esp + 8], xmm0
movsd qword [esp], xmm0
push 1
push dword [edi + 0x4968]
push str._d__d__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x650]
call fcn.00411e60
add esp, 0x44
mov eax, dword [ebp - 0x610]
mov ecx, dword [ebp - 0x614]
add eax, 4
mov dword [ebp - 0x610], eax
cmp eax, dword [ebp - 0x624]
jne 0x496a02
mov esi, dword [ebp - 0x62c]
mov edx, dword [esi + 0x4934]
mov eax, edx
mov ecx, dword [esi + 0x4930]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x49723e
mov dword [ebp - 0x64c], 1
cmp ecx, edx
je 0x496de7
nop dword [eax]
mov edi, dword [ecx]
xor eax, eax
cmp dword [edi + 0x4864], eax
setne al
mov dword [ebp - 0x60c], eax
xor eax, eax
mov dword [ebp - 0x610], eax
cmp dword [edi + 0x4860], eax
jne 0x496cb7
cmp dword [edi + 0x4858], eax
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x610], eax
mov ecx, dword [edi + 0x4920]
cmp ecx, eax
je 0x496cfe
push ecx
push dword [edi + 0x489c]
call fcn.00424d60
push 0
push dword [edi + 0x4920]
lea eax, [ebp - 0x688]
mov dword [ebp - 0x688], 2
push eax
push dword [edi + 0x48c4]
push dword [edi + 0x48c0]
push esi
call fcn.0041c4a0
mov eax, dword [ebp - 0x610]
movsd xmm0, qword [edi + 0x48]
sub esp, 8
movsd xmm1, qword [edi + 0x4918]
mulsd xmm1, qword [0x4af5d0]
movsd qword [esp], xmm0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x4880]
push dword [edi + 0x4860]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movd xmm0, dword [ebp - 0x60c]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x489c]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
mov ecx, dword [ebp - 0x614]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, dword [ebp - 0x624]
jne 0x496c80
mov edx, dword [esi + 0x4940]
mov eax, edx
mov ecx, dword [esi + 0x493c]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x60c], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x496f5e
cmp ecx, edx
je 0x496f5e
mov esi, edx
nop dword [eax + eax]
mov edi, dword [ecx]
xor eax, eax
cmp dword [edi + 0x4864], eax
setne al
mov dword [ebp - 0x60c], eax
xor eax, eax
mov dword [ebp - 0x610], eax
cmp dword [edi + 0x4860], eax
jne 0x496e57
cmp dword [edi + 0x4858], eax
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x610], eax
mov ecx, dword [edi + 0x4920]
cmp ecx, eax
je 0x496e73
push ecx
push dword [edi + 0x489c]
call fcn.00424d60
mov eax, dword [ebp - 0x610]
movsd xmm0, qword [edi + 0x48]
sub esp, 8
movsd xmm1, qword [edi + 0x4918]
mulsd xmm1, qword [0x4af5d0]
movsd qword [esp], xmm0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x4880]
push dword [edi + 0x4860]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movd xmm0, dword [ebp - 0x60c]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x489c]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
mov ecx, dword [ebp - 0x614]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, esi
jne 0x496e20
mov esi, dword [ebp - 0x62c]
mov edx, dword [esi + 0x4964]
mov eax, edx
mov ecx, dword [esi + 0x4960]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x60c], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x4970ce
cmp ecx, edx
je 0x4970ce
mov esi, edx
nop
mov edi, dword [ecx]
xor eax, eax
cmp dword [edi + 0x4864], eax
setne al
mov dword [ebp - 0x60c], eax
xor eax, eax
mov dword [ebp - 0x610], eax
cmp dword [edi + 0x4860], eax
jne 0x496fc7
cmp dword [edi + 0x4858], eax
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x610], eax
mov ecx, dword [edi + 0x4920]
cmp ecx, eax
je 0x496fe3
push ecx
push dword [edi + 0x489c]
call fcn.00424d60
mov eax, dword [ebp - 0x610]
movsd xmm0, qword [edi + 0x48]
sub esp, 8
movsd xmm1, qword [edi + 0x4918]
mulsd xmm1, qword [0x4af5d0]
movsd qword [esp], xmm0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x4880]
push dword [edi + 0x4860]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movd xmm0, dword [ebp - 0x60c]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x489c]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
mov ecx, dword [ebp - 0x614]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, esi
jne 0x496f90
mov esi, dword [ebp - 0x62c]
mov edx, dword [esi + 0x4970]
mov eax, edx
mov ecx, dword [esi + 0x496c]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x60c], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x49723e
cmp ecx, edx
je 0x49723e
mov esi, edx
nop
mov edi, dword [ecx]
xor eax, eax
cmp dword [edi + 0x4864], eax
setne al
mov dword [ebp - 0x60c], eax
xor eax, eax
mov dword [ebp - 0x610], eax
cmp dword [edi + 0x4860], eax
jne 0x497137
cmp dword [edi + 0x4858], eax
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x610], eax
mov ecx, dword [edi + 0x4920]
cmp ecx, eax
je 0x497153
push ecx
push dword [edi + 0x489c]
call fcn.00424d60
mov eax, dword [ebp - 0x610]
movsd xmm0, qword [edi + 0x48]
sub esp, 8
movsd xmm1, qword [edi + 0x4918]
mulsd xmm1, qword [0x4af5d0]
movsd qword [esp], xmm0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x4880]
push dword [edi + 0x4860]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movd xmm0, dword [ebp - 0x60c]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x489c]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
mov ecx, dword [ebp - 0x614]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, esi
jne 0x497100
mov esi, dword [ebp - 0x62c]
mov edx, dword [esi + 0x494c]
mov eax, edx
mov ecx, dword [esi + 0x4948]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x49755e
mov dword [ebp - 0x64c], 1
cmp ecx, edx
je 0x4973e7
nop word [eax + eax]
mov edi, dword [ecx]
xor eax, eax
cmp dword [edi + 0x4864], eax
setne al
mov dword [ebp - 0x60c], eax
xor eax, eax
mov dword [ebp - 0x610], eax
cmp dword [edi + 0x4860], eax
jne 0x4972b7
cmp dword [edi + 0x4858], eax
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x610], eax
mov ecx, dword [edi + 0x4920]
cmp ecx, eax
je 0x4972fe
push ecx
push dword [edi + 0x489c]
call fcn.00424d60
push 0
push dword [edi + 0x4920]
lea eax, [ebp - 0x68c]
mov dword [ebp - 0x68c], 1
push eax
push dword [edi + 0x48c4]
push dword [edi + 0x48c0]
push esi
call fcn.0041c4a0
mov eax, dword [ebp - 0x610]
movsd xmm0, qword [edi + 0x48]
sub esp, 8
movsd xmm1, qword [edi + 0x4918]
mulsd xmm1, qword [0x4af5d0]
movsd qword [esp], xmm0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x4880]
push dword [edi + 0x4860]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movd xmm0, dword [ebp - 0x60c]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x489c]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
mov ecx, dword [ebp - 0x614]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, dword [ebp - 0x624]
jne 0x497280
mov edx, dword [esi + 0x4958]
mov eax, edx
mov ecx, dword [esi + 0x4954]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x60c], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x49755e
cmp ecx, edx
je 0x49755e
mov esi, edx
nop dword [eax + eax]
mov edi, dword [ecx]
xor eax, eax
cmp dword [edi + 0x4864], eax
setne al
mov dword [ebp - 0x60c], eax
xor eax, eax
mov dword [ebp - 0x610], eax
cmp dword [edi + 0x4860], eax
jne 0x497457
cmp dword [edi + 0x4858], eax
mov ecx, 1
cmovne eax, ecx
mov dword [ebp - 0x610], eax
mov ecx, dword [edi + 0x4920]
cmp ecx, eax
je 0x497473
push ecx
push dword [edi + 0x489c]
call fcn.00424d60
mov eax, dword [ebp - 0x610]
movsd xmm0, qword [edi + 0x48]
sub esp, 8
movsd xmm1, qword [edi + 0x4918]
mulsd xmm1, qword [0x4af5d0]
movsd qword [esp], xmm0
push dword [edi + 0x4864]
movsd xmm0, qword [edi + 0x4880]
push dword [edi + 0x4860]
sub esp, 0x38
movsd qword [esp + 0x30], xmm0
movd xmm0, dword [ebp - 0x60c]
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x489c]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__d__d__lf_n
push dword [ebp - 0x630]
call fcn.00411e60
mov ecx, dword [ebp - 0x614]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, esi
jne 0x497420
mov esi, dword [ebp - 0x62c]
mov ecx, dword [esi + 0x497c]
mov eax, dword [esi + 0x4978]
mov dword [ebp - 0x624], ecx
mov dword [ebp - 0x60c], eax
cmp eax, ecx
je 0x49773e
mov dword [ebp - 0x668], 1
mov esi, eax
nop word [eax + eax]
mov edi, dword [esi]
mov dword [ebp - 0x620], 1
movsd xmm0, qword [edi + 0x48b8]
lea eax, [edi + 0x48c0]
comisd xmm0, xmmword [0x4ae820]
mov dword [ebp - 0x618], eax
jbe 0x49760c
lea ecx, [edi + 0x2408]
mov dword [ebp - 0x620], 0
call fcn.0042ea40
mulsd xmm0, qword [0x4af1d8]
mov eax, dword [ebp - 0x618]
movsd xmm2, qword [edi + 0x30]
andps xmm2, xmmword [0x4afb90]
mulsd xmm2, qword [edi + 0x48]
mulsd xmm0, qword [eax]
mulsd xmm2, qword [0x4af228]
mulsd xmm0, qword [eax]
divsd xmm2, xmm0
movsd qword [edi + 0x49c8], xmm2
jmp 0x497612
mov dword [ebp - 0x618], eax
mov eax, dword [edi + 0x48f8]
cmp eax, dword [ebp - 0x620]
je 0x49762c
push eax
push dword [edi + 0x4818]
call fcn.00424d60
movsd xmm1, qword [edi + 0x48b8]
mov eax, dword [ebp - 0x618]
mulsd xmm1, xmm1
push dword [edi + 0x4820]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
sub esp, 0x50
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd xmm0, qword [edi + 0x49c8]
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [edi + 0x2420]
mulsd xmm0, qword [0x4aeb28]
movsd qword [edi + 0x4920], xmm1
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [edi + 0x2438]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x48]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push dword [ebp - 0x620]
push dword [edi + 0x4818]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__lf__lf__.10lf__d_n
push dword [ebp - 0x66c]
call fcn.00411e60
add esi, 4
add esp, 0x64
cmp esi, dword [ebp - 0x624]
jne 0x497590
mov esi, dword [ebp - 0x62c]
mov ecx, dword [esi + 0x4988]
mov eax, dword [esi + 0x4984]
mov dword [ebp - 0x624], ecx
mov dword [ebp - 0x60c], eax
cmp eax, ecx
je 0x49791e
mov dword [ebp - 0x668], 1
mov esi, eax
nop word [eax + eax]
mov edi, dword [esi]
mov dword [ebp - 0x620], 1
movsd xmm0, qword [edi + 0x48b8]
lea eax, [edi + 0x48c0]
comisd xmm0, xmmword [0x4ae820]
mov dword [ebp - 0x618], eax
jbe 0x4977ec
lea ecx, [edi + 0x2408]
mov dword [ebp - 0x620], 0
call fcn.0042ea40
mulsd xmm0, qword [0x4af1d8]
mov eax, dword [ebp - 0x618]
movsd xmm2, qword [edi + 0x30]
andps xmm2, xmmword [0x4afb90]
mulsd xmm2, qword [edi + 0x48]
mulsd xmm0, qword [eax]
mulsd xmm2, qword [0x4af228]
mulsd xmm0, qword [eax]
divsd xmm2, xmm0
movsd qword [edi + 0x49c8], xmm2
jmp 0x4977f2
mov dword [ebp - 0x618], eax
mov eax, dword [edi + 0x48f8]
cmp eax, dword [ebp - 0x620]
je 0x49780c
push eax
push dword [edi + 0x4818]
call fcn.00424d60
movsd xmm1, qword [edi + 0x48b8]
mov eax, dword [ebp - 0x618]
mulsd xmm1, xmm1
push dword [edi + 0x4820]
movsd xmm0, qword [eax]
mulsd xmm0, xmm0
sub esp, 0x50
mulsd xmm1, qword [0x4af5d0]
divsd xmm1, xmm0
movsd xmm0, qword [edi + 0x49c8]
movsd qword [esp + 0x48], xmm1
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [edi + 0x2420]
mulsd xmm0, qword [0x4aeb28]
movsd qword [edi + 0x4920], xmm1
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [edi + 0x2438]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x48]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push dword [ebp - 0x620]
push dword [edi + 0x4818]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__lf__lf__.10lf__d_n
push dword [ebp - 0x66c]
call fcn.00411e60
add esi, 4
add esp, 0x64
cmp esi, dword [ebp - 0x624]
jne 0x497770
mov esi, dword [ebp - 0x62c]
mov edx, dword [esi + 0x4994]
mov eax, edx
mov ecx, dword [esi + 0x4990]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x644], edx
mov dword [ebp - 0x614], ecx
test eax, eax
je 0x497c30
mov dword [ebp - 0x654], 1
cmp ecx, edx
je 0x497c30
nop word [eax + eax]
mov ecx, dword [ecx]
xor edx, edx
cmp dword [esi + 0x6f30], edx
xorps xmm2, xmm2
mov dword [ebp - 0x610], ecx
xorps xmm5, xmm5
setg dl
mov eax, dword [ecx + 0x4900]
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x618], eax
mov eax, dword [ecx + 0x48b0]
mov dword [ebp - 0x624], edx
test eax, eax
je 0x497ab7
movsd xmm3, qword [ecx + 0x4860]
mov edi, 1
movsd qword [ebp - 0x640], xmm3
cmp eax, edi
jl 0x497a2b
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esi + 0x4858]
addsd xmm0, qword [esi + 0x20]
lea esi, [ecx + 0x4868]
mulsd xmm0, qword [0x4ae888]
movsd qword [ebp - 0x660], xmm0
movd xmm1, edi
cvtdq2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
mulsd xmm0, qword [esi]
inc edi
add esi, 8
mov eax, dword [ebp - 0x610]
movsd xmm3, qword [ebp - 0x640]
addsd xmm3, xmm0
movsd xmm0, qword [ebp - 0x660]
movsd qword [ebp - 0x640], xmm3
cmp edi, dword [eax + 0x48b0]
jle 0x4979e3
mov esi, dword [ebp - 0x62c]
xorps xmm2, xmm2
mulsd xmm3, qword [0x4af6e8]
divsd xmm3, qword [0x4af760]
comisd xmm3, xmm2
jbe 0x497aa7
mov eax, dword [esi + 0x4994]
sub eax, dword [esi + 0x4990]
movsd xmm1, qword [esi + 0x6ea8]
addsd xmm1, qword [esi + 0x30]
sar eax, 2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x4afb80]
divsd xmm1, xmm0
movaps xmm0, xmm1
mulsd xmm1, qword [0x4aeeb0]
divsd xmm0, xmm3
cvttsd2si edx, xmm0
mov dword [ebp - 0x618], edx
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm3
comisd xmm1, xmm0
jbe 0x497aa7
inc edx
mov dword [ebp - 0x618], edx
movd xmm5, dword [ebp - 0x60c]
cvtdq2pd xmm5, xmm5
mulsd xmm5, xmm3
mov edi, dword [esi + 0x497c]
mov eax, edi
mov ecx, dword [esi + 0x4978]
sub eax, ecx
movsd xmm4, qword [esi + 0x30]
sar eax, 2
movaps xmm3, xmm4
mulsd xmm3, qword [esi + 0x28]
test eax, eax
je 0x497b21
cmp ecx, edi
je 0x497b21
nop
mov edx, dword [ecx]
movsd xmm0, qword [edx + 0x48b8]
ucomisd xmm0, xmm2
lahf
test ah, 0x44
jnp 0x497afd
cmp dword [edx + 0x4944], 0
je 0x497b06
add ecx, 4
cmp ecx, edi
jne 0x497ae0
jmp 0x497b21
movsd xmm1, qword [esi + 0x6ea8]
movaps xmm0, xmm1
mulsd xmm1, qword [esi + 0x6eb0]
addsd xmm4, xmm0
addsd xmm3, xmm1
ucomisd xmm4, xmm2
lahf
test ah, 0x44
jnp 0x497b2f
divsd xmm3, xmm4
movsd xmm0, qword [0x4af658]
ucomisd xmm3, xmm2
lahf
test ah, 0x44
jp 0x497b44
movaps xmm3, xmm0
movd xmm2, dword [ebp - 0x624]
subsd xmm3, xmm0
movsd xmm1, qword [esi + 0x4858]
sub esp, 8
mulsd xmm5, qword [0x4aeb28]
mov eax, dword [esi + 0x4994]
sub eax, dword [esi + 0x4990]
cvtdq2pd xmm2, xmm2
sar eax, 2
mov edi, dword [ebp - 0x610]
mulsd xmm4, qword [0x4aeb28]
mulsd xmm2, xmm1
movsd qword [esp], xmm5
push dword [ebp - 0x618]
unpcklpd xmm3, xmm3
addsd xmm2, qword [esi + 0x20]
sub esp, 0x28
movaps xmm0, xmm2
mulsd xmm2, qword [0x4ae8b0]
subsd xmm0, xmm1
movups xmmword [esp + 0x18], xmm3
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x10], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movsd qword [esp + 8], xmm2
addsd xmm0, qword [eax*8 + 0x4afb80]
divsd xmm4, xmm0
movsd qword [esp], xmm4
push 0
push dword [edi + 0x4818]
push str._d__d__lf__lf__lf__lf__lf__d__lf_n
push dword [ebp - 0x650]
call fcn.00411e60
mov eax, dword [edi + 0x48f8]
add esp, 0x44
test eax, eax
je 0x497c15
push eax
push dword [edi + 0x4818]
call fcn.00424d60
mov ecx, dword [ebp - 0x614]
add ecx, 4
mov dword [ebp - 0x614], ecx
cmp ecx, dword [ebp - 0x644]
jne 0x497960
mov edx, dword [esi + 0x4928]
mov eax, edx
mov ecx, dword [esi + 0x4924]
sub eax, ecx
sar eax, 2
mov dword [ebp - 0x624], edx
mov dword [ebp - 0x610], ecx
test eax, eax
je 0x497dad
mov dword [ebp - 0x678], 1
cmp ecx, edx
je 0x497dad
nop dword [eax]
mov edi, dword [ecx]
xor eax, eax
xorps xmm0, xmm0
mov ecx, 1
comisd xmm0, xmmword [edi + 0x30]
cmovae eax, ecx
mov ecx, dword [edi + 0x4cfc]
mov dword [ebp - 0x60c], eax
cmp ecx, eax
je 0x497cd1
push ecx
push dword [edi + 0x4818]
call fcn.00424d60
push 0
push dword [edi + 0x4cfc]
lea eax, [ebp - 0x690]
mov dword [ebp - 0x690], 1
push eax
push dword [edi + 0x485c]
push dword [edi + 0x4858]
push esi
call fcn.0041c4a0
mov eax, dword [ebp - 0x60c]
movsd xmm0, qword [edi + 0x4cb8]
sub esp, 0x48
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [edi + 0x4c50]
movsd qword [esp + 0x38], xmm0
movsd xmm0, qword [edi + 0x4c40]
movsd qword [esp + 0x30], xmm0
movsd xmm0, qword [edi + 0x4c48]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [edi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [edi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [edi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [edi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [edi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp], xmm0
push eax
push dword [edi + 0x4818]
push str._d__d__lf__lf__lf__lf__lf__lf__lf__lf__lf_n
push dword [ebp - 0x674]
call fcn.00411e60
mov ecx, dword [ebp - 0x610]
add esp, 0x58
add ecx, 4
mov dword [ebp - 0x610], ecx
cmp ecx, dword [ebp - 0x624]
jne 0x497c70
push 0
push esi
call fcn.0041bca0
mov dword [ebp - 0x60c], eax
test eax, eax
jle 0x497e58
mov edi, 1
push edi
push esi
call fcn.0041bca0
test eax, eax
jle 0x497e4b
movups xmm0, xmmword [esi + 0x60]
sub esp, 0x38
movups xmmword [esp + 0x28], xmm0
movsd xmm0, qword [esi + 0x58]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + 0x30]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + 0x48]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + 0x28]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + 0x20]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push str._d__lf__lf__lf__lf__lf__lf__lf_n
push dword [ebp - 0x670]
call fcn.00411e60
add esp, 0x44
mov dword [ebp - 0x664], 1
inc edi
cmp edi, dword [ebp - 0x60c]
jle 0x497dc8
push 0
push esi
call fcn.0041bdb0
mov dword [ebp - 0x60c], eax
test eax, eax
jle 0x497f19
mov edi, 1
push edi
push esi
call fcn.0041bdb0
test eax, eax
jle 0x497f0c
movups xmm0, xmmword [esi + 0x2450]
sub esp, 0x38
movups xmmword [esp + 0x28], xmm0
movsd xmm0, qword [esi + 0x2448]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + 0x2420]
mulsd xmm0, qword [0x4aeb28]
movsd qword [esp + 0x18], xmm0
movsd xmm0, qword [esi + 0x2438]
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esi + 0x2418]
subsd xmm0, qword [0x4af658]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esi + 0x2410]
mulsd xmm0, qword [0x4ae8b0]
movsd qword [esp], xmm0
push eax
push str._d__lf__lf__lf__lf__lf__lf__lf_n
push dword [ebp - 0x670]
call fcn.00411e60
add esp, 0x44
mov dword [ebp - 0x664], 1
inc edi
cmp edi, dword [ebp - 0x60c]
jle 0x497e73
mov eax, dword [ebp - 0x67c]
add eax, 4
mov dword [ebp - 0x67c], eax
cmp eax, dword [ebp - 0x694]
jne 0x495580
xorps xmm1, xmm1
mov eax, dword [ebp - 0x680]
add eax, 4
mov dword [ebp - 0x680], eax
cmp eax, dword [ebp - 0x698]
jne 0x495524
mov esi, dword [ebp - 0x670]
push esi
mov esi, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
call esi
add esp, 4
push dword [ebp - 0x650]
call esi
add esp, 4
push dword [ebp - 0x674]
call esi
add esp, 4
push dword [ebp - 0x658]
call esi
add esp, 4
push dword [ebp - 0x630]
call esi
add esp, 4
push dword [ebp - 0x66c]
call esi
mov esi, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll_remove]
add esp, 4
cmp dword [ebp - 0x668], 0
jne 0x497fb6
lea eax, [ebp - 0x208]
push eax
call esi
add esp, 4
cmp dword [ebp - 0x64c], 0
jne 0x497fcb
lea eax, [ebp - 0x108]
push eax
call esi
add esp, 4
cmp dword [ebp - 0x664], 0
jne 0x497fe0
lea eax, [ebp - 0x508]
push eax
call esi
add esp, 4
cmp dword [ebp - 0x654], 0
jne 0x497ff5
lea eax, [ebp - 0x408]
push eax
call esi
add esp, 4
cmp dword [ebp - 0x678], 0
jne 0x49800a
lea eax, [ebp - 0x308]
push eax
call esi
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004a034d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4