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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x574e0d
mov eax, dword fs:[0]
push eax
sub esp, 0x1e8
push ebx
push esi
push edi
mov eax, dword [0x59ad00]
xor eax, esp
push eax
lea eax, [esp + 0x1f8]
mov dword fs:[0], eax
mov esi, ecx
movsd xmm0, qword [ebp + 0x14]
mov ebx, dword [ebp + 8]
sub esp, 8
movsd qword [esp], xmm0
movsd xmm0, qword [ebp + 0xc]
xor edi, edi
push edi
sub esp, 8
movsd qword [esp], xmm0
push ebx
call fcn.004ab070
cmp eax, edi
jne 0x4af4b0
movsd xmm0, qword [ebx + 0x10]
ucomisd xmm0, qword [0x57e348]
lahf
movsd qword [esp + 0x6c], xmm0
test ah, 0x44
jnp 0x4adfe8
movsd xmm0, qword [ebx + 0x18]
ucomisd xmm0, qword [0x57e350]
lahf
movsd qword [esp + 0x74], xmm0
test ah, 0x44
jnp 0x4adfe8
push 0x32
lea ecx, [esp + 0x58]
mov dword [esp + 0x60], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], 0xa
call fcn.00401b40
push 0x32
lea ecx, [esp + 0x48]
mov dword [esp + 0x204], edi
mov dword [esp + 0x50], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], 0xa
call fcn.00401a80
cmp dword [ebx + 0xc], 0xc
xorps xmm0, xmm0
mov byte [esp + 0x200], 1
movsd qword [esp + 0xa4], xmm0
movsd qword [esp + 0x9c], xmm0
movsd qword [esp + 0xbc], xmm0
movsd qword [esp + 0xb4], xmm0
movsd qword [esp + 0xac], xmm0
movsd qword [esp + 0xd4], xmm0
movsd qword [esp + 0xcc], xmm0
movsd qword [esp + 0xc4], xmm0
movsd qword [esp + 0xec], xmm0
movsd qword [esp + 0xe4], xmm0
movsd qword [esp + 0xdc], xmm0
movsd qword [esp + 0xfc], xmm0
movsd qword [esp + 0xf4], xmm0
movsd qword [esp + 0x114], xmm0
movsd qword [esp + 0x10c], xmm0
movsd qword [esp + 0x104], xmm0
movsd qword [esp + 0x12c], xmm0
movsd qword [esp + 0x124], xmm0
movsd qword [esp + 0x11c], xmm0
movsd qword [esp + 0x144], xmm0
movsd qword [esp + 0x13c], xmm0
movsd qword [esp + 0x134], xmm0
jne 0x4adcfc
mov eax, dword [esi + 0xc]
cmp eax, 0x39
je 0x4adc6a
cmp eax, 0x3b
je 0x4adc6a
cmp eax, 0x3e
jne 0x4adcfc
movsd xmm1, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x74]
subsd xmm0, xmm1
divsd xmm0, qword [0x57cdf0]
movsd qword [esp + 0x3c], xmm1
movsd qword [esp + 0x64], xmm0
cmp edi, 0x14
jne 0x4adc9f
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x3c], xmm1
mov ecx, dword [esp + 0x54]
lea eax, [edi + edi*2]
lea ebx, [ecx + eax*8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
sub esp, 8
lea eax, [esp + 0x8c]
movsd qword [esp], xmm1
push eax
call edx
movq xmm0, qword [eax]
movsd xmm1, qword [esp + 0x64]
addsd xmm1, qword [esp + 0x3c]
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
inc edi
movq qword [ebx + 0x10], xmm0
movsd qword [esp + 0x3c], xmm1
cmp edi, 0x15
jl 0x4adc8e
jmp 0x4adf4d
movsd xmm0, qword [ebp + 0xc]
sub esp, 0x18
movsd qword [esp + 0x10], xmm0
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x84]
movsd qword [esp], xmm0
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x70]
push ecx
mov ecx, ebx
call fcn.004779f0
mov edi, eax
cmp edi, 2
jl 0x4af450
jne 0x4ade24
cmp dword [ebx + 0xc], 0x13
jne 0x4ade2d
mov ebx, dword [ebx + 0x3c]
cmp ebx, 1
jle 0x4ade2d
movsd xmm0, qword [esp + 0x6c]
inc ebx
push ebx
lea ecx, [esp + 0x58]
movsd qword [esp + 0x68], xmm0
mov dword [esp + 0x54], ebx
call fcn.00401b40
movsd xmm0, qword [esp + 0x74]
subsd xmm0, qword [esp + 0x6c]
lea eax, [ebx - 1]
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
xor edi, edi
divsd xmm0, xmm1
movsd qword [esp + 0x3c], xmm0
test ebx, ebx
jle 0x4adf4d
movsd xmm0, qword [esp + 0x64]
mov dword [esp + 0x38], edi
mov eax, dword [esp + 0x50]
dec eax
cmp edi, eax
jne 0x4addc3
movsd xmm0, qword [esp + 0x74]
movsd qword [esp + 0x64], xmm0
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov ebx, dword [esp + 0x54]
mov edx, dword [edx + 0x68]
add ebx, dword [esp + 0x38]
sub esp, 8
lea eax, [esp + 0x8c]
movsd qword [esp], xmm0
push eax
call edx
movq xmm0, qword [eax]
add dword [esp + 0x38], 0x18
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebx + 0x10], xmm0
movsd xmm0, qword [esp + 0x3c]
addsd xmm0, qword [esp + 0x64]
inc edi
movsd qword [esp + 0x64], xmm0
cmp edi, dword [esp + 0x50]
jl 0x4addae
jmp 0x4adf4d
cmp edi, 0x15
jge 0x4adf4d
mov eax, dword [esi + 0xc]
cmp eax, 0x39
je 0x4ade43
cmp eax, 0x3b
je 0x4ade43
cmp eax, 0x3e
jne 0x4adf4d
movsd xmm0, qword [ebp + 0xc]
mov ecx, dword [ebp + 8]
sub esp, 8
movsd qword [esp], xmm0
call fcn.004778c0
fstp qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x3c]
movsd xmm2, qword [ebp + 0xc]
mulsd xmm2, qword [0x57b6f0]
movapd xmm0, xmm1
divsd xmm0, qword [0x57cdf0]
comisd xmm2, xmm0
mov ebx, 0x14
mov dword [esp + 0x38], ebx
jbe 0x4ade9e
divsd xmm1, xmm2
addsd xmm1, qword [0x57b6c0]
cvttsd2si ebx, xmm1
mov dword [esp + 0x38], ebx
lea eax, [edi - 1]
cmp ebx, eax
jle 0x4adf4d
lea ecx, [ebx + 1]
push ecx
lea ecx, [esp + 0x58]
call fcn.00401b40
movsd xmm1, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x74]
xorps xmm2, xmm2
subsd xmm0, xmm1
cvtsi2sd xmm2, ebx
xor edi, edi
divsd xmm0, xmm2
movsd qword [esp + 0x3c], xmm1
movsd qword [esp + 0x64], xmm0
test ebx, ebx
js 0x4adf4d
cmp edi, 0x14
jne 0x4adef4
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x3c], xmm1
mov eax, dword [esp + 0x54]
mov ecx, dword [ebp + 8]
lea edx, [edi + edi*2]
lea ebx, [eax + edx*8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x68]
sub esp, 8
lea eax, [esp + 0x8c]
movsd qword [esp], xmm1
push eax
call edx
movq xmm0, qword [eax]
movsd xmm1, qword [esp + 0x64]
addsd xmm1, qword [esp + 0x3c]
movq qword [ebx], xmm0
movq xmm0, qword [eax + 8]
movq qword [ebx + 8], xmm0
movq xmm0, qword [eax + 0x10]
inc edi
movq qword [ebx + 0x10], xmm0
movsd qword [esp + 0x3c], xmm1
cmp edi, dword [esp + 0x38]
jle 0x4adee3
movsd xmm1, qword [esp + 0x6c]
movsd xmm0, qword [esp + 0x74]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
subsd xmm0, xmm1
mulsd xmm0, qword [0x57b8b8]
sub esp, 8
movsd qword [esp + 0x154], xmm0
addsd xmm0, xmm1
lea edx, [esp + 0x16c]
movsd qword [esp], xmm0
push edx
call eax
movsd xmm0, qword [0x57e370]
mov edx, dword [esi]
mov edx, dword [edx + 0x78]
sub esp, 8
movsd qword [esp], xmm0
lea eax, [esp + 0x16c]
push eax
xor ebx, ebx
push ebx
push ebx
push ebx
lea ecx, [esp + 0x10c]
push ecx
mov ecx, esi
call edx
test al, al
jne 0x4ae002
mov esi, dword [sym.imp.MSVCR100.dll_free]
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x4adfd2
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x4c], ebx
cmp eax, ebx
je 0x4adfe8
push eax
call esi
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
movsd xmm0, qword [0x57e398]
sub esp, 8
lea eax, [esp + 0xfc]
movsd qword [esp], xmm0
push eax
mov ecx, esi
call fcn.004a1860
push edi
lea ecx, [esp + 0x88]
mov dword [esp + 0x8c], 1
mov dword [esp + 0x90], ebx
mov dword [esp + 0x88], ebx
call fcn.0045cdc0
movsd xmm0, qword [0x57e370]
mov eax, dword [esp + 0x54]
mov edx, dword [esi]
mov edx, dword [edx + 0x78]
sub esp, 8
movsd qword [esp], xmm0
push eax
push ebx
push ebx
push ebx
lea ecx, [esp + 0xb4]
push ecx
mov ecx, esi
mov byte [esp + 0x21c], 2
call edx
test al, al
jne 0x4ae09c
mov eax, dword [esp + 0x84]
mov esi, dword [sym.imp.MSVCR100.dll_free]
cmp eax, ebx
je 0x4adfc4
push eax
call esi
add esp, 4
jmp 0x4adfc4
movsd xmm0, qword [0x57e398]
sub esp, 8
lea eax, [esp + 0xa4]
movsd qword [esp], xmm0
push eax
mov ecx, esi
call fcn.004a1860
cmp byte [esi + 0x1a], 0
movsd xmm7, qword [0x57ca30]
movsd xmm4, qword [0x57b948]
movsd xmm6, qword [0x57b8e0]
je 0x4ae1a1
movsd xmm0, qword [esp + 0x9c]
movsd xmm1, qword [esi + 0x50]
movapd xmm3, xmm0
subsd xmm3, xmm1
andpd xmm3, xmm7
comisd xmm4, xmm3
movapd xmm2, xmm0
jbe 0x4ae107
movapd xmm2, xmm1
jmp 0x4ae11e
movsd xmm3, qword [esi + 0x58]
subsd xmm0, xmm3
andpd xmm0, xmm7
comisd xmm4, xmm0
jbe 0x4ae11e
movapd xmm2, xmm3
movsd xmm3, qword [esp + 0xf4]
movapd xmm0, xmm1
addsd xmm0, xmm6
comisd xmm0, xmm2
jbe 0x4ae166
movsd xmm0, qword [esi + 0x70]
movapd xmm4, xmm0
mulsd xmm4, qword [str.333333]
addsd xmm4, xmm1
comisd xmm3, xmm4
jbe 0x4ae166
addsd xmm0, xmm1
movapd xmm2, xmm0
movsd qword [esp + 0x9c], xmm2
jmp 0x4ae248
movsd xmm0, qword [esi + 0x70]
movapd xmm4, xmm0
addsd xmm4, xmm1
subsd xmm4, xmm6
comisd xmm2, xmm4
jbe 0x4ae193
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm3
jbe 0x4ae193
movapd xmm2, xmm1
movsd qword [esp + 0x9c], xmm2
jmp 0x4ae248
cmp byte [esi + 0x18], 0
je 0x4ae248
movsd xmm3, qword [esi + 0x50]
movsd xmm1, qword [esp + 0x9c]
movsd xmm4, qword [esp + 0xf4]
movapd xmm0, xmm3
addsd xmm0, xmm6
comisd xmm0, xmm1
movapd xmm5, xmm1
jbe 0x4ae20d
movsd xmm2, qword [esi + 0x58]
movsd xmm7, qword [0x57ca30]
movapd xmm0, xmm3
movapd xmm6, xmm2
subsd xmm6, xmm0
mulsd xmm6, qword [str.333333]
addsd xmm6, xmm0
comisd xmm4, xmm6
movsd xmm6, qword [0x57b8e0]
jbe 0x4ae20d
movapd xmm5, xmm2
jmp 0x4ae23f
movsd xmm0, qword [esi + 0x58]
movapd xmm2, xmm0
subsd xmm2, xmm6
comisd xmm1, xmm2
jbe 0x4ae23f
movsd xmm1, qword [esi + 0x50]
subsd xmm0, xmm1
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm4
jbe 0x4ae23f
movapd xmm5, xmm3
movsd qword [esp + 0x9c], xmm5
cmp byte [esi + 0x1b], 0
je 0x4ae31e
movsd xmm0, qword [esp + 0xa4]
movsd xmm1, qword [esi + 0x60]
movsd xmm4, qword [0x57b948]
movapd xmm3, xmm0
subsd xmm3, xmm1
andpd xmm3, xmm7
comisd xmm4, xmm3
movapd xmm2, xmm0
jbe 0x4ae284
movapd xmm2, xmm1
jmp 0x4ae29b
movsd xmm3, qword [esi + 0x68]
subsd xmm0, xmm3
andpd xmm0, xmm7
comisd xmm4, xmm0
jbe 0x4ae29b
movapd xmm2, xmm3
movsd xmm3, qword [esp + 0xfc]
movapd xmm0, xmm1
addsd xmm0, xmm6
comisd xmm0, xmm2
jbe 0x4ae2e3
movsd xmm0, qword [esi + 0x78]
movapd xmm4, xmm0
mulsd xmm4, qword [str.333333]
addsd xmm4, xmm1
comisd xmm3, xmm4
jbe 0x4ae2e3
addsd xmm0, xmm1
movapd xmm2, xmm0
movsd qword [esp + 0xa4], xmm2
jmp 0x4ae3bd
movsd xmm0, qword [esi + 0x78]
movapd xmm4, xmm0
addsd xmm4, xmm1
subsd xmm4, xmm6
comisd xmm2, xmm4
jbe 0x4ae310
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm3
jbe 0x4ae310
movapd xmm2, xmm1
movsd qword [esp + 0xa4], xmm2
jmp 0x4ae3bd
cmp byte [esi + 0x19], 0
je 0x4ae3bd
movsd xmm3, qword [esi + 0x60]
movsd xmm1, qword [esp + 0xa4]
movsd xmm4, qword [esp + 0xfc]
movapd xmm0, xmm3
addsd xmm0, xmm6
comisd xmm0, xmm1
movapd xmm5, xmm1
jbe 0x4ae382
movsd xmm2, qword [esi + 0x68]
movapd xmm0, xmm3
movapd xmm6, xmm2
subsd xmm6, xmm0
mulsd xmm6, qword [str.333333]
addsd xmm6, xmm0
comisd xmm4, xmm6
jbe 0x4ae37a
movapd xmm5, xmm2
jmp 0x4ae3b4
movsd xmm6, qword [0x57b8e0]
movsd xmm0, qword [esi + 0x68]
movapd xmm2, xmm0
subsd xmm2, xmm6
comisd xmm1, xmm2
jbe 0x4ae3b4
movsd xmm1, qword [esi + 0x60]
subsd xmm0, xmm1
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm4
jbe 0x4ae3b4
movapd xmm5, xmm3
movsd qword [esp + 0xa4], xmm5
mov ebx, dword [esp + 0x84]
movq xmm0, qword [esp + 0x9c]
movq qword [ebx], xmm0
movq xmm0, qword [esp + 0xa4]
movq qword [ebx + 8], xmm0
movsd xmm0, qword [0x57e398]
mulsd xmm0, qword [0x57c140]
mov byte [esp + 0x36], 1
mov byte [esp + 0x37], 1
movsd qword [esp + 0x3c], xmm0
mov byte [esp + 0x60], 1
mov dword [esp + 0x7c], 1
cmp edi, 1
jle 0x4ae7b7
lea eax, [ebx + 0x18]
dec edi
mov dword [esp + 0x64], eax
lea eax, [ebx + 8]
mov dword [esp + 0x6c], edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x38], 0x18
mov dword [esp + 0x50], eax
jmp 0x4ae440
mov eax, dword [esp + 0x54]
add eax, dword [esp + 0x38]
movsd xmm0, qword [0x57e370]
mov edx, dword [esi]
mov edx, dword [edx + 0x78]
sub esp, 8
movsd qword [esp], xmm0
push eax
mov eax, dword [esp + 0x6c]
push 0
push 0
push eax
lea ecx, [esp + 0xb4]
push ecx
mov ecx, esi
call edx
test al, al
jne 0x4ae4b9
cmp byte [esp + 0x60], al
je 0x4ae4be
movsd xmm0, qword [0x57e370]
mov edx, dword [esi]
mov edx, dword [edx + 0x78]
mov byte [esp + 0x60], al
mov eax, dword [esp + 0x54]
add eax, dword [esp + 0x38]
sub esp, 8
movsd qword [esp], xmm0
push eax
push 0
push 0
push 0
lea eax, [esp + 0xb4]
push eax
mov ecx, esi
call edx
test al, al
je 0x4ae79a
mov byte [esp + 0x60], 1
movsd xmm0, qword [0x57e398]
sub esp, 8
lea eax, [esp + 0xa4]
movsd qword [esp], xmm0
push eax
mov ecx, esi
call fcn.004a1860
cmp byte [esi + 0x1a], 0
movsd xmm4, qword [esp + 0x9c]
movsd xmm3, qword [0x57ca30]
je 0x4ae588
movsd xmm1, qword [esi + 0x50]
movsd xmm2, qword [0x57b948]
movapd xmm5, xmm4
subsd xmm5, xmm1
andpd xmm5, xmm3
comisd xmm2, xmm5
movapd xmm0, xmm4
ja 0x4ae532
movsd xmm1, qword [esi + 0x58]
movapd xmm5, xmm4
subsd xmm5, xmm1
andpd xmm5, xmm3
comisd xmm2, xmm5
jbe 0x4ae536
movapd xmm0, xmm1
mov eax, dword [esp + 0x50]
movsd xmm1, qword [eax - 8]
movsd xmm2, qword [esi + 0x70]
movsd xmm5, qword [str.333333]
subsd xmm1, xmm0
movapd xmm6, xmm1
movapd xmm7, xmm2
andpd xmm6, xmm3
mulsd xmm7, xmm5
comisd xmm6, xmm7
jbe 0x4ae5fc
comisd xmm1, xmmword [0x57b630]
jbe 0x4ae57e
addsd xmm0, xmm2
movapd xmm4, xmm0
jmp 0x4ae5f3
subsd xmm0, xmm2
movapd xmm4, xmm0
jmp 0x4ae5f3
cmp byte [esi + 0x18], 0
mov eax, dword [esp + 0x50]
movsd xmm5, qword [str.333333]
je 0x4ae5fc
movsd xmm0, qword [eax - 8]
movsd xmm1, qword [esi + 0x58]
movsd xmm2, qword [esi + 0x50]
subsd xmm0, xmm4
movapd xmm7, xmm1
movapd xmm6, xmm0
subsd xmm7, xmm2
andpd xmm6, xmm3
mulsd xmm7, xmm5
comisd xmm6, xmm7
movsd qword [esp + 0x7c], xmm4
jbe 0x4ae5fc
comisd xmm0, xmmword [0x57b630]
jbe 0x4ae68c
addsd xmm2, qword [0x57e398]
comisd xmm2, xmm4
ja 0x4ae5ef
movsd xmm1, qword [esp + 0x7c]
movapd xmm4, xmm1
movsd qword [esp + 0x9c], xmm4
cmp byte [esi + 0x1b], 0
je 0x4ae6b6
movsd xmm1, qword [esp + 0xa4]
movsd xmm2, qword [esi + 0x60]
movsd xmm6, qword [0x57b948]
movapd xmm7, xmm1
subsd xmm7, xmm2
andpd xmm7, xmm3
comisd xmm6, xmm7
movapd xmm0, xmm1
ja 0x4ae645
movsd xmm2, qword [esi + 0x68]
subsd xmm1, xmm2
andpd xmm1, xmm3
comisd xmm6, xmm1
jbe 0x4ae649
movapd xmm0, xmm2
movsd xmm1, qword [eax]
movsd xmm2, qword [esi + 0x78]
subsd xmm1, xmm0
movapd xmm6, xmm1
movapd xmm7, xmm2
andpd xmm6, xmm3
mulsd xmm7, xmm5
comisd xmm6, xmm7
jbe 0x4ae731
comisd xmm1, xmmword [0x57b630]
jbe 0x4ae6a7
addsd xmm0, xmm2
movsd qword [esp + 0xa4], xmm0
jmp 0x4ae731
subsd xmm1, qword [0x57e398]
comisd xmm4, xmm1
jbe 0x4ae5e9
movapd xmm1, xmm2
jmp 0x4ae5ef
subsd xmm0, xmm2
movsd qword [esp + 0xa4], xmm0
jmp 0x4ae731
cmp byte [esi + 0x19], 0
je 0x4ae731
movsd xmm4, qword [esp + 0xa4]
movsd xmm0, qword [eax]
movsd xmm1, qword [esi + 0x68]
movsd xmm2, qword [esi + 0x60]
subsd xmm0, xmm4
movapd xmm7, xmm1
movapd xmm6, xmm0
subsd xmm7, xmm2
andpd xmm6, xmm3
mulsd xmm7, xmm5
comisd xmm6, xmm7
movsd qword [esp + 0x17c], xmm4
jbe 0x4ae728
comisd xmm0, xmmword [0x57b630]
jbe 0x4ae7e6
addsd xmm2, qword [0x57e398]
comisd xmm2, xmm4
ja 0x4ae71f
movsd xmm1, qword [esp + 0x17c]
movsd qword [esp + 0xa4], xmm1
movsd xmm4, qword [esp + 0x9c]
cmp byte [esp + 0x36], 0
mov eax, dword [esp + 0x64]
movq qword [eax - 8], xmm4
movq xmm0, qword [esp + 0xa4]
movq qword [eax], xmm0
je 0x4ae76d
movsd xmm0, qword [eax - 8]
movsd xmm1, qword [eax - 0x18]
subsd xmm0, xmm1
andpd xmm0, xmm3
comisd xmm0, xmmword [esp + 0x3c]
jbe 0x4ae76d
mov byte [esp + 0x36], 0
cmp byte [esp + 0x37], 0
je 0x4ae792
movsd xmm0, qword [eax]
movsd xmm1, qword [eax - 0x10]
subsd xmm0, xmm1
andpd xmm0, xmm3
comisd xmm0, xmmword [esp + 0x3c]
jbe 0x4ae792
mov byte [esp + 0x37], 0
inc edi
add eax, 0x10
mov dword [esp + 0x64], eax
add dword [esp + 0x38], 0x18
add dword [esp + 0x50], 0x10
dec dword [esp + 0x6c]
jne 0x4ae440
mov dword [esp + 0x7c], edi
cmp edi, 2
jge 0x4ae801
mov esi, dword [sym.imp.MSVCR100.dll_free]
push ebx
call esi
mov eax, dword [esp + 0x48]
xor edi, edi
add esp, 4
cmp eax, edi
je 0x4ae7d3
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x54]
mov dword [esp + 0x44], edi
mov dword [esp + 0x4c], edi
cmp eax, edi
jmp 0x4adfe0
subsd xmm1, qword [0x57e398]
comisd xmm4, xmm1
jbe 0x4ae716
movapd xmm1, xmm2
jmp 0x4ae71f
mov ecx, dword [ebp + 8]
movsd xmm0, qword [esp + 0x74]
mov edx, dword [ecx]
subsd xmm0, qword [esp + 0x14c]
mov edx, dword [edx + 0x68]
sub esp, 8
lea eax, [esp + 0x154]
movsd qword [esp], xmm0
push eax
call edx
movq xmm0, qword [eax]
movq qword [esp + 0x164], xmm0
movq xmm0, qword [eax + 8]
sub esp, 8
movq qword [esp + 0x174], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [esi]
mov eax, dword [eax + 0x78]
movq qword [esp + 0x17c], xmm0
movsd xmm0, qword [0x57e370]
movsd qword [esp], xmm0
lea ecx, [esp + 0x16c]
push ecx
push 0
push 0
push 0
lea edx, [esp + 0x10c]
push edx
mov ecx, esi
call eax
test al, al
je 0x4ae7b7
movsd xmm0, qword [0x57e398]
sub esp, 8
lea ecx, [esp + 0xfc]
movsd qword [esp], xmm0
push ecx
mov ecx, esi
call fcn.004a1860
mov al, byte [esi + 0x1a]
movsd xmm5, qword [0x57b8e0]
movsd xmm6, qword [str.333333]
test al, al
je 0x4ae957
movsd xmm0, qword [esi + 0x50]
movsd xmm2, qword [esp + 0xf4]
movapd xmm1, xmm0
addsd xmm1, xmm5
comisd xmm1, xmm2
movapd xmm4, xmm2
jbe 0x4ae913
movsd xmm1, qword [esi + 0x70]
lea edx, [edi - 2]
shl edx, 4
movsd xmm3, qword [edx + ebx]
movapd xmm7, xmm1
mulsd xmm7, xmm6
addsd xmm7, xmm0
comisd xmm3, xmm7
jbe 0x4ae913
addsd xmm1, xmm0
movapd xmm4, xmm1
jmp 0x4ae9ea
movsd xmm1, qword [esi + 0x70]
movapd xmm3, xmm1
addsd xmm3, xmm0
subsd xmm3, xmm5
comisd xmm2, xmm3
jbe 0x4ae9ea
mulsd xmm1, qword [0x57bdd8]
lea ecx, [edi - 2]
add ecx, ecx
movsd xmm2, qword [ebx + ecx*8]
addsd xmm1, xmm0
comisd xmm1, xmm2
jbe 0x4ae9ea
movapd xmm4, xmm0
jmp 0x4ae9ea
cmp byte [esi + 0x18], 0
je 0x4ae9f3
movsd xmm2, qword [esp + 0xf4]
movsd xmm0, qword [esi + 0x50]
addsd xmm0, xmm5
comisd xmm0, xmm2
movapd xmm4, xmm2
jbe 0x4ae9ae
movsd xmm1, qword [esi + 0x58]
movsd xmm0, qword [esi + 0x50]
lea edx, [edi - 2]
shl edx, 4
movsd xmm3, qword [edx + ebx]
movapd xmm7, xmm1
subsd xmm7, xmm0
mulsd xmm7, xmm6
addsd xmm7, xmm0
comisd xmm3, xmm7
jbe 0x4ae9ae
movapd xmm4, xmm1
jmp 0x4ae9ea
movsd xmm0, qword [esi + 0x58]
movapd xmm1, xmm0
subsd xmm1, xmm5
comisd xmm2, xmm1
jbe 0x4ae9ea
movsd xmm1, qword [esi + 0x50]
lea ecx, [edi - 2]
add ecx, ecx
movsd xmm2, qword [ebx + ecx*8]
subsd xmm0, xmm1
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm2
jbe 0x4ae9ea
movapd xmm4, xmm1
movsd qword [esp + 0xf4], xmm4
cmp byte [esi + 0x1b], 0
je 0x4aea9e
movsd xmm0, qword [esi + 0x60]
movsd xmm2, qword [esp + 0xfc]
movapd xmm1, xmm0
addsd xmm1, xmm5
comisd xmm1, xmm2
jbe 0x4aea55
movsd xmm1, qword [esi + 0x78]
mov edx, edi
shl edx, 4
movsd xmm4, qword [edx + ebx - 0x18]
movapd xmm3, xmm1
mulsd xmm3, xmm6
addsd xmm3, xmm0
comisd xmm4, xmm3
jbe 0x4aea55
addsd xmm1, xmm0
movapd xmm2, xmm1
movapd xmm3, xmm2
movsd qword [esp + 0xfc], xmm3
jmp 0x4aeb4e
movsd xmm1, qword [esi + 0x78]
movapd xmm3, xmm1
addsd xmm3, xmm0
subsd xmm3, xmm5
comisd xmm2, xmm3
jbe 0x4aea8c
mulsd xmm1, qword [0x57bdd8]
mov ecx, edi
add ecx, ecx
movsd xmm4, qword [ebx + ecx*8 - 0x18]
addsd xmm1, xmm0
comisd xmm1, xmm4
jbe 0x4aea8c
movapd xmm2, xmm0
movapd xmm3, xmm2
movsd qword [esp + 0xfc], xmm3
jmp 0x4aeb4e
cmp byte [esi + 0x19], 0
je 0x4aeb45
movsd xmm2, qword [esp + 0xfc]
movsd xmm0, qword [esi + 0x60]
addsd xmm0, xmm5
comisd xmm0, xmm2
movapd xmm3, xmm2
jbe 0x4aeafe
movsd xmm1, qword [esi + 0x68]
movsd xmm0, qword [esi + 0x60]
mov edx, edi
shl edx, 4
movsd xmm4, qword [edx + ebx - 0x18]
movapd xmm7, xmm1
subsd xmm7, xmm0
mulsd xmm7, xmm6
addsd xmm7, xmm0
comisd xmm4, xmm7
jbe 0x4aeafe
movapd xmm3, xmm1
movsd qword [esp + 0xfc], xmm3
jmp 0x4aeb4e
movsd xmm0, qword [esi + 0x68]
movapd xmm1, xmm0
subsd xmm1, xmm5
comisd xmm2, xmm1
jbe 0x4aeb3a
movsd xmm1, qword [esi + 0x60]
mov ecx, edi
add ecx, ecx
movsd xmm2, qword [ebx + ecx*8 - 0x18]
subsd xmm0, xmm1
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm2
jbe 0x4aeb3a
movapd xmm3, xmm1
movsd qword [esp + 0xfc], xmm3
jmp 0x4aeb4e
movsd xmm3, qword [esp + 0xfc]
cmp byte [esp + 0x36], 0
jne 0x4aeccd
test al, al
je 0x4aec15
movsd xmm1, qword [esi + 0x50]
movsd xmm4, qword [0x57ca30]
mov edx, edi
shl edx, 4
movsd xmm2, qword [edx + ebx - 0x10]
lea eax, [edx + ebx - 0x10]
movapd xmm0, xmm2
movapd xmm3, xmm1
andpd xmm0, xmm4
addsd xmm3, xmm5
comisd xmm3, xmm0
jbe 0x4aebcd
movsd xmm0, qword [esi + 0x70]
movsd xmm7, qword [esp + 0xf4]
movapd xmm3, xmm0
mulsd xmm3, xmm6
addsd xmm3, xmm1
comisd xmm7, xmm3
jbe 0x4aebcd
addsd xmm0, xmm1
movapd xmm2, xmm0
movsd qword [eax], xmm2
movsd xmm3, qword [esp + 0xfc]
jmp 0x4aecd5
movsd xmm0, qword [esi + 0x70]
movapd xmm3, xmm2
subsd xmm3, xmm1
subsd xmm3, xmm0
andpd xmm3, xmm4
comisd xmm5, xmm3
jbe 0x4aec03
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmmword [esp + 0xf4]
jbe 0x4aec03
movapd xmm2, xmm1
movsd qword [eax], xmm2
movsd xmm3, qword [esp + 0xfc]
jmp 0x4aecd5
cmp byte [esi + 0x18], 0
je 0x4aeccd
movsd xmm3, qword [esi + 0x50]
movsd xmm4, qword [0x57ca30]
mov eax, edi
add eax, eax
movsd xmm1, qword [ebx + eax*8 - 0x10]
lea eax, [ebx + eax*8 - 0x10]
movapd xmm0, xmm1
subsd xmm0, xmm3
andpd xmm0, xmm4
comisd xmm5, xmm0
jbe 0x4aec83
movsd xmm2, qword [esi + 0x58]
movsd xmm0, qword [esp + 0xf4]
movapd xmm7, xmm2
subsd xmm7, xmm3
mulsd xmm7, xmm6
addsd xmm7, xmm3
comisd xmm0, xmm7
jbe 0x4aec83
movapd xmm1, xmm2
movsd qword [eax], xmm1
movsd xmm3, qword [esp + 0xfc]
jmp 0x4aecd5
movsd xmm0, qword [esi + 0x58]
movapd xmm2, xmm1
subsd xmm2, xmm0
andpd xmm2, xmm4
comisd xmm5, xmm2
jbe 0x4aecbe
movsd xmm2, qword [esi + 0x50]
subsd xmm0, xmm2
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm2
comisd xmm0, xmmword [esp + 0xf4]
jbe 0x4aecbe
movapd xmm1, xmm3
movsd qword [eax], xmm1
movsd xmm3, qword [esp + 0xfc]
jmp 0x4aecd5
movsd xmm4, qword [0x57ca30]
mov dl, byte [esp + 0x37]
test dl, dl
jne 0x4aede9
cmp byte [esi + 0x1b], dl
je 0x4aed65
movsd xmm1, qword [esi + 0x60]
mov eax, edi
add eax, eax
movsd xmm2, qword [ebx + eax*8 - 8]
movapd xmm0, xmm1
addsd xmm0, xmm5
comisd xmm0, xmm2
jbe 0x4aed2d
movsd xmm0, qword [esi + 0x78]
movapd xmm7, xmm0
mulsd xmm7, xmm6
addsd xmm7, xmm1
comisd xmm3, xmm7
jbe 0x4aed2d
addsd xmm0, xmm1
movapd xmm2, xmm0
movsd qword [ebx + eax*8 - 8], xmm2
jmp 0x4aede9
movsd xmm0, qword [esi + 0x78]
movapd xmm6, xmm0
addsd xmm6, xmm1
subsd xmm6, xmm5
comisd xmm2, xmm6
jbe 0x4aed5a
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm1
comisd xmm0, xmm3
jbe 0x4aed5a
movapd xmm2, xmm1
movsd qword [ebx + eax*8 - 8], xmm2
jmp 0x4aede9
cmp byte [esi + 0x19], 0
je 0x4aede9
movsd xmm0, qword [esi + 0x60]
mov eax, edi
add eax, eax
movsd xmm1, qword [ebx + eax*8 - 8]
movapd xmm2, xmm1
subsd xmm2, xmm0
andpd xmm2, xmm4
comisd xmm5, xmm2
jbe 0x4aedad
movsd xmm2, qword [esi + 0x68]
movapd xmm7, xmm2
subsd xmm7, xmm0
mulsd xmm7, xmm6
addsd xmm7, xmm0
comisd xmm3, xmm7
jbe 0x4aedad
movapd xmm1, xmm2
jmp 0x4aede3
movsd xmm0, qword [esi + 0x68]
movapd xmm2, xmm1
subsd xmm2, xmm0
andpd xmm2, xmm4
comisd xmm5, xmm2
jbe 0x4aede3
movsd xmm2, qword [esi + 0x60]
subsd xmm0, xmm2
mulsd xmm0, qword [0x57bdd8]
addsd xmm0, xmm2
comisd xmm0, xmm3
jbe 0x4aede3
movapd xmm1, xmm2
movsd qword [ebx + eax*8 - 8], xmm1
cmp byte [esi + 0x1c], 0
movsd xmm0, qword [esp + 0x3c]
je 0x4aee66
movsd xmm1, qword [ebx]
movsd xmm2, qword [esi + 0x50]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aee25
movsd xmm1, qword [ebx + 0x10]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aee25
fld qword [ebx + 0x18]
fstp qword [ebx + 8]
movsd xmm2, qword [esi + 0x50]
mov ecx, edi
add ecx, ecx
movsd xmm1, qword [ebx + ecx*8 - 0x10]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aee66
lea eax, [edi - 2]
add eax, eax
movsd xmm1, qword [ebx + eax*8]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aee66
movsd xmm1, qword [ebx + ecx*8 - 0x18]
movsd qword [ebx + ecx*8 - 8], xmm1
cmp byte [esi + 0x1d], 0
je 0x4aeedd
movsd xmm1, qword [ebx]
movsd xmm2, qword [esi + 0x58]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aee9c
movsd xmm1, qword [ebx + 0x10]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aee9c
fld qword [ebx + 0x18]
fstp qword [ebx + 8]
movsd xmm2, qword [esi + 0x58]
mov ecx, edi
add ecx, ecx
movsd xmm1, qword [ebx + ecx*8 - 0x10]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aeedd
lea eax, [edi - 2]
add eax, eax
movsd xmm1, qword [ebx + eax*8]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aeedd
movsd xmm1, qword [ebx + ecx*8 - 0x18]
movsd qword [ebx + ecx*8 - 8], xmm1
cmp byte [esi + 0x1e], 0
je 0x4aef56
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [esi + 0x60]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aef13
movsd xmm1, qword [ebx + 0x18]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aef13
fld qword [ebx + 0x10]
fstp qword [ebx]
movsd xmm2, qword [esi + 0x60]
mov ecx, edi
add ecx, ecx
movsd xmm1, qword [ebx + ecx*8 - 8]
lea eax, [ebx + ecx*8 - 0x10]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aef56
lea ecx, [edi - 2]
add ecx, ecx
movsd xmm1, qword [ebx + ecx*8 + 8]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aef56
movsd xmm1, qword [ebx + ecx*8]
movsd qword [eax], xmm1
cmp byte [esi + 0x1f], 0
je 0x4aefcf
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [esi + 0x68]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aef8c
movsd xmm1, qword [ebx + 0x18]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aef8c
fld qword [ebx + 0x10]
fstp qword [ebx]
movsd xmm2, qword [esi + 0x68]
mov eax, edi
add eax, eax
movsd xmm1, qword [ebx + eax*8 - 8]
lea eax, [ebx + eax*8 - 0x10]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm0, xmm1
jbe 0x4aefcf
lea ecx, [edi - 2]
add ecx, ecx
movsd xmm1, qword [ebx + ecx*8 + 8]
subsd xmm1, xmm2
andpd xmm1, xmm4
comisd xmm1, xmm0
jbe 0x4aefcf
movsd xmm0, qword [ebx + ecx*8]
movsd qword [eax], xmm0
cmp byte [esp + 0x36], 0
jne 0x4af1a7
test dl, dl
jne 0x4af1a7
cmp edi, 3
jle 0x4af118
cmp byte [esi + 0x1a], dl
jne 0x4aeff9
cmp byte [esi + 0x1b], dl
je 0x4af118
movsd xmm0, qword [ebx + 8]
movsd xmm3, qword [ebx]
movsd qword [esp + 0x3c], xmm0
cmp edi, 1
jle 0x4af118
movsd xmm6, qword [0x57cb70]
lea eax, [ebx + 0x10]
dec edi
lea ecx, [ecx]
cmp byte [esi + 0x1a], 0
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
je 0x4af095
movapd xmm0, xmm2
subsd xmm0, xmm3
movsd xmm3, qword [esi + 0x70]
movapd xmm5, xmm0
movapd xmm7, xmm3
andpd xmm5, xmm4
mulsd xmm7, xmm6
comisd xmm5, xmm7
jbe 0x4af095
comisd xmm0, xmmword [0x57b630]
jbe 0x4af071
movsd xmm0, qword [esi + 0x50]
subsd xmm2, xmm3
comisd xmm0, xmm2
jbe 0x4af091
movapd xmm2, xmm0
jmp 0x4af091
movsd xmm0, qword [esi + 0x70]
movsd xmm5, qword [esi + 0x50]
addsd xmm2, xmm0
addsd xmm0, xmm5
comisd xmm2, xmm0
jbe 0x4af091
addsd xmm3, xmm5
movapd xmm2, xmm3
movsd qword [eax], xmm2
cmp byte [esi + 0x1b], 0
je 0x4af104
movsd xmm3, qword [esi + 0x78]
movapd xmm0, xmm1
subsd xmm0, qword [esp + 0x3c]
movapd xmm5, xmm0
movapd xmm7, xmm3
andpd xmm5, xmm4
mulsd xmm7, xmm6
comisd xmm5, xmm7
jbe 0x4af104
comisd xmm0, xmmword [0x57b630]
jbe 0x4af0df
movsd xmm0, qword [esi + 0x60]
subsd xmm1, xmm3
comisd xmm0, xmm1
jbe 0x4af0ff
movapd xmm1, xmm0
jmp 0x4af0ff
movsd xmm0, qword [esi + 0x78]
movsd xmm5, qword [esi + 0x60]
addsd xmm1, xmm0
addsd xmm0, xmm5
comisd xmm1, xmm0
jbe 0x4af0ff
addsd xmm3, xmm5
movapd xmm1, xmm3
movsd qword [eax + 8], xmm1
add eax, 0x10
dec edi
movapd xmm3, xmm2
movsd qword [esp + 0x3c], xmm1
jne 0x4af020
push 0x88
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x6c], eax
mov byte [esp + 0x200], 6
test eax, eax
je 0x4af147
mov ecx, dword [esp + 0x7c]
push ecx
push ebx
push ecx
mov ecx, eax
call fcn.004c18d0
mov edi, eax
jmp 0x4af149
xor edi, edi
mov ecx, edi
mov byte [esp + 0x200], 2
call fcn.004bbb80
test al, al
je 0x4af178
mov edx, dword [ebp + 8]
cmp byte [edx + 0x39], 0
je 0x4af178
movsd xmm0, qword [edi + 0x18]
subsd xmm0, qword [edi + 0x10]
mov byte [edi + 0x41], 1
movsd qword [edi + 0x20], xmm0
test edi, edi
je 0x4af47c
lea eax, [esp + 0x84]
push eax
mov ecx, esi
call fcn.004a2950
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [edi + 0x30], xmm0
movq qword [edi + 0x38], xmm1
jmp 0x4af47c
mov ecx, dword [esp + 0x7c]
xor edi, edi
xor esi, esi
cmp ecx, 2
jle 0x4af3e9
cmp byte [esp + 0x36], 0
je 0x4af1c6
movsd xmm2, qword [ebx + 8]
jmp 0x4af1ca
movsd xmm2, qword [ebx]
mov eax, 1
movapd xmm1, xmm2
cmp ecx, eax
jle 0x4ae7b7
movsd xmm3, qword [0x57e398]
lea edx, [ecx - 1]
cmp edx, 4
jl 0x4af30f
lea ecx, [eax + 2]
lea edx, [ebx + 0x28]
cmp byte [esp + 0x36], 0
je 0x4af203
movsd xmm0, qword [edx - 0x10]
jmp 0x4af208
movsd xmm0, qword [edx - 0x18]
movapd xmm4, xmm1
subsd xmm4, xmm3
comisd xmm4, xmm0
jbe 0x4af21e
mov edi, eax
movapd xmm1, xmm0
jmp 0x4af232
movapd xmm4, xmm2
addsd xmm4, xmm3
comisd xmm0, xmm4
jbe 0x4af232
mov esi, eax
movapd xmm2, xmm0
cmp byte [esp + 0x36], 0
je 0x4af23f
movsd xmm0, qword [edx]
jmp 0x4af244
movsd xmm0, qword [edx - 8]
movapd xmm4, xmm1
subsd xmm4, xmm3
comisd xmm4, xmm0
jbe 0x4af25b
lea edi, [ecx - 1]
movapd xmm1, xmm0
jmp 0x4af270
movapd xmm4, xmm2
addsd xmm4, xmm3
comisd xmm0, xmm4
jbe 0x4af270
lea esi, [ecx - 1]
movapd xmm2, xmm0
cmp byte [esp + 0x36], 0
je 0x4af27e
movsd xmm0, qword [edx + 0x10]
jmp 0x4af283
movsd xmm0, qword [edx + 8]
movapd xmm4, xmm1
subsd xmm4, xmm3
comisd xmm4, xmm0
jbe 0x4af299
mov edi, ecx
movapd xmm1, xmm0
jmp 0x4af2ad
movapd xmm4, xmm2
addsd xmm4, xmm3
comisd xmm0, xmm4
jbe 0x4af2ad
mov esi, ecx
movapd xmm2, xmm0
cmp byte [esp + 0x36], 0
je 0x4af2bb
movsd xmm0, qword [edx + 0x20]
jmp 0x4af2c0
movsd xmm0, qword [edx + 0x18]
movapd xmm4, xmm1
subsd xmm4, xmm3
comisd xmm4, xmm0
jbe 0x4af2d7
lea edi, [ecx + 1]
movapd xmm1, xmm0
jmp 0x4af2ec
movapd xmm4, xmm2
addsd xmm4, xmm3
comisd xmm0, xmm4
jbe 0x4af2ec
lea esi, [ecx + 1]
movapd xmm2, xmm0
mov ebx, dword [esp + 0x7c]
add eax, 4
add ebx, 0xfffffffd
add ecx, 4
add edx, 0x40
cmp eax, ebx
jl 0x4af1f5
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
cmp eax, ecx
jge 0x4af366
mov ecx, eax
shl ecx, 4
add ecx, ebx
lea ebx, [ebx]
cmp byte [esp + 0x36], 0
je 0x4af32e
movsd xmm0, qword [ecx + 8]
jmp 0x4af332
movsd xmm0, qword [ecx]
movapd xmm4, xmm1
subsd xmm4, xmm3
comisd xmm4, xmm0
jbe 0x4af348
mov edi, eax
movapd xmm1, xmm0
jmp 0x4af35c
movapd xmm4, xmm2
addsd xmm4, xmm3
comisd xmm0, xmm4
jbe 0x4af35c
mov esi, eax
movapd xmm2, xmm0
inc eax
add ecx, 0x10
cmp eax, dword [esp + 0x7c]
jl 0x4af320
cmp edi, esi
je 0x4ae7b7
jle 0x4af376
mov eax, edi
mov edi, esi
mov esi, eax
shl edi, 4
add edi, ebx
push edi
lea ecx, [esp + 0x188]
call fcn.0049c6a0
shl esi, 4
add esi, ebx
push esi
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x204], 3
call fcn.0049c6a0
push 0x88
mov byte [esp + 0x204], 4
call sub.MSVCR100.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x6c], eax
mov byte [esp + 0x200], 5
test eax, eax
je 0x4af467
lea ecx, [esp + 0x1a4]
push ecx
lea edx, [esp + 0x188]
push edx
mov ecx, eax
call fcn.004af970
mov edi, eax
jmp 0x4af469
xorps xmm0, xmm0
movsd qword [esp + 0x154], xmm0
movsd qword [esp + 0x14c], xmm0
movsd xmm0, qword [ebx]
subsd xmm0, qword [ebx + 0x10]
movsd qword [esp + 0x14c], xmm0
movsd xmm0, qword [ebx + 8]
subsd xmm0, qword [ebx + 0x18]
lea ecx, [esp + 0x14c]
mov esi, 1
movsd qword [esp + 0x154], xmm0
call fcn.00472ec0
fld qword [0x57e398]
fcompi st(1)
fstp st(0)
jbe 0x4af376
lea ecx, [esp + 0x84]
call fcn.004b1260
lea ecx, [esp + 0x44]
call fcn.004b1260
lea ecx, [esp + 0x54]
call fcn.004b1260
jmp 0x4adfe8
xor edi, edi
mov eax, vtable.CGeom2d_Abs.0
mov dword [esp + 0x1a4], eax
mov dword [esp + 0x184], eax
mov esi, dword [sym.imp.MSVCR100.dll_free]
push ebx
call esi
mov eax, dword [esp + 0x48]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x4af498
push eax
call esi
add esp, 4
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x44], ebx
cmp eax, ebx
je 0x4af4ae
push eax
call esi
add esp, 4
mov eax, edi
mov ecx, dword [esp + 0x1f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14