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

Disassembly:
push 0xffffffffffffffff
push 0x4ac4cf
mov eax, dword fs:[0]
push eax
sub esp, 0x80
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4c2020]
xor eax, esp
push eax
lea eax, [esp + 0x94]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x14], 0
jne 0x49c4da
cmp dword [esi + 0x18], 0
jne 0x49c4da
cmp dword [esi + 0x1c], 0
jne 0x49c4da
fld dword [esp + 0xac]
fst dword [esi + 0x10]
fld dword [0x4c2bac]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x49b8a7
fld dword [esp + 0xa4]
fcom st(1)
fnstsw ax
test ah, 0x41
jp 0x49b893
fstp st(0)
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0xb0]
fstp dword [esp]
call fcn.0049a310
jmp 0x49c4df
fld dword [esp + 0xa8]
fcom st(2)
fnstsw ax
test ah, 0x41
jp 0x49b8b3
fstp st(0)
fstp st(1)
fstp st(0)
mov eax, 0xd
jmp 0x49c4df
fxch st(1)
fst dword [esi]
fxch st(1)
fst dword [esi + 8]
fst dword [esi + 4]
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x6c]
fld dword [esi + 0x2c]
fcomp st(2)
fnstsw ax
test ah, 0x41
jp 0x49b8da
fldz
fstp dword [esi + 0x2c]
fdivp st(1)
fld1
fsubrp st(1)
call sub.MSVCR100.dll__CIacos
fadd st(0), st(0)
fdivr qword [0x4b8908]
call fcn.0047e6d0
mov ebp, 1
sub ebp, eax
mov dword [esp + 0x14], ebp
cmp ebp, 3
jge 0x49b90e
mov dword [esp + 0x14], 3
mov ebp, dword [esp + 0x14]
fild dword [esp + 0x14]
fdivr qword [0x4b8900]
fstp qword [esp + 0x50]
fld dword [esp + 0xac]
fdiv dword [esp + 0xa4]
fld1
fsubrp st(1)
call sub.MSVCR100.dll__CIacos
fadd st(0), st(0)
fdivr qword [0x4b8918]
call fcn.0047e6d0
mov ecx, 1
sub ecx, eax
mov dword [esp + 0x2c], ecx
cmp ecx, 3
jge 0x49b959
mov ecx, 3
mov dword [esp + 0x2c], ecx
fild dword [esp + 0x2c]
lea eax, [ecx + 2]
imul eax, ebp
fdivr qword [0x4b8910]
lea ecx, [eax + 2]
lea edx, [eax + eax]
mov dword [esi + 0x14], ecx
lea eax, [eax + eax*2]
lea ecx, [edx + ecx - 2]
mov dword [esi + 0x18], edx
mov dword [esi + 0x1c], eax
fstp qword [esp + 0x30]
cmp eax, ecx
je 0x49b99f
push 0x309
push 0x4b883c
push str._nEdges____nPts_nFacets_2_
call dword [sym.imp.MSVCR100.dll__wassert]
add esp, 0xc
mov edi, dword [esi + 0x14]
xor ecx, ecx
mov eax, edi
mov edx, 0xc
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x9c], 0
test eax, eax
je 0x49b9f8
push 0x496830
push 0x496820
push edi
lea ebx, [eax + 4]
push 0xc
push ebx
mov dword [eax], edi
call fcn.0047e83c
mov eax, ebx
jmp 0x49b9fa
xor eax, eax
mov dword [esp + 0x9c], 0xffffffff
mov dword [esi + 0x20], eax
test eax, eax
jne 0x49ba1d
mov ecx, esi
call fcn.00499960
mov eax, 3
jmp 0x49c4df
mov edi, dword [esi + 0x18]
xor ecx, ecx
mov eax, edi
mov edx, 0x58
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x9c], 1
test eax, eax
je 0x49ba76
push 0x499900
push 0x4998e0
push edi
lea ebx, [eax + 4]
push 0x58
push ebx
mov dword [eax], edi
call fcn.0047e83c
mov eax, ebx
jmp 0x49ba78
xor eax, eax
mov dword [esp + 0x9c], 0xffffffff
mov dword [esi + 0x24], eax
test eax, eax
je 0x49ba0c
mov edi, dword [esi + 0x1c]
xor ecx, ecx
mov eax, edi
mov edx, 0x10
mul edx
seto cl
neg ecx
or ecx, eax
xor eax, eax
add ecx, 4
setb al
neg eax
or eax, ecx
push eax
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x64], eax
mov dword [esp + 0x9c], 2
test eax, eax
je 0x49bae3
push 0x4998d0
push 0x4998b0
push edi
lea ebx, [eax + 4]
push 0x10
push ebx
mov dword [eax], edi
call fcn.0047e83c
mov eax, ebx
jmp 0x49bae5
xor eax, eax
mov dword [esp + 0x9c], 0xffffffff
mov dword [esi + 0x28], eax
test eax, eax
je 0x49ba0c
xor ecx, ecx
mov eax, ebp
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
mov ebx, eax
add esp, 4
mov dword [esp + 0x3c], ebx
test ebx, ebx
je 0x49ba0c
xor ecx, ecx
mov eax, ebp
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
jne 0x49bb61
mov ecx, esi
call fcn.00499960
push ebx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 4
mov eax, 3
jmp 0x49c4df
mov edi, dword [esp + 0x2c]
inc edi
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
mov dword [esp + 0x5c], edi
neg ecx
or ecx, eax
push ecx
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x40], eax
test eax, eax
jne 0x49bbb1
mov ecx, esi
call fcn.00499960
push ebx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x28]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 8
mov eax, 3
jmp 0x49c4df
mov eax, dword [esp + 0x5c]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x60], eax
test eax, eax
jne 0x49bc04
mov ecx, esi
call fcn.00499960
push ebx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x28]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov ecx, dword [esp + 0x48]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 0xc
mov eax, 3
jmp 0x49c4df
xor ebp, ebp
mov dword [esp + 0x28], ebp
cmp dword [esp + 0x14], ebp
jle 0x49bc51
mov edi, dword [esp + 0x24]
mov eax, ebx
sub eax, edi
mov dword [esp + 0x64], eax
lea esp, [esp]
fild dword [esp + 0x28]
fmul qword [esp + 0x50]
fst qword [esp + 0x44]
call sub.MSVCR100.dll__CIcos
mov edx, dword [esp + 0x64]
fstp dword [edx + edi]
fld qword [esp + 0x44]
call sub.MSVCR100.dll__CIsin
fstp dword [edi]
inc ebp
add edi, 4
mov dword [esp + 0x28], ebp
cmp ebp, dword [esp + 0x14]
jl 0x49bc20
xor ebp, ebp
mov dword [esp + 0x50], ebp
cmp dword [esp + 0x2c], ebp
jl 0x49bca1
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x40]
sub eax, edi
mov dword [esp + 0x44], eax
jmp 0x49bc70
fild dword [esp + 0x50]
fmul qword [esp + 0x30]
fst qword [esp + 0x64]
call sub.MSVCR100.dll__CIcos
mov eax, dword [esp + 0x44]
fstp dword [eax + edi]
fld qword [esp + 0x64]
call sub.MSVCR100.dll__CIsin
fstp dword [edi]
inc ebp
add edi, 4
mov dword [esp + 0x50], ebp
cmp ebp, dword [esp + 0x2c]
jle 0x49bc70
fld dword [esi + 0x2c]
mov eax, dword [esi + 0x20]
fld dword [esp + 0xa8]
mov ecx, dword [esp + 0x14]
fld st(0)
mov ebp, 1
faddp st(2)
mov dword [esp + 0x18], ebp
fxch st(1)
fstp dword [esp + 0x64]
fldz
fst dword [eax]
fst dword [eax + 4]
fld dword [esp + 0x64]
fstp dword [eax + 8]
xor eax, eax
cmp ecx, 4
jl 0x49bde6
lea edx, [ebp + 0xb]
mov ebp, dword [esp + 0x24]
lea eax, [ebx + 4]
lea edi, [ebp + 0xc]
sub ebp, ebx
lea ebx, [ecx - 4]
shr ebx, 2
inc ebx
lea ecx, [ebx*4]
mov dword [esp + 0x28], ecx
inc ecx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x18], ecx
jmp 0x49bd0e
mov ebp, dword [esp + 0x30]
fld dword [edi - 0xc]
mov ecx, dword [esi + 0x20]
fmul st(2)
add eax, 0x10
add edi, 0x10
fstp dword [esp + 0x1c]
fld dword [esi + 0x2c]
fadd st(2)
fstp dword [esp + 0x20]
fld dword [eax - 0x14]
fmul st(2)
fstp dword [ecx + edx]
fld dword [esp + 0x1c]
fstp dword [ecx + edx + 4]
fld dword [esp + 0x20]
fstp dword [ecx + edx + 8]
mov ecx, dword [esi + 0x20]
fld dword [eax + ebp - 0x10]
lea ecx, [ecx + edx + 0xc]
fmul st(2)
fstp dword [esp + 0x1c]
fld dword [esi + 0x2c]
fadd st(2)
fstp dword [esp + 0x20]
fld dword [eax - 0x10]
fmul st(2)
fstp dword [ecx]
fld dword [esp + 0x1c]
fstp dword [ecx + 4]
fld dword [esp + 0x20]
fstp dword [ecx + 8]
mov ecx, dword [esi + 0x20]
fld dword [edi - 0x14]
lea ecx, [ecx + edx + 0x18]
fmul st(2)
add edx, 0x30
dec ebx
fstp dword [esp + 0x1c]
fld dword [esi + 0x2c]
fadd st(2)
fstp dword [esp + 0x20]
fld dword [eax - 0xc]
fmul st(2)
fstp dword [ecx]
fld dword [esp + 0x1c]
fstp dword [ecx + 4]
fld dword [esp + 0x20]
fstp dword [ecx + 8]
mov ecx, dword [esi + 0x20]
fld st(1)
fmul dword [edi - 0x10]
fstp dword [esp + 0x1c]
fld dword [esi + 0x2c]
fadd st(2)
fstp dword [esp + 0x20]
fld dword [eax - 8]
fmul st(2)
fstp dword [ecx + edx - 0xc]
fld dword [esp + 0x1c]
fstp dword [ecx + edx - 8]
fld dword [esp + 0x20]
fstp dword [ecx + edx - 4]
jne 0x49bd0a
mov ebx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
cmp eax, ecx
jge 0x49be46
mov edi, dword [esp + 0x24]
sub edi, ebx
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x14]
lea edx, [ebp + ebp*2]
add edx, edx
sub edi, eax
add edx, edx
add ebp, edi
lea ecx, [ebx + eax*4]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x18], ebp
fld dword [ecx + ebx]
mov eax, dword [esi + 0x20]
fmul st(2)
add ecx, 4
add edx, 0xc
dec edi
fstp dword [esp + 0x1c]
fld dword [esi + 0x2c]
fadd st(2)
fstp dword [esp + 0x20]
fld st(1)
fmul dword [ecx - 4]
fstp dword [eax + edx - 0xc]
fld dword [esp + 0x1c]
fstp dword [eax + edx - 8]
fld dword [esp + 0x20]
fstp dword [eax + edx - 4]
jne 0x49be0f
cmp dword [esp + 0x2c], 0
fstp st(1)
jl 0x49c037
mov ecx, dword [esp + 0x60]
fld dword [esp + 0x6c]
mov eax, dword [esp + 0x40]
fld dword [esp + 0xa4]
mov edx, dword [esp + 0x5c]
sub eax, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x64], edx
cmp dword [esp + 0x14], 4
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x44]
fld dword [eax + ecx]
mov dword [esp + 0x28], 0
fmul st(1)
fadd st(2)
fstp dword [esp + 0x6c]
fld st(0)
fmul dword [eax]
fchs
fstp dword [esp + 0x30]
fld dword [esp + 0x6c]
fld dword [esp + 0x30]
jl 0x49bfb7
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x18]
lea edi, [ebx + 0xc]
sub ebx, ebp
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x14]
add ebx, 0xfffffffc
shr ebx, 2
lea edx, [ecx + ecx*2]
inc ebx
add edx, edx
lea eax, [ebp + 4]
lea ebp, [ebx*4]
add edx, edx
add ecx, ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], ecx
fld dword [edi - 0xc]
mov ecx, dword [esi + 0x20]
fmul st(2)
mov ebp, dword [esp + 0x30]
add eax, 0x10
add edi, 0x10
fstp dword [esp + 0x20]
fld dword [esi + 0x2c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [eax - 0x14]
fmul st(2)
fstp dword [ecx + edx]
fld dword [esp + 0x20]
fstp dword [ecx + edx + 4]
fld dword [esp + 0x1c]
fstp dword [ecx + edx + 8]
mov ecx, dword [esi + 0x20]
fld dword [eax + ebp - 0x10]
lea ecx, [edx + ecx + 0xc]
fmul st(2)
fstp dword [esp + 0x20]
fld dword [esi + 0x2c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [eax - 0x10]
fmul st(2)
fstp dword [ecx]
fld dword [esp + 0x20]
fstp dword [ecx + 4]
fld dword [esp + 0x1c]
fstp dword [ecx + 8]
mov ecx, dword [esi + 0x20]
fld dword [edi - 0x14]
lea ecx, [ecx + edx + 0x18]
fmul st(2)
add edx, 0x30
dec ebx
fstp dword [esp + 0x20]
fld dword [esi + 0x2c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [eax - 0xc]
fmul st(2)
fstp dword [ecx]
fld dword [esp + 0x20]
fstp dword [ecx + 4]
fld dword [esp + 0x1c]
fstp dword [ecx + 8]
mov ecx, dword [esi + 0x20]
fld dword [edi - 0x10]
fmul st(2)
fstp dword [esp + 0x20]
fld dword [esi + 0x2c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [eax - 8]
fmul st(2)
fstp dword [ecx + edx - 0xc]
fld dword [esp + 0x20]
fstp dword [ecx + edx - 8]
fld dword [esp + 0x1c]
fstp dword [ecx + edx - 4]
jne 0x49beeb
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
cmp ebp, edi
jge 0x49c01c
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
sub ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
lea ecx, [eax + eax*2]
add ecx, ecx
sub edi, ebp
add ecx, ecx
add eax, edi
lea edx, [edx + ebp*4]
mov dword [esp + 0x18], eax
fld dword [ebx + edx]
mov eax, dword [esi + 0x20]
fmul st(2)
add ecx, 0xc
add edx, 4
dec edi
fstp dword [esp + 0x20]
fld dword [esi + 0x2c]
fadd st(1)
fstp dword [esp + 0x1c]
fld dword [edx - 4]
fmul st(2)
fstp dword [eax + ecx - 0xc]
fld dword [esp + 0x20]
fstp dword [eax + ecx - 8]
fld dword [esp + 0x1c]
fstp dword [eax + ecx - 4]
jne 0x49bfe5
add dword [esp + 0x50], 4
fstp st(1)
dec dword [esp + 0x64]
fstp st(0)
jne 0x49be78
mov ebp, dword [esp + 0x18]
fstp st(1)
jmp 0x49c03e
fld dword [esp + 0xa4]
fsubr dword [esi + 0x2c]
mov ecx, dword [esi + 0x20]
lea eax, [ebp + ebp*2]
lea eax, [ecx + eax*4]
fstp dword [esp + 0x6c]
mov dword [esp + 0x20], ebp
inc ebp
fst dword [eax]
fst dword [eax + 4]
fld dword [esp + 0x6c]
fstp dword [eax + 8]
cmp ebp, dword [esi + 0x14]
je 0x49c081
push 0x351
fstp st(0)
push 0x4b8894
push str.k___nPts
call dword [sym.imp.MSVCR100.dll__wassert]
fldz
add esp, 0xc
mov eax, dword [esp + 0x14]
dec eax
xor edx, edx
mov ebx, 1
mov dword [esp + 0x44], ebx
mov edi, ebx
lea ecx, [edx + 2]
test eax, eax
jle 0x49c0c6
xor ebp, ebp
mov dword [esp + 0x64], eax
mov edx, eax
mov eax, dword [esi + 0x24]
add eax, ebp
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ecx
mov edi, ecx
add ebp, 0x58
inc ecx
dec dword [esp + 0x64]
mov dword [eax + 0x14], 0
mov word [eax + 0x18], 0xff01
jne 0x49c0a2
mov ecx, dword [esp + 0x14]
mov eax, edx
imul eax, eax, 0x58
add eax, dword [esi + 0x24]
inc ecx
inc edx
cmp dword [esp + 0x2c], 0
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], 0
mov word [eax + 0x18], 0xff01
mov dword [esp + 0x30], ecx
jl 0x49c1d2
mov eax, dword [esp + 0x5c]
lea edi, [ecx + 1]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
dec eax
mov ebp, ebx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], edi
test eax, eax
jle 0x49c178
sub edi, ecx
mov ecx, edx
add edi, ebx
imul ecx, ecx, 0x58
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x24]
mov ebx, dword [esp + 0x5c]
add eax, ecx
mov dword [eax + 0x10], ebx
mov ebx, dword [esp + 0x64]
mov dword [eax + 0xc], ebp
mov dword [eax + 0x14], ebx
mov word [eax + 0x18], 0xff01
mov eax, dword [esi + 0x24]
add ecx, 0x58
add eax, ecx
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], edi
mov ebp, edi
mov dword [esp + 0x5c], ebx
inc ebx
add edx, 2
add ecx, 0x58
inc edi
dec dword [esp + 0x50]
mov word [eax + 0x18], 0xff01
mov dword [esp + 0x64], ebx
jne 0x49c125
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x5c]
mov eax, edx
imul eax, eax, 0x58
add eax, dword [esi + 0x24]
mov dword [esp + 0x44], ecx
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + 0x14], ecx
mov dword [eax + 0xc], ebp
mov word [eax + 0x18], 0xff01
lea eax, [edx + 1]
imul eax, eax, 0x58
add eax, dword [esi + 0x24]
add edx, 2
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ebx
mov dword [eax + 0xc], ebp
mov word [eax + 0x18], 0xff01
mov eax, dword [esp + 0x14]
mov ebx, ecx
add ecx, eax
add edi, eax
dec dword [esp + 0x28]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], edi
jne 0x49c105
mov edi, dword [esp + 0x14]
lea eax, [edi - 1]
mov ebp, ebx
lea ecx, [ebx + 1]
test eax, eax
jle 0x49c215
mov edi, edx
imul edi, edi, 0x58
mov dword [esp + 0x64], eax
add edx, eax
mov eax, dword [esi + 0x24]
add eax, edi
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0x20]
mov dword [eax + 0x10], ebp
mov dword [eax + 0x14], ecx
mov ebp, ecx
add edi, 0x58
inc ecx
dec dword [esp + 0x64]
mov word [eax + 0x18], 0xff01
jne 0x49c1ed
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov eax, edx
imul eax, eax, 0x58
add eax, dword [esi + 0x24]
inc edx
mov dword [eax + 0xc], ebp
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], ebx
mov word [eax + 0x18], 0xff01
cmp edx, dword [esi + 0x18]
je 0x49c252
push 0x37f
fstp st(0)
push str.sim_tool.cxx
push str.k___nFacets
call dword [sym.imp.MSVCR100.dll__wassert]
fldz
add esp, 0xc
fld1
xor ebp, ebp
mov dword [esp + 0x18], ebp
cmp edi, 4
jl 0x49c2ca
lea ebx, [edi - 4]
shr ebx, 2
xor ecx, ecx
inc ebx
lea ebp, [ebx*4]
mov dword [esp + 0x18], ebp
mov eax, dword [esi + 0x24]
fxch st(1)
fst dword [eax + ecx]
fst dword [eax + ecx + 4]
fxch st(1)
fst dword [eax + ecx + 8]
mov edx, dword [esi + 0x24]
lea eax, [ecx + edx + 0x58]
fxch st(1)
fst dword [eax]
fst dword [eax + 4]
fxch st(1)
fst dword [eax + 8]
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax + 0xb0]
fxch st(1)
fst dword [eax]
add ecx, 0x160
dec ebx
fst dword [eax + 4]
fxch st(1)
fst dword [eax + 8]
mov eax, dword [esi + 0x24]
fxch st(1)
fst dword [eax + ecx - 0x58]
fst dword [eax + ecx - 0x54]
fxch st(1)
fst dword [eax + ecx - 0x50]
jne 0x49c273
cmp ebp, edi
jge 0x49c2f5
mov ecx, ebp
mov edx, edi
imul ecx, ecx, 0x58
sub edx, ebp
add ebp, edx
mov dword [esp + 0x18], ebp
mov eax, dword [esi + 0x24]
fxch st(1)
fst dword [eax + ecx]
add ecx, 0x58
dec edx
fst dword [eax + ecx - 0x54]
fxch st(1)
fst dword [eax + ecx - 0x50]
jne 0x49c2dd
lea eax, [edi + edi*2]
fstp st(0)
cmp ebp, eax
jge 0x49c3b1
mov ecx, dword [esp + 0x18]
fstp st(0)
mov ebx, ecx
sub eax, ecx
imul ebx, ebx, 0x58
add ecx, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x18], ecx
lea esp, [esp]
mov ecx, dword [esi + 0x24]
mov eax, dword [ebx + ecx + 0xc]
mov ebp, dword [esi + 0x20]
lea edi, [ebx + ecx]
lea edx, [eax + eax*2]
lea eax, [ebp + edx*4]
push eax
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x14]
lea eax, [eax + eax*2]
lea ecx, [ebp + eax*4]
push ecx
lea edx, [esp + 0x58]
push edx
call fcn.0045c130
add esp, 0xc
push eax
mov eax, dword [esp + 0x70]
push eax
mov eax, dword [edi + 0x10]
lea ecx, [eax + eax*2]
lea edx, [ebp + ecx*4]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.0045c130
add esp, 0xc
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.004860e0
fld dword [eax]
fstp dword [edi]
add esp, 0xc
fld dword [eax + 4]
fstp dword [edi + 4]
fld dword [eax + 8]
fstp dword [edi + 8]
mov edx, dword [esi + 0x24]
fldz
fstp dword [ebx + edx + 8]
mov ecx, dword [esi + 0x24]
add ecx, ebx
call fcn.004a1320
fstp st(0)
add ebx, 0x58
dec dword [esp + 0x64]
jne 0x49c320
fldz
mov eax, dword [esi + 0x18]
sub eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jge 0x49c46e
mov ebp, ecx
fstp st(0)
sub eax, ecx
imul ebp, ebp, 0x58
add ecx, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x18], ecx
jmp 0x49c3e0
mov edi, dword [esi + 0x24]
mov eax, dword [edi + ebp + 0xc]
mov ebx, dword [esi + 0x20]
add edi, ebp
lea ecx, [eax + eax*2]
lea eax, [ebx + ecx*4]
push eax
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0x14]
lea edx, [eax + eax*2]
lea eax, [ebx + edx*4]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0045c130
mov edx, dword [esp + 0x78]
add esp, 0xc
push eax
mov eax, dword [edi + 0x10]
push edx
lea eax, [eax + eax*2]
lea ecx, [ebx + eax*4]
push ecx
lea edx, [esp + 0x88]
push edx
call fcn.0045c130
add esp, 0xc
push eax
lea eax, [esp + 0x90]
push eax
call fcn.004860e0
fld dword [eax]
fstp dword [edi]
add esp, 0xc
fld dword [eax + 4]
fstp dword [edi + 4]
fld dword [eax + 8]
fstp dword [edi + 8]
mov ecx, dword [esi + 0x24]
add ecx, ebp
call fcn.004a1320
fstp st(0)
add ebp, 0x58
dec dword [esp + 0x64]
jne 0x49c3e0
fldz
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esi + 0x18]
jge 0x49c49b
fld dword [0x4af5d4]
mov edx, ecx
imul edx, edx, 0x58
mov eax, dword [esi + 0x24]
fxch st(1)
fst dword [eax + edx]
inc ecx
fst dword [eax + edx + 4]
add edx, 0x58
fxch st(1)
fst dword [eax + edx - 0x50]
cmp ecx, dword [esi + 0x18]
jl 0x49c47e
fstp st(0)
mov ecx, dword [esp + 0x3c]
fstp st(0)
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov edx, dword [esp + 0x28]
push edx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov eax, dword [esp + 0x48]
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
mov ecx, dword [esp + 0x6c]
push ecx
call sub.MSVCR100.dll_void___cdecl_operator_delete_void__
add esp, 0x10
mov ecx, esi
call fcn.00499a30
mov ecx, esi
call fcn.00499bb0
xor eax, eax
jmp 0x49c4df
mov eax, 9
mov ecx, dword [esp + 0x94]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x8c
ret 0xc