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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x210
lea eax, [esp + 8]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.004e6330
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x6675c2
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
movq xmm0, qword [esp + 0x14]
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x148], eax
movq qword [esp + 0x150], xmm0
mov dword [esp + 0x158], edx
lea edi, [esp + 8]
lea ebx, [esp + 0x148]
mov ecx, edi
mov edx, ebx
call fcn.00660a50
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x6675ea
mov esi, dword [esp + 0xc]
push 9
push dword [esp + 0x14]
push edi
call fcn.004e6920
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x66761b
push ebx
call fcn.004e64c0
add esp, 4
xor ecx, ecx
cmp eax, esi
mov eax, 0xff
setne cl
cmovbe eax, ecx
test al, al
je 0x66754a
movzx eax, al
cmp eax, 0xff
jne 0x66764e
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0
lea edi, [esp + 8]
lea edx, [esp + 0x64]
mov ecx, edi
call fcn.00661d50
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667788
mov esi, dword [esp + 0xc]
push 1
push dword [esp + 0x14]
push edi
call fcn.004e6920
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x6676fd
cmp esi, 2
mov word [esp + 0x170], 0
jbe 0x66772d
mov ecx, 7
mov eax, 0x1010100
xor esi, esi
mov dword [esp + 0x50], 0
jmp 0x6677b0
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov eax, ebx
shr eax, 8
jmp 0x66780d
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov dword [esp + 0xd0], edx
mov dword [esp + 0x120], ecx
jmp 0x6677fa
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov dword [esp + 0xd0], eax
mov eax, ebx
mov dword [esp + 0x120], esi
jmp 0x6677fc
push esi
push dword [esp + 0x158]
push edi
call fcn.004e5500
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x6676b7
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x154]
mov dword [esp + 4], eax
push ebx
call fcn.004e64c0
add esp, 4
push eax
push esi
push edi
call fcn.004e5500
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x6676b7
mov edx, dword [esp + 0x154]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x50], 1
mov eax, 3
xor ecx, ecx
mov dword [esp + 0xd0], edx
jmp 0x6676e8
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 4], edi
mov edi, dword [esp + 0x18]
mov ecx, eax
and ecx, 0xffffff00
movzx ebx, al
mov dword [esp + 0x120], edi
mov edi, dword [esp + 4]
or ebx, ecx
jmp 0x6677fa
movzx esi, byte [esp + 0xf]
mov dword [esp + 0x50], eax
movzx eax, word [esp + 0xd]
mov ecx, dword [esp + 0x10]
movzx edx, byte [esp + 0xc]
movq xmm0, qword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
shl esi, 0x10
or esi, eax
mov eax, ecx
jmp 0x6677ab
lea eax, [esp + 0x170]
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
push esi
push eax
call fcn.00662720
add esp, 8
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667788
mov edi, dword [esp + 0x10]
mov ecx, 0x107
mov eax, 0x100
test edi, edi
je 0x667848
mov ebx, dword [esp + 0xc]
cmp edi, 1
mov dword [esp + 0x50], edi
jne 0x667853
movzx edx, byte [ebx]
test dl, dl
jne 0x66785a
xor edx, edx
jmp 0x6678a8
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movq xmm0, qword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov esi, edx
mov eax, ecx
shr esi, 8
and eax, 0xffffff00
and eax, 0xffffff00
movzx ebx, cl
or ebx, eax
mov edi, ebx
mov ecx, ebx
and edi, 0xffffff00
and ecx, 0xffff0000
and edi, 0xff00
movzx ebx, bl
shl esi, 8
movzx edx, dl
or ebx, edi
or edx, esi
movd edi, xmm0
pshufd xmm0, xmm0, 0x55
mov eax, esi
or ebx, ecx
mov dword [esp + 0xd0], edx
movd dword [esp + 0x120], xmm0
mov eax, ebx
shr eax, 8
mov esi, dword [esp + 0x120]
mov edx, dword [esp + 0xd0]
movzx ecx, bl
shl eax, 8
mov ebx, dword [esp + 0x50]
or ecx, eax
mov eax, dword [ebp + 8]
mov dword [eax + 4], 4
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], esi
movups xmmword [eax + 0x1c], xmm1
movups xmmword [eax + 0x2c], xmm2
mov dword [eax], 0x80000001
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x50], edi
mov esi, edi
jmp 0x6677b0
movzx edx, byte [ebx]
test dl, dl
je 0x66788f
test dl, dl
js 0x667885
mov ecx, dword [esp + 0x50]
cmp ecx, 2
jb 0x6678a8
mov edx, 1
mov dword [esp + 0x50], 0
sub edx, ecx
mov ecx, 0x106
mov esi, edx
shr esi, 8
jmp 0x6677b0
mov ecx, 0x117
jmp 0x6675b3
movzx edx, byte [ebx + 1]
test dl, dl
jns 0x6675b3
dec dword [esp + 0x50]
mov ecx, dword [esp + 0x50]
cmp ecx, 2
jae 0x667867
mov byte [esp + 0xe4], dl
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0xc]
push eax
call fcn.004eac30
add esp, 8
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667ba2
cmp dword [esp + 0xc], esi
jne 0x6675a9
movzx edx, byte [esp + 0xe4]
cmp dl, 2
jae 0x667bcf
mov ebx, edx
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667be3
mov esi, dword [esp + 0xc]
movq xmm0, qword [esp + 0x10]
movdqa xmmword [esp + 0xd0], xmm0
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
mov dword [esp + 0x50], eax
jne 0x667be7
movsd xmm0, qword [esp + 0xc]
mov edi, dword [esp + 0x14]
movaps xmmword [esp + 0x50], xmm0
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667c09
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
movaps xmmword [esp + 0x120], xmm0
mov dword [esp + 0x110], eax
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667c09
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
movaps xmmword [esp + 0x1b0], xmm0
mov dword [esp + 0x16c], eax
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667c09
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
movaps xmmword [esp + 0x1f0], xmm0
mov dword [esp + 0x168], eax
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667c09
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
movaps xmmword [esp + 0x1e0], xmm0
mov dword [esp + 0x164], eax
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667c09
mov eax, dword [esp + 0x14]
movsd xmm0, qword [esp + 0xc]
movaps xmmword [esp + 0x1d0], xmm0
mov dword [esp + 0x160], eax
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.0065eef0
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667c09
movq xmm0, qword [esp + 0xc]
mov eax, dword [esp + 0x14]
movdqa xmmword [esp + 0x1c0], xmm0
mov dword [esp + 0x15c], eax
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.004e54f0
add esp, 8
test eax, eax
mov dword [esp], 0x80000000
je 0x667c43
push dword [esp + 0x64]
call fcn.004e6380
add esp, 4
test al, 1
je 0x667c43
movzx eax, dl
push eax
lea eax, [esp + 0xc]
push eax
call fcn.004e6b30
add esp, 8
mov eax, dword [esp + 8]
cmp eax, 2
jne 0x667da4
cmp byte [esp + 0xc], 9
jne 0x667c43
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
call fcn.00661d50
mov eax, dword [esp + 8]
cmp eax, 2
mov dword [esp + 4], eax
jne 0x667e66
mov eax, dword [esp + 0xc]
mov dword [esp], eax
push 9
push dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
call fcn.004e6920
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
mov dword [esp + 4], eax
jne 0x668202
lea ecx, [esp + 8]
lea edx, [esp + 0x64]
push dword [esp]
call fcn.0065ff50
add esp, 4
mov eax, dword [esp + 8]
cmp eax, 2
mov dword [esp + 4], eax
jne 0x667e66
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 4
mov dword [esp + 0xb8], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0xbc], 4
mov dword [esp + 0x114], edx
mov dword [esp + 0x118], eax
mov dword [esp + 4], eax
mov dword [esp + 0x11c], ecx
jmp 0x667f82
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
movq xmm0, qword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov eax, ecx
mov esi, edx
and eax, 0xffffff00
shr esi, 8
jmp 0x6677b0
mov ebx, 0x1010117
xor esi, esi
mov dword [esp + 0x50], 0
jmp 0x6677ba
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
movq xmm0, qword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov esi, edx
shr esi, 8
jmp 0x6677ba
mov ebx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0xc]
movq xmm0, qword [esp + 0x14]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov esi, eax
mov edi, ebx
mov ecx, ebx
shr esi, 8
and edi, 0xffffff00
and ecx, 0xffff0000
mov dword [esp + 0x50], edx
mov edx, eax
jmp 0x6677ca
test bl, bl
setne al
cmp dword [esp], 0x80000000
setne cl
xor cl, al
je 0x667ca4
mov eax, dword [esp + 0x64]
mov edi, 0x100
mov byte [eax + 0x10], 1
mov eax, dword [eax + 0xc]
mov ebx, eax
shr eax, 8
test dword [esp], 0x7fffffff
mov esi, eax
je 0x667c8e
mov eax, dword [esp]
shl eax, 2
lea eax, [eax + eax*8]
push 4
push eax
push dword [esp + 0x78]
call fcn.004ed020
add esp, 0xc
mov edx, ebx
mov ebx, 0x17
mov dword [esp + 0x50], 1
xor ecx, ecx
jmp 0x6677ca
movdqa xmm2, xmmword [esp + 0x120]
movaps xmm3, xmmword [esp + 0x50]
movd xmm0, edi
cmp dword [esp], 0x80000001
movdqa xmm1, xmm2
punpcklqdq xmm1, xmm0
shufps xmm3, xmm1, 0x24
movss xmm1, dword [esp + 0x110]
movaps xmmword [esp + 0xa0], xmm3
shufps xmm1, xmm2, 0xd4
shufps xmm1, xmmword [esp + 0x1b0], 0x42
movaps xmmword [esp + 0x90], xmm1
jne 0x667d32
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x70]
movdqa xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm2, xmmword [esp + 0x90]
mov edi, esi
mov ecx, esi
mov ebx, esi
and edi, 0xffffff00
and ecx, 0xffff0000
mov esi, edx
mov dword [esp + 0x50], eax
shr esi, 8
jmp 0x6677ca
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
push eax
push ebx
call fcn.004e54f0
add esp, 8
test eax, eax
je 0x667e23
push dword [esp + 4]
push ebx
call fcn.004e54f0
add esp, 8
mov dword [esp + 0x120], eax
test dword [esp], 0x7fffffff
je 0x667d85
mov eax, dword [esp]
shl eax, 2
lea eax, [eax + eax*8]
push 4
push eax
push dword [esp + 0x78]
call fcn.004ed020
add esp, 0xc
mov edi, dword [esp + 4]
xor eax, eax
mov ebx, 0x15
mov dword [esp + 0x50], 1
mov dword [esp + 0xd0], edi
jmp 0x6681ed
movsd xmm1, qword [esp + 0x17]
movsd xmm2, qword [esp + 0x1f]
movsd xmm0, qword [esp + 0xf]
movzx ecx, word [esp + 0xc]
movzx edx, byte [esp + 0xe]
movsd qword [esp + 0x17f], xmm1
movsd xmm1, qword [esp + 0x27]
movsd qword [esp + 0x187], xmm2
movsd xmm2, qword [esp + 0x2f]
movsd qword [esp + 0x177], xmm0
movsd qword [esp + 0x18f], xmm1
movq xmm1, qword [esp + 0x34]
movsd qword [esp + 0x197], xmm2
movq qword [esp + 0x19c], xmm1
mov dword [esp + 0x170], eax
mov byte [esp + 0x176], dl
mov word [esp + 0x174], cx
jmp 0x6682f5
mov eax, dword [esp + 0x158]
movq xmm0, qword [esp + 0x148]
movsd xmm1, qword [esp + 0x150]
test al, al
mov dword [esp + 0x18], eax
movsd qword [esp + 0x10], xmm1
movq qword [esp + 8], xmm0
je 0x668187
mov eax, dword [esp + 0x14]
mov bl, 1
mov dword [esp + 0xd0], eax
jmp 0x6681c4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x1c]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
movaps xmmword [esp + 0x70], xmm0
movq xmm0, qword [esp + 0x30]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x38]
mov edx, eax
movq qword [esp + 0xf0], xmm0
shr edx, 8
mov dword [esp + 0x48], edx
jmp 0x668247
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x10c]
movd xmm0, dword [esp + 0xcc]
movd xmm1, dword [esp + 0xc8]
lea eax, [eax + eax*8]
punpckldq xmm1, xmm0
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0xa0]
movdqa xmmword [esp + 0x70], xmm1
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x8c]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp]
mov dword [ecx + eax*4 + 0xc], edx
mov edx, dword [esp + 0xc8]
mov dword [ecx + eax*4 + 0x10], edx
mov edx, dword [esp + 0xcc]
mov dword [ecx + eax*4 + 0x14], edx
mov edx, dword [esp + 0xc0]
mov dword [ecx + eax*4 + 0x1c], edx
mov edx, dword [esp + 0xc4]
mov dword [ecx + eax*4 + 0x18], edx
mov edx, dword [esp + 0x108]
mov dword [ecx + eax*4 + 0x20], edx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x40], edx
inc eax
shr ecx, 8
mov dword [esp + 0x3c], eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x4c], eax
push ecx
push dword [esp + 8]
call fcn.004e54f0
add esp, 8
test eax, eax
je 0x668411
lea ecx, [esp + 8]
lea edx, [esp + 0x114]
call fcn.006614f0
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x10]
cmp eax, 2
mov dword [esp + 4], eax
mov dword [esp + 0xa0], ecx
jne 0x6684a2
push 9
push dword [esp + 0xa4]
lea eax, [esp + 0x10]
push eax
call fcn.004e6920
add esp, 0xc
mov eax, dword [esp + 8]
cmp eax, 2
mov dword [esp + 4], eax
jne 0x668505
lea edx, [esp + 0x114]
lea ecx, [esp + 8]
push dword [esp]
call fcn.0065fe40
add esp, 4
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov dword [esp], ecx
mov ecx, dword [esp + 0x14]
cmp eax, 2
mov dword [esp + 4], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0x90], ecx
jne 0x66857d
mov eax, dword [esp]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x144], eax
lea ecx, [esp + 8]
lea edx, [esp + 0x13c]
call fcn.0065f330
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x14]
cmp eax, 2
mov dword [esp + 4], eax
mov dword [esp + 0xa0], edx
mov dword [esp + 0x8c], ecx
jne 0x6685d5
lea ecx, [esp + 8]
lea edx, [esp + 0x13c]
call fcn.0065f330
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x14]
mov dword [esp], ecx
mov ecx, dword [esp + 0x10]
cmp eax, 2
mov dword [esp + 4], eax
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], ecx
jne 0x66862f
lea ecx, [esp + 8]
lea edx, [esp + 0x13c]
call fcn.0065f330
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc4], ecx
mov ecx, dword [esp + 0x14]
cmp eax, 2
mov dword [esp + 4], eax
mov dword [esp + 0xc0], edx
mov dword [esp + 0x108], ecx
jne 0x66868d
mov eax, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
mov dword [esp + 0x90], eax
push eax
mov dword [esp + 8], ecx
push ecx
call fcn.004e54f0
add esp, 8
test eax, eax
jne 0x668733
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0xb0]
jne 0x667eb0
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0xb0]
call fcn.00662250
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xbc], eax
mov dword [esp + 0x3c], ecx
jmp 0x667eb0
lea eax, [esp + 8]
push eax
call fcn.004e64c0
add esp, 4
test eax, eax
je 0x668355
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd0], eax
lea eax, [esp + 8]
push eax
call fcn.004e64c0
add esp, 4
mov dword [esp + 0x120], eax
mov edi, dword [esp + 0xd0]
mov bl, 0x15
test dword [esp], 0x7fffffff
je 0x6681e5
mov eax, dword [esp]
shl eax, 2
lea eax, [eax + eax*8]
push 4
push eax
push dword [esp + 0x78]
call fcn.004ed020
add esp, 0xc
mov dword [esp + 0x50], 1
movaps xmm1, xmmword [esp + 0xa0]
movaps xmm2, xmmword [esp + 0x90]
jmp 0x6677ff
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov dword [esp], eax
mov eax, dword [esp + 0x10]
movaps xmmword [esp + 0x70], xmm0
movq xmm0, qword [esp + 0x30]
mov dword [esp + 0x3c], edx
mov ecx, eax
movq qword [esp + 0xf0], xmm0
shr ecx, 8
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 4]
movzx eax, al
mov edx, dword [esp + 0x90]
movaps xmm0, xmmword [esp + 0x70]
mov dword [esp + 0x170], ecx
mov ecx, dword [esp]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x48]
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x180], ecx
mov ecx, dword [esp + 0x4c]
movlps qword [esp + 0x184], xmm0
movsd xmm0, qword [esp + 0xf0]
mov dword [esp + 0x18c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x190], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x194], edx
movsd qword [esp + 0x198], xmm0
mov dword [esp + 0x1a0], ecx
push dword [esp + 0x6c]
lea eax, [esp + 0x174]
push eax
lea eax, [esp + 0x10]
push eax
call fcn.004e4280
add esp, 0xc
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movq xmm0, qword [esp + 0x14]
cmp eax, 2
mov dword [esp], ecx
mov dword [esp + 0x70], edx
jne 0x668337
movd dword [esp + 0x3c], xmm0
jmp 0x667c43
mov ebx, dword [esp + 0x70]
mov edx, eax
mov eax, dword [esp]
movups xmm1, xmmword [esp + 0x1c]
movups xmm2, xmmword [esp + 0x2c]
mov esi, eax
mov edi, ebx
mov ecx, ebx
jmp 0x667c29
mov eax, dword [ebp + 8]
mov ecx, dword [esp]
movdqa xmm0, xmmword [esp + 0xd0]
movaps xmm1, xmmword [esp + 0x50]
movaps xmm2, xmmword [esp + 0x120]
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0xc], esi
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x110]
movq qword [eax + 0x10], xmm0
movlps qword [eax + 0x18], xmm1
mov dword [eax + 0x20], edi
movlps qword [eax + 0x24], xmm2
movaps xmm1, xmmword [esp + 0x1b0]
movaps xmm2, xmmword [esp + 0x1f0]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x16c]
movlps qword [eax + 0x30], xmm1
movaps xmm1, xmmword [esp + 0x1e0]
mov dword [eax + 0x38], ecx
mov ecx, dword [esp + 0x168]
movlps qword [eax + 0x3c], xmm2
movaps xmm2, xmmword [esp + 0x1d0]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x164]
movlps qword [eax + 0x48], xmm1
movaps xmm1, xmmword [esp + 0x1c0]
mov dword [eax + 0x50], ecx
mov ecx, dword [esp + 0x160]
movlps qword [eax + 0x54], xmm2
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x15c]
movlps qword [eax + 0x60], xmm1
mov dword [eax + 0x68], ecx
jmp 0x667840
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x118]
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x90], eax
push eax
mov dword [esp + 8], ecx
push ecx
call fcn.004e54f0
add esp, 8
test eax, eax
je 0x6687d5
push dword [esp + 0x90]
push dword [esp + 8]
call fcn.004e54f0
add esp, 8
mov dword [esp + 0x3c], eax
cmp dword [esp], 0
je 0x668486
mov eax, dword [esp]
shl eax, 2
lea eax, [eax + eax*8]
push 4
push eax
push dword [esp + 0x78]
call fcn.004ed020
add esp, 0xc
mov edx, dword [esp + 0x90]
mov eax, 0x15
mov dword [esp + 4], 1
mov dword [esp], edx
jmp 0x668266
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x38]
movaps xmmword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0x90], eax
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x2c]
movsd qword [esp + 0xfc], xmm0
shr edx, 8
mov dword [esp + 0x40], ecx
mov dword [esp + 0x48], edx
jmp 0x668765
movzx edx, byte [esp + 0x13]
movzx ecx, word [esp + 0x11]
movsd xmm0, qword [esp + 0x1c]
movzx eax, byte [esp + 0x10]
shl edx, 0x10
movaps xmmword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0xa0], eax
or ecx, edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
movsd qword [esp + 0xfc], xmm0
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x4c], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x104], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xc]
jmp 0x668762
mov ecx, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x1c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x2c]
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x44], edx
movsd xmm0, qword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xa0]
movsd qword [esp + 0xfc], xmm0
mov dword [esp + 0x104], edx
shr ecx, 8
mov dword [esp + 0x48], ecx
jmp 0x668765
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xa0]
movaps xmmword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov dword [esp + 0xec], ecx
mov ecx, dword [esp + 0x10c]
shr edx, 8
movsd qword [esp + 0xe4], xmm0
mov dword [esp + 0x48], edx
mov dword [esp], ecx
jmp 0x6686fb
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc8]
movsd xmm0, qword [esp + 0x1c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28]
movaps xmmword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x30]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
movsd qword [esp + 0xe4], xmm0
mov dword [esp + 0xec], eax
mov eax, ecx
shr eax, 8
mov dword [esp + 0x48], eax
mov eax, ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x8c], ecx
jmp 0x6686f3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0xc0]
movsd xmm0, qword [esp + 0x1c]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x38]
movaps xmmword [esp + 0x70], xmm0
movsd xmm0, qword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 0xec], eax
mov eax, ecx
movsd qword [esp + 0xe4], xmm0
shr eax, 8
mov dword [esp + 0x48], eax
mov eax, ecx
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xa0], eax
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0xec]
movsd xmm0, qword [esp + 0xe4]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x104], edx
movsd qword [esp + 0xfc], xmm0
mov dword [esp + 0x90], ecx
jmp 0x668765
push dword [esp + 0x90]
push dword [esp + 8]
call fcn.004e54f0
add esp, 8
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x90]
mov al, 0x15
mov dword [esp + 4], 1
mov dword [esp + 0xa0], eax
mov dword [esp], ecx
mov eax, dword [esp + 0x104]
movsd xmm0, qword [esp + 0xfc]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0xb0]
movsd qword [esp + 0x1a4], xmm0
test eax, eax
je 0x6687a8
shl eax, 2
lea eax, [eax + eax*8]
push 4
push eax
push dword [esp + 0xc4]
call fcn.004ed020
add esp, 0xc
movsd xmm0, qword [esp + 0x1a4]
mov ecx, dword [esp + 0x1ac]
movzx eax, byte [esp + 0xa0]
movsd qword [esp + 0xf0], xmm0
mov dword [esp + 0xf8], ecx
jmp 0x668266
mov eax, dword [esp]
mov dword [esp + 0x174], eax
jmp 0x667c43