Function at 0x498940
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x5effb6
mov eax, dword fs:[0]
push eax
sub esp, 0xe8
push ebx
push esi
push edi
mov eax, dword [0x615cbc]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
mov esi, ecx
xor eax, eax
mov ecx, 1
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0x100], eax
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x94], eax
mov eax, dword [esi + 0xd0]
cmp dword [esi + 0xfc], eax
mov byte [esp + 0x100], 3
jl 0x4989eb
mov ecx, dword [esi + 0xf4]
movsd xmm0, qword [ecx + eax*8 - 8]
jmp 0x4989ee
xorps xmm0, xmm0
mov ecx, esi
movsd qword [esp + 0x34], xmm0
call fcn.004284a0
fst qword [esp + 0x84]
fsub qword [esp + 0x34]
mov eax, dword [esi + 0xd4]
cmp dword [esi + 0x108], eax
fstp qword [esp + 0x4c]
jl 0x498a26
mov edx, dword [esi + 0x100]
movsd xmm0, qword [edx + eax*8 - 8]
jmp 0x498a29
xorps xmm0, xmm0
mov ecx, esi
movsd qword [esp + 0x24], xmm0
call fcn.00428560
fst qword [esp + 0x44]
mov eax, dword [ebp + 0xc]
fsub qword [esp + 0x24]
mov edi, dword [ebp + 8]
movsd xmm2, qword [eax]
movsd xmm0, qword [edi]
fstp qword [esp + 0x64]
movsd xmm1, qword [esp + 0x4c]
movsd xmm6, qword [0x5fc860]
movsd xmm7, qword [0x5fa918]
movsd xmm5, qword [0x5fb9c8]
movapd xmm3, xmm2
subsd xmm3, xmm0
movapd xmm4, xmm1
mulsd xmm4, xmm7
andpd xmm3, xmm6
comisd xmm4, xmm3
movsd xmm4, qword [0x5fb9d0]
jbe 0x498ad7
movsd xmm3, qword [esp + 0x34]
mulsd xmm1, xmm4
addsd xmm0, xmm2
movapd xmm2, xmm1
mulsd xmm0, xmm5
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm3, xmm1
jbe 0x498ab8
movapd xmm1, xmm3
addsd xmm2, xmm0
movsd xmm0, qword [esp + 0x84]
comisd xmm2, xmm0
movsd qword [edi], xmm1
jbe 0x498ad3
movapd xmm2, xmm0
movsd qword [eax], xmm2
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
movsd xmm2, qword [ecx]
movsd xmm0, qword [eax]
movsd xmm1, qword [esp + 0x64]
movapd xmm3, xmm2
subsd xmm3, xmm0
andpd xmm3, xmm6
movapd xmm6, xmm1
mulsd xmm6, xmm7
comisd xmm6, xmm3
movsd xmm6, qword [esp + 0x44]
movsd xmm3, qword [esp + 0x24]
jbe 0x498b49
mulsd xmm1, xmm4
addsd xmm0, xmm2
movapd xmm2, xmm1
mulsd xmm0, xmm5
movapd xmm1, xmm0
subsd xmm1, xmm2
comisd xmm3, xmm1
jbe 0x498b33
movapd xmm1, xmm3
addsd xmm2, xmm0
comisd xmm2, xmm6
movsd qword [eax], xmm1
jbe 0x498b45
movapd xmm2, xmm6
movsd qword [ecx], xmm2
mov eax, dword [ebp + 0xc]
movsd xmm0, qword [edi]
addsd xmm0, qword [eax]
mov edx, dword [esi]
mov edx, dword [edx + 0x90]
push 1
lea eax, [esp + 0xb0]
mulsd xmm0, xmm5
push eax
mov ecx, esi
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xbc], xmm3
movsd qword [esp + 0xc4], xmm6
call edx
mov ebx, eax
test ebx, ebx
je 0x498cab
fld qword [0x5ff790]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call fcn.004f0b50
fstp qword [esp + 0x64]
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
mov eax, dword [ebp + 0x10]
movsd xmm0, qword [eax]
mov ecx, dword [ebp + 0x14]
mov edx, dword [esi]
mov edx, dword [edx + 0x90]
movsd qword [esp + 0xb4], xmm0
movsd xmm0, qword [ecx]
push 1
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
movsd qword [esp + 0xc4], xmm0
call edx
mov ebx, eax
test ebx, ebx
je 0x498cab
fld qword [0x5ff790]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call fcn.004f0b50
fstp qword [esp + 0x4c]
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
fld qword [esp + 0x4c]
fld qword [0x5fc870]
fcompi st(1)
fstp st(0)
jbe 0x498cab
movsd xmm3, qword [0x5fc870]
comisd xmm3, xmmword [esp + 0x64]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
jbe 0x498c51
movsd xmm0, qword [esp + 0x24]
movsd qword [eax], xmm0
movsd xmm0, qword [esp + 0x44]
jmp 0x498ca7
movsd xmm2, qword [ecx]
movsd xmm1, qword [eax]
movapd xmm0, xmm2
subsd xmm0, xmm1
addsd xmm1, xmm2
mulsd xmm1, qword [0x5fb9c8]
mulsd xmm0, xmm3
divsd xmm0, qword [esp + 0x4c]
movsd xmm3, qword [esp + 0x24]
movapd xmm2, xmm1
subsd xmm2, xmm0
comisd xmm3, xmm2
jbe 0x498c8f
movapd xmm2, xmm3
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x44]
comisd xmm1, xmm0
movsd qword [eax], xmm2
ja 0x498ca7
movapd xmm0, xmm1
movsd qword [ecx], xmm0
mov edx, dword [ebp + 0x10]
movsd xmm0, qword [edx]
mov eax, dword [ebp + 0x14]
addsd xmm0, qword [eax]
mulsd xmm0, qword [0x5fb9c8]
mov edx, dword [esi]
mov edx, dword [edx + 0x90]
movsd qword [esp + 0xac], xmm0
movsd xmm0, qword [esp + 0x34]
push 0
lea eax, [esp + 0xb0]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [esp + 0x88]
push eax
mov ecx, esi
movsd qword [esp + 0xc4], xmm0
call edx
mov ebx, eax
test ebx, ebx
je 0x498e29
fld qword [0x5ff790]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call fcn.004f0b50
fstp qword [esp + 0x44]
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
movsd xmm0, qword [edi]
mov eax, dword [ebp + 0xc]
mov edx, dword [esi]
mov edx, dword [edx + 0x90]
movsd qword [esp + 0xb4], xmm0
movsd xmm0, qword [eax]
push 0
lea eax, [esp + 0xb0]
push eax
mov ecx, esi
movsd qword [esp + 0xc4], xmm0
call edx
mov ebx, eax
test ebx, ebx
je 0x498e29
fld qword [0x5ff790]
sub esp, 8
mov ecx, ebx
fstp qword [esp]
call fcn.004f0b50
fstp qword [esp + 0x24]
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
fld qword [esp + 0x24]
fld qword [0x5fc870]
fcompi st(1)
fstp st(0)
jbe 0x498e29
movsd xmm3, qword [0x5fc870]
comisd xmm3, xmmword [esp + 0x44]
mov ecx, dword [ebp + 0xc]
jbe 0x498dca
movsd xmm0, qword [esp + 0x34]
movsd qword [edi], xmm0
movsd xmm0, qword [esp + 0x84]
movsd qword [ecx], xmm0
jmp 0x498e2c
movsd xmm2, qword [ecx]
movsd xmm1, qword [edi]
movapd xmm0, xmm2
subsd xmm0, xmm1
addsd xmm1, xmm2
mulsd xmm1, qword [0x5fb9c8]
mulsd xmm0, xmm3
divsd xmm0, qword [esp + 0x24]
movsd xmm3, qword [esp + 0x34]
movapd xmm2, xmm1
subsd xmm2, xmm0
comisd xmm3, xmm2
jbe 0x498e08
movapd xmm2, xmm3
addsd xmm1, xmm0
movsd xmm0, qword [esp + 0x84]
comisd xmm1, xmm0
movsd qword [edi], xmm2
ja 0x498e23
movapd xmm0, xmm1
movsd qword [ecx], xmm0
jmp 0x498e2c
mov ecx, dword [ebp + 0xc]
mov al, byte [esi + 0xd8]
mov edx, dword [esi + 0xc8]
movsd xmm1, qword [0x5fa918]
movsd xmm0, qword [0x5fc860]
and al, 1
mov byte [esp + 0x23], al
xor eax, eax
cmp dword [esi + 0xd0], eax
jle 0x498e96
jmp 0x498e60
mov ebx, dword [esi + 0xf4]
movsd xmm2, qword [ebx + eax*8]
movapd xmm3, xmm2
subsd xmm3, qword [edi]
andpd xmm3, xmm0
comisd xmm3, xmm1
ja 0x498e8c
inc eax
movsd qword [edi], xmm2
cmp eax, dword [esi + 0xd0]
jl 0x498e60
jmp 0x498e96
mov eax, dword [esi + 0xd0]
lea edx, [edx + eax - 1]
mov eax, dword [esi + 0xc8]
mov edi, dword [esi + 0xd0]
add edi, eax
cmp eax, edi
jge 0x498eee
jmp 0x498eb0
mov edi, dword [esi + 0xf4]
movsd xmm2, qword [edi + eax*8]
movapd xmm3, xmm2
subsd xmm3, qword [ecx]
andpd xmm3, xmm0
comisd xmm3, xmm1
ja 0x498ee4
movsd qword [ecx], xmm2
mov edi, dword [esi + 0xd0]
add edi, dword [esi + 0xc8]
inc eax
cmp eax, edi
jl 0x498eb0
jmp 0x498eee
mov ecx, dword [esi + 0xd0]
lea edx, [edx + ecx - 1]
cmp edx, dword [esi + 0xc8]
mov ebx, dword [esi + 0xcc]
sete byte [esp + 0x3f]
xor eax, eax
cmp dword [esi + 0xd4], eax
jle 0x498f46
mov ecx, dword [ebp + 0x10]
lea esp, [esp]
mov edi, dword [esi + 0x100]
movsd xmm2, qword [edi + eax*8]
movapd xmm3, xmm2
subsd xmm3, qword [ecx]
andpd xmm3, xmm0
comisd xmm3, xmm1
ja 0x498f3c
inc eax
movsd qword [ecx], xmm2
cmp eax, dword [esi + 0xd4]
jl 0x498f10
jmp 0x498f46
mov eax, dword [esi + 0xd4]
lea ebx, [ebx + eax - 1]
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xd4]
add ecx, eax
cmp eax, ecx
jge 0x498f9e
mov ecx, dword [ebp + 0x14]
jmp 0x498f60
mov edi, dword [esi + 0x100]
movsd xmm2, qword [edi + eax*8]
movapd xmm3, xmm2
subsd xmm3, qword [ecx]
andpd xmm3, xmm0
comisd xmm3, xmm1
ja 0x498f94
movsd qword [ecx], xmm2
mov edi, dword [esi + 0xd4]
add edi, dword [esi + 0xcc]
inc eax
cmp eax, edi
jl 0x498f60
jmp 0x498f9e
mov eax, dword [esi + 0xd4]
lea ebx, [ebx + eax - 1]
cmp ebx, dword [esi + 0xcc]
mov ecx, dword [esi + 0xd0]
sete byte [esp + 0x33]
add ecx, edx
push ecx
lea ecx, [esp + 0x7c]
call fcn.00412880
mov edx, dword [esi + 0xd4]
add edx, ebx
push edx
lea ecx, [esp + 0x70]
call fcn.00412880
mov ebx, dword [esi + 0xc8]
mov edi, dword [esi + 0xcc]
lea eax, [ebx - 1]
mov dword [esp + 0x84], eax
xor eax, eax
lea ecx, [edi - 1]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x4c], edi
mov dword [esp + 0x44], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x40], eax
cmp byte [esp + 0x3f], al
jne 0x49903c
mov edx, dword [ebp + 0xc]
fld qword [edx]
mov eax, dword [ebp + 8]
sub esp, 0x10
fstp qword [esp + 8]
lea ecx, [esp + 0x88]
fld qword [eax]
lea edx, [esp + 0x94]
fstp qword [esp]
push 1
push ecx
push edx
lea eax, [esp + 0x5c]
push eax
mov ecx, esi
call fcn.0048c510
mov ebx, eax
mov dword [esp + 0x34], ebx
jmp 0x49905f
mov ecx, dword [esi + 0xd0]
mov edx, dword [esi + 0xf4]
mov eax, dword [esp + 0x78]
add ecx, ebx
add ecx, ecx
add ecx, ecx
add ecx, ecx
push ecx
push edx
push eax
call sub.MSVCR90.dll_memcpy
add esp, 0xc
cmp byte [esp + 0x33], 0
jne 0x49909a
mov ecx, dword [ebp + 0x14]
fld qword [ecx]
mov edx, dword [ebp + 0x10]
sub esp, 0x10
fstp qword [esp + 8]
lea eax, [esp + 0x7c]
fld qword [edx]
lea ecx, [esp + 0x54]
fstp qword [esp]
push 0
push eax
push ecx
lea edx, [esp + 0x78]
push edx
mov ecx, esi
call fcn.0048c510
mov edi, eax
mov dword [esp + 0x4c], edi
jmp 0x4990bd
mov eax, dword [esi + 0xd4]
mov ecx, dword [esi + 0x100]
mov edx, dword [esp + 0x6c]
add eax, edi
add eax, eax
add eax, eax
add eax, eax
push eax
push ecx
push edx
call sub.MSVCR90.dll_memcpy
add esp, 0xc
imul edi, ebx
push edi
lea ecx, [esp + 0xa4]
call fcn.00412980
cmp byte [esp + 0x23], 0
je 0x4990e1
push edi
lea ecx, [esp + 0x98]
call fcn.00412880
cmp dword [esi + 0xcc], 0
mov dword [esp + 0x58], 0
jle 0x4991f0
mov ecx, dword [esp + 0x94]
lea eax, [ebx + ebx*2]
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ecx
lea esp, [esp]
mov ecx, dword [esi + 0xc8]
mov eax, ecx
imul eax, dword [esp + 0x58]
xor edi, edi
test ecx, ecx
jle 0x4991c8
mov ecx, dword [esp + 0x64]
lea edx, [eax*8]
mov dword [esp + 0x90], edx
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x60]
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x8c], eax
lea ecx, [ecx]
mov eax, dword [esi + 0xdc]
movq xmm0, qword [eax + edx]
add eax, edx
cmp byte [esp + 0x23], 0
movq qword [ecx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ecx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ecx + 0x10], xmm0
je 0x4991a9
mov eax, dword [esi + 0xe8]
mov ebx, dword [esp + 0x90]
fld qword [ebx + eax]
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x34]
fstp qword [eax]
add dword [esp + 0x90], 8
add dword [esp + 0x8c], 8
inc edi
add edx, 0x18
add ecx, 0x18
cmp edi, dword [esi + 0xc8]
jl 0x499160
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
add dword [esp + 0x64], edx
inc ecx
lea eax, [ebx*8]
add dword [esp + 0x60], eax
cmp ecx, dword [esi + 0xcc]
mov dword [esp + 0x58], ecx
jl 0x499120
cmp byte [esp + 0x3f], 0
mov al, 1
jne 0x499224
mov eax, dword [esp + 0x4c]
push 1
push eax
push ebx
lea ecx, [esp + 0x84]
push ecx
lea edx, [esp + 0xa4]
push edx
lea eax, [esp + 0xb4]
push eax
mov ecx, esi
call fcn.00490630
test al, al
je 0x499253
cmp byte [esp + 0x33], 0
jne 0x49924f
mov ecx, dword [esp + 0x4c]
push 0
push ecx
push ebx
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0xb4]
push ecx
mov ecx, esi
call fcn.00490630
test al, al
jne 0x4992c6
mov eax, dword [esp + 0x94]
mov esi, dword [sym.imp.MSVCR90.dll_free]
xor edi, edi
cmp eax, edi
je 0x49926c
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x49927a
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
cmp eax, edi
je 0x499290
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x78], edi
mov dword [esp + 0x80], edi
cmp eax, edi
je 0x4992ac
push eax
call esi
add esp, 4
xor al, al
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [esi + 0xd8]
mov ecx, dword [esi + 0xd4]
mov eax, dword [esp + 0x44]
sub eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x84]
sub edi, dword [esp + 0x40]
xorps xmm0, xmm0
push edx
mov edx, dword [esi + 0xd0]
push ecx
inc eax
push edx
inc edi
push eax
push edi
mov ecx, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], eax
movsd qword [esi + 0x28], xmm0
movsd qword [esi + 0x20], xmm0
call fcn.00485ca0
cmp dword [esp + 0x40], 0
mov eax, dword [esi + 0xd0]
lea eax, [eax + edi - 1]
lea edi, [eax*8]
push edi
jne 0x49933a
mov ecx, dword [esp + 0x7c]
mov edx, dword [esi + 0xf4]
push ecx
push edx
call sub.MSVCR90.dll_memcpy
jmp 0x499361
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x44]
lea edx, [eax + ecx*8 + 8]
mov eax, dword [esi + 0xf4]
push edx
add eax, 8
push eax
call sub.MSVCR90.dll_memcpy
mov eax, dword [esi + 0xf4]
fld qword [eax + 8]
fstp qword [eax]
mov ecx, dword [esi + 0xf4]
fld qword [edi + ecx - 8]
lea eax, [edi + ecx]
fstp qword [eax]
mov edx, dword [esi + 0xd4]
mov eax, dword [esp + 0x40]
lea eax, [edx + eax - 1]
add esp, 0xc
cmp dword [esp + 0x5c], 0
lea edi, [eax*8]
push edi
jne 0x4993a3
mov ecx, dword [esp + 0x70]
mov edx, dword [esi + 0x100]
push ecx
push edx
call sub.MSVCR90.dll_memcpy
jmp 0x4993ca
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x60]
lea edx, [eax + ecx*8 + 8]
mov eax, dword [esi + 0x100]
push edx
add eax, 8
push eax
call sub.MSVCR90.dll_memcpy
mov eax, dword [esi + 0x100]
fld qword [eax + 8]
fstp qword [eax]
mov ecx, dword [esi + 0x100]
fld qword [edi + ecx - 8]
lea eax, [edi + ecx]
mov ecx, dword [esp + 0x68]
fstp qword [eax]
add esp, 0xc
xor edi, edi
cmp ecx, dword [esp + 0x44]
jg 0x4994d2
lea edx, [ebx*8]
lea eax, [ebx + ebx*2]
imul ebx, ecx
add eax, eax
add eax, eax
add eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x40]
add ebx, eax
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0xa0]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*8]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x34]
lea edx, [ecx + ebx*8]
mov dword [esp + 0x44], edx
mov dword [esp + 0x64], eax
jmp 0x499440
mov ecx, dword [esp + 0x84]
cmp dword [esp + 0x40], ecx
jg 0x4994b7
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
lea edx, [edi + edi*2]
add edx, edx
add edx, edx
add edx, edx
mov dword [esp + 0x34], eax
jmp 0x499470
mov eax, dword [esi + 0xdc]
movq xmm0, qword [ecx]
add eax, edx
cmp byte [esp + 0x23], 0
movq qword [eax], xmm0
movq xmm0, qword [ecx + 8]
movq qword [eax + 8], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [eax + 0x10], xmm0
je 0x4994a6
mov eax, dword [esi + 0xe8]
fld qword [ebx]
fstp qword [eax + edi*8]
inc edi
add edx, 0x18
add ecx, 0x18
add ebx, 8
sub dword [esp + 0x34], 1
jne 0x499470
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
add dword [esp + 0x44], ecx
add dword [esp + 0x4c], edx
sub dword [esp + 0x64], 1
jne 0x499440
mov edx, dword [esi + 0xfc]
mov eax, dword [esi + 0xd0]
cmp edx, eax
jl 0x4994f0
mov ecx, dword [esi + 0xf4]
movsd xmm1, qword [ecx + eax*8 - 8]
jmp 0x4994f3
xorps xmm1, xmm1
mov ecx, dword [esi + 0xc8]
add eax, ecx
cmp edx, eax
movsd qword [esp + 0x34], xmm1
movsd qword [esi + 0x30], xmm1
jl 0x499533
mov edx, dword [esi + 0xd8]
shr edx, 2
test dl, 1
je 0x499526
mov ecx, dword [esi + 0xf4]
movsd xmm0, qword [ecx + eax*8 - 8]
jmp 0x49953b
mov edx, dword [esi + 0xf4]
movsd xmm0, qword [edx + ecx*8]
jmp 0x49953b
movsd xmm0, qword [0x5fb270]
movsd qword [esp + 0x24], xmm0
fld qword [esp + 0x24]
push 1
sub esp, 0x10
fstp qword [esp + 8]
movsd qword [esi + 0x38], xmm0
fld qword [esp + 0x48]
subsd xmm0, xmm1
mov ecx, esi
fstp qword [esp]
movsd qword [esi + 0x70], xmm0
call fcn.00468a30
mov ecx, dword [esi + 0x108]
mov eax, dword [esi + 0xd4]
cmp ecx, eax
jl 0x499588
mov edx, dword [esi + 0x100]
movsd xmm1, qword [edx + eax*8 - 8]
jmp 0x49958b
xorps xmm1, xmm1
mov edx, dword [esi + 0xcc]
add eax, edx
cmp ecx, eax
movsd qword [esp + 0x34], xmm1
movsd qword [esi + 0x40], xmm1
jl 0x4995cb
mov ecx, dword [esi + 0xd8]
shr ecx, 4
test cl, 1
je 0x4995be
mov edx, dword [esi + 0x100]
movsd xmm0, qword [edx + eax*8 - 8]
jmp 0x4995d3
mov eax, dword [esi + 0x100]
movsd xmm0, qword [eax + edx*8]
jmp 0x4995d3
movsd xmm0, qword [0x5fb270]
xor edi, edi
movsd qword [esp + 0x24], xmm0
fld qword [esp + 0x24]
push edi
sub esp, 0x10
fstp qword [esp + 8]
movsd qword [esi + 0x48], xmm0
fld qword [esp + 0x48]
subsd xmm0, xmm1
mov ecx, esi
fstp qword [esp]
movsd qword [esi + 0x78], xmm0
call fcn.00468a30
fld qword [0x5ff790]
mov bl, byte [0x616388]
push 1
sub esp, 8
fstp qword [esp]
push 0x1f4
push 3
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
mov byte [0x616388], 0
call fcn.0048e230
test al, al
je 0x499657
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x10c]
jge 0x499657
mov ecx, dword [esi + 0xc8]
dec ecx
cmp eax, ecx
jle 0x499657
mov dword [esi + 0x10c], eax
mov byte [0x616388], bl
fld qword [esi + 0x38]
mov edx, dword [esi]
mov eax, dword [edx + 0x58]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esi + 0x30]
fstp qword [esp]
call eax
fld qword [0x5ff790]
mov bl, byte [0x616388]
push edi
sub esp, 8
fstp qword [esp]
push 0x1f4
push 3
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x3c]
push edx
mov ecx, esi
mov byte [0x616388], 0
call fcn.0048e230
test al, al
je 0x4996c9
mov eax, dword [esp + 0x24]
cmp eax, dword [esi + 0x110]
jge 0x4996c9
mov ecx, dword [esi + 0xcc]
dec ecx
cmp eax, ecx
jle 0x4996c9
mov dword [esi + 0x110], eax
mov byte [0x616388], bl
fld qword [esi + 0x48]
mov edx, dword [esi]
mov eax, dword [edx + 0x5c]
sub esp, 0x10
fstp qword [esp + 8]
mov ecx, esi
fld qword [esi + 0x40]
fstp qword [esp]
call eax
mov ecx, esi
call fcn.00468d50
fld qword [0x5fdae0]
sub esp, 8
mov ecx, esi
fstp qword [esp]
mov dword [esi + 0xb8], edi
call fcn.0048ea10
mov ebx, 2
cmp dword [esi + 0xc8], ebx
jne 0x49971b
mov byte [esi + 0x18], 0
jmp 0x49972e
fld qword [0x5fdae0]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0048d2e0
fld qword [0x5fd338]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0048ce90
cmp dword [esi + 0xcc], ebx
jne 0x49974f
mov byte [esi + 0x19], 0
jmp 0x499762
fld qword [0x5fdae0]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0048d5a0
fld qword [0x5fd338]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.0048d0a0
mov eax, dword [esp + 0x94]
mov esi, dword [sym.imp.MSVCR90.dll_free]
cmp eax, edi
je 0x49978c
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x6c]
cmp eax, edi
je 0x49979a
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], edi
cmp eax, edi
je 0x4997b0
push eax
call esi
add esp, 4
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x78], edi
mov dword [esp + 0x80], edi
cmp eax, edi
je 0x4997cc
push eax
call esi
add esp, 4
mov al, 1
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10