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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a0752
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x23c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xc0], 0
mov dword [ebp - 0xbc], 0
mov ecx, dword [ebp + 0x1c]
mov dword [ebp - 4], 0
mov eax, dword [ecx]
mov esi, dword [eax]
cmp esi, eax
je 0x100682f6
movsd xmm1, qword [0x100f11e0]
movsd qword [ebp - 0x44], xmm1
test byte [esi + 0x3c], 8
je 0x1006829c
mov edx, dword [esi + 0x4c]
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x14], eax
test edx, edx
je 0x10067bed
lea eax, [edx + 4]
mov ecx, 1
lock xadd dword [eax], ecx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xb0], edx
mov dword [ebp - 0xb4], eax
xorps xmm0, xmm0
movdqu xmmword [ebp - 0x1fc], xmm0
movdqu xmmword [ebp - 0x1ec], xmm0
movdqu xmmword [ebp - 0x1dc], xmm0
movss xmm0, dword [eax]
cvtps2pd xmm0, xmm0
cmp dword [esi + 0x28], 0
mov edx, dword [esi + 0x44]
mov dword [ebp - 0x1cc], 0
mov dword [ebp - 0x3c], edx
movss xmm2, dword [eax + 4]
setne byte [ebp - 0x1c8]
movsd qword [ebp - 0x244], xmm0
movss xmm3, dword [eax + 8]
movss xmm4, dword [eax + 0xc]
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x204], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x200], eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x1c4], eax
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x1c], eax
divsd xmm0, xmm1
cvtps2pd xmm2, xmm2
movsd qword [ebp - 0x170], xmm0
movsd qword [ebp - 0x224], xmm0
movaps xmm0, xmm2
movsd qword [ebp - 0x23c], xmm2
divsd xmm0, xmm1
cvtps2pd xmm3, xmm3
movsd qword [ebp - 0x178], xmm0
movsd qword [ebp - 0x21c], xmm0
movaps xmm0, xmm3
movsd qword [ebp - 0x234], xmm3
divsd xmm0, xmm1
cvtps2pd xmm4, xmm4
movsd qword [ebp - 0x84], xmm0
movsd qword [ebp - 0x214], xmm0
movaps xmm0, xmm4
movsd qword [ebp - 0x22c], xmm4
divsd xmm0, xmm1
movsd qword [ebp - 0x60], xmm0
movsd qword [ebp - 0x20c], xmm0
test edx, edx
je 0x10067d01
lea eax, [edx + 4]
mov ecx, 1
lock xadd dword [eax], ecx
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0xd8], edx
mov dword [ebp - 0xdc], eax
xor ecx, ecx
mov dword [ebp - 0x104], 7
mov dword [ebp - 0x108], 0
mov word [ebp - 0x118], cx
movss xmm0, dword [eax]
call fcn.10079430
mov dword [ebp - 0x150], eax
mov eax, dword [ebp - 0x1c]
movss xmm0, dword [eax + 4]
call fcn.10079430
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x1c]
movss xmm0, dword [eax + 8]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x138], xmm0
movss xmm0, dword [eax + 0xc]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x130], xmm0
mov edx, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x1c], ecx
test edx, edx
je 0x10067d8e
lea eax, [edx + 4]
mov ecx, 1
lock xadd dword [eax], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xec], edx
mov dword [ebp - 0xf0], ecx
mov eax, dword [ecx + 0x18]
mov dword [ebp - 0x148], eax
mov eax, dword [ecx + 0x1c]
mov dword [ebp - 0x144], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x13c], eax
mov eax, dword [ecx + 0x10]
mov byte [ebp - 4], 5
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
movsd qword [ebp - 0x128], xmm0
mov eax, dword [ecx + 0x14]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
movsd qword [ebp - 0x120], xmm0
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x140], eax
xor eax, eax
mov edx, dword [esi + 0x10]
mov dword [ebp - 0x154], 7
mov dword [ebp - 0x158], 0
mov word [ebp - 0x168], ax
cmp word [edx], ax
jne 0x10067e29
xor ecx, ecx
jmp 0x10067e41
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x14], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10067e31
sub ecx, dword [ebp - 0x14]
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x168]
call fcn.100034e0
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x168]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x118]
call fcn.10003050
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x1a8], eax
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp - 0x144]
mov dword [ebp - 0x1a0], ecx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
lea eax, [esi + 0x18]
push eax
divsd xmm0, qword [ebp - 0x84]
movsd qword [ebp - 0x19c], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
shr ecx, 0x1f
addsd xmm0, qword [ecx*8 + 0x100f1e60]
lea ecx, [ebp - 0x70]
divsd xmm0, qword [ebp - 0x60]
movsd qword [ebp - 0x194], xmm0
call fcn.10048cb0
push 0x140
mov byte [ebp - 4], 7
call fcn.10077b68
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x100680f3
sub esp, 0xc
lea eax, [ebp - 0x70]
mov ecx, esp
mov dword [ebp - 0x20], esp
push eax
call fcn.10048cb0
mov eax, dword [esi + 0x10]
mov byte [ebp - 4], 9
push ecx
mov dword [ebp - 0x74], esp
mov edi, esp
test eax, eax
je 0x10067f3c
push eax
call dword [sym.imp.OLEAUT32.dll_SysAllocStringByteLen]
push eax
push dword [esi + 0x10]
call dword [sym.imp.OLEAUT32.dll_DllRegisterServer]
mov dword [edi], eax
cmp dword [esi + 0x10], 0
je 0x10067f4c
test eax, eax
je 0x100682ec
mov eax, dword [esi + 0x48]
mov ecx, dword [ebp - 0x1c]
movdqu xmm0, xmmword [ebp - 0x1ac]
mov byte [ebp - 4], 0xa
push dword [ecx + 0x28]
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [ecx + 4]
push dword [ecx]
sub esp, 0x20
mov eax, esp
sub esp, 0x88
mov edi, esp
mov dword [ebp - 0x78], esp
mov dword [ebp - 0x7c], edi
movdqu xmmword [eax], xmm0
lea ecx, [edi + 0x48]
movdqu xmm0, xmmword [ebp - 0x19c]
movdqu xmmword [eax + 0x10], xmm0
mov eax, dword [ebp - 0x34]
movups xmm0, xmmword [ebp - 0x244]
mov dword [edi + 0x40], eax
mov eax, dword [ebp - 0x18]
movups xmmword [edi], xmm0
mov dword [edi + 0x44], eax
lea eax, [ebp - 0x1fc]
movups xmm0, xmmword [ebp - 0x234]
push eax
movups xmmword [edi + 0x10], xmm0
movsd xmm0, qword [ebp - 0x170]
movsd qword [edi + 0x20], xmm0
movsd xmm0, qword [ebp - 0x178]
movsd qword [edi + 0x28], xmm0
movsd xmm0, qword [ebp - 0x84]
movsd qword [edi + 0x30], xmm0
movsd xmm0, qword [ebp - 0x60]
movsd qword [edi + 0x38], xmm0
call fcn.10002cd0
lea eax, [ebp - 0x1f0]
mov byte [ebp - 4], 0xb
push eax
lea ecx, [edi + 0x54]
call fcn.10002cd0
lea eax, [ebp - 0x1e4]
mov byte [ebp - 4], 0xc
push eax
lea ecx, [edi + 0x60]
call fcn.10002cd0
lea eax, [ebp - 0x1d8]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [edi + 0x6c]
call fcn.10002cd0
mov al, byte [ebp - 0x1c8]
mov byte [edi + 0x7c], al
mov eax, dword [ebp - 0x24]
mov dword [edi + 0x78], 0
mov dword [edi + 0x80], eax
mov eax, dword [ebp - 0x150]
sub esp, 0x50
mov ecx, esp
mov byte [ebp - 4], 0xe
mov dword [ecx], eax
mov eax, dword [ebp - 0x14c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x148]
mov dword [ecx + 8], eax
mov eax, dword [ebp - 0x144]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp - 0x140]
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x13c]
mov dword [ecx + 0x14], eax
movsd xmm0, qword [ebp - 0x138]
movsd qword [ecx + 0x18], xmm0
movsd xmm0, qword [ebp - 0x130]
movsd qword [ecx + 0x20], xmm0
xor eax, eax
movsd xmm0, qword [ebp - 0x128]
movsd qword [ecx + 0x28], xmm0
movsd xmm0, qword [ebp - 0x120]
movsd qword [ecx + 0x30], xmm0
add ecx, 0x38
push 0xffffffffffffffff
push eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
mov word [ecx], ax
lea eax, [ebp - 0x118]
push eax
call fcn.10003050
mov ecx, dword [ebp - 0x1c]
movzx eax, byte [ecx + 0x24]
mov ecx, dword [ebp - 0x14]
push eax
mov byte [ebp - 4], 8
call fcn.10066e50
mov edi, dword [ebp - 0x2c]
jmp 0x100680f5
xor eax, eax
mov ecx, dword [edi + 4]
lea edx, [ebp - 0xd4]
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 7
mov dword [ebp - 0xd4], eax
cmp edx, ecx
jae 0x1006814b
mov edx, dword [edi]
lea ecx, [ebp - 0xd4]
cmp edx, ecx
mov ecx, dword [edi + 4]
ja 0x1006814b
lea eax, [ebp - 0xd4]
sub eax, edx
sar eax, 2
mov dword [ebp - 0x14], eax
cmp ecx, dword [edi + 8]
jne 0x1006813d
push 1
mov ecx, edi
call fcn.1006a040
mov eax, dword [ebp - 0x14]
mov ecx, dword [edi + 4]
mov edx, dword [edi]
test ecx, ecx
je 0x10068165
mov eax, dword [edx + eax*4]
jmp 0x10068163
cmp ecx, dword [edi + 8]
jne 0x1006815c
push 1
mov ecx, edi
call fcn.1006a040
mov eax, dword [ebp - 0x18]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x10068165
mov dword [ecx], eax
add dword [edi + 4], 4
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x1006818e
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
cmp dword [ebp - 0x154], 8
jb 0x100681a5
push dword [ebp - 0x168]
call fcn.10077622
add esp, 4
mov edx, dword [ebp - 0x38]
xor eax, eax
mov dword [ebp - 0x154], 7
mov dword [ebp - 0x158], 0
mov word [ebp - 0x168], ax
mov byte [ebp - 4], 4
test edx, edx
je 0x100681f3
lea eax, [edx + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x100681f3
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x38]
or edx, 0xffffffff
lea eax, [ecx + 8]
lock xadd dword [eax], edx
jne 0x100681f3
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x104], 8
jb 0x1006820a
push dword [ebp - 0x118]
call fcn.10077622
add esp, 4
mov edx, dword [ebp - 0x3c]
xor eax, eax
mov dword [ebp - 0x104], 7
mov dword [ebp - 0x108], 0
mov word [ebp - 0x118], ax
mov byte [ebp - 4], 2
test edx, edx
je 0x10068258
lea eax, [edx + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x10068258
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x3c]
or edx, 0xffffffff
lea eax, [ecx + 8]
lock xadd dword [eax], edx
jne 0x10068258
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x244]
call fcn.10002760
mov edx, dword [ebp - 0x4c]
mov byte [ebp - 4], 0
test edx, edx
je 0x10068294
lea eax, [edx + 4]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x10068294
mov eax, dword [edx]
mov ecx, edx
call dword [eax]
mov ecx, dword [ebp - 0x4c]
or edx, 0xffffffff
lea eax, [ecx + 8]
lock xadd dword [eax], edx
jne 0x10068294
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp + 0x1c]
movsd xmm1, qword [ebp - 0x44]
cmp byte [esi + 0xd], 0
jne 0x100682e2
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
jne 0x100682c1
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
jne 0x100682e2
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0xd], 0
je 0x100682b5
jmp 0x100682e2
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x100682e0
lea ebx, [ebx]
cmp esi, dword [eax + 8]
jne 0x100682e0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x100682d0
mov esi, eax
cmp esi, dword [ecx]
jne 0x10067bc4
jmp 0x10068303
push 0x8007000e
call fcn.100496a0
movsd xmm0, qword [0x100f11e0]
movsd qword [ebp - 0x44], xmm0
mov eax, dword [edi]
cmp eax, dword [edi + 4]
je 0x10069db4
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xa4], edi
mov dword [ebp - 0xa0], ecx
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x10
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov esi, edx
mov dword [ebp - 0x14], ecx
cmp edx, ecx
je 0x1006835e
add edx, 4
cmp edx, ecx
je 0x1006835e
mov eax, dword [esi]
mov ecx, dword [eax + 0xc0]
mov eax, dword [edx]
cmp ecx, dword [eax + 0xc0]
cmovl esi, edx
add edx, 4
cmp edx, dword [ebp - 0x14]
jne 0x10068343
mov eax, dword [esi]
mov ecx, dword [eax + 0xc0]
inc ecx
xor eax, eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x1c], eax
cmp eax, ecx
jge 0x100685e2
xor edi, edi
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0x11
mov esi, dword [eax]
jmp 0x100683a0
cmp esi, dword [eax + 4]
je 0x100684f0
mov eax, dword [esi]
mov edi, dword [ebp - 0x1c]
cmp dword [eax + 0xc0], edi
mov edi, dword [ebp - 0x90]
jne 0x100684e5
cmp esi, edx
jae 0x1006846c
cmp edi, esi
ja 0x1006846c
mov eax, esi
sub eax, edi
sar eax, 2
mov dword [ebp - 0x18], eax
cmp edx, ecx
jne 0x1006844b
mov eax, ecx
sub eax, edx
sar eax, 2
cmp eax, 1
jae 0x10068448
sub edx, edi
mov eax, 0x3fffffff
sar edx, 2
sub eax, edx
cmp eax, 1
jae 0x10068405
push str.vector_T__too_long
call fcn.100757fc
inc edx
sub ecx, edi
sar ecx, 2
mov eax, 0x3fffffff
mov dword [ebp - 0x14], edx
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x10068421
xor ecx, ecx
jmp 0x10068423
add ecx, edx
cmp ecx, dword [ebp - 0x14]
cmovb ecx, dword [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x90]
call fcn.10069ed0
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x18]
test edx, edx
je 0x100684dc
mov eax, dword [edi + eax*4]
mov dword [edx], eax
add edx, 4
mov eax, dword [ebp - 0x2c]
add esi, 4
mov dword [ebp - 0x8c], edx
jmp 0x100683a0
cmp edx, ecx
jne 0x100684d4
mov eax, ecx
sub eax, edx
sar eax, 2
cmp eax, 1
jae 0x100684d4
sub edx, edi
mov eax, 0x3fffffff
sar edx, 2
sub eax, edx
cmp eax, 1
jae 0x10068497
push str.vector_T__too_long
call fcn.100757fc
inc edx
sub ecx, edi
sar ecx, 2
mov eax, 0x3fffffff
mov dword [ebp - 0x14], edx
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x100684b3
xor ecx, ecx
jmp 0x100684b5
add ecx, edx
cmp ecx, dword [ebp - 0x14]
cmovb ecx, dword [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x90]
call fcn.10069ed0
mov ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x8c]
test edx, edx
je 0x100684dc
mov eax, dword [esi]
mov dword [edx], eax
add edx, 4
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x2c]
add esi, 4
jmp 0x100683a0
mov edi, dword [ebp - 0xa4]
lea eax, [ebp - 0x90]
cmp eax, edi
jae 0x10068558
mov ecx, eax
mov eax, dword [ebp - 0x28]
cmp eax, ecx
ja 0x10068558
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov esi, edx
shr esi, 0x1f
add esi, edx
cmp edi, dword [ebp - 0xa0]
jne 0x1006853f
push 1
lea ecx, [ebp - 0xa8]
call fcn.1006a0c0
mov eax, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xa4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
lea eax, [esi + esi*2]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x74], edi
lea eax, [ecx + eax*4]
mov byte [ebp - 4], 0x12
test edi, edi
je 0x10068598
jmp 0x10068590
cmp edi, dword [ebp - 0xa0]
jne 0x1006857c
push 1
lea ecx, [ebp - 0xa8]
call fcn.1006a0c0
mov eax, dword [ebp - 0xa8]
mov edi, dword [ebp - 0xa4]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x74], edi
mov byte [ebp - 4], 0x13
test edi, edi
je 0x10068598
lea eax, [ebp - 0x90]
push eax
mov ecx, edi
call fcn.10066cf0
mov eax, dword [ebp - 0x90]
add edi, 0xc
mov dword [ebp - 0xa4], edi
mov byte [ebp - 4], 0x10
test eax, eax
je 0x100685d6
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x34]
inc eax
jmp 0x1006836c
movsd xmm0, qword [0x100f10f0]
mov ecx, dword [ebp - 0x28]
movsd qword [ebp - 0x84], xmm0
cmp ecx, edi
je 0x10069035
mov eax, dword [ecx + 4]
mov edx, dword [ecx]
sub eax, edx
sar eax, 2
cmp eax, 1
jbe 0x1006902a
mov edi, dword [ecx + 4]
mov esi, edx
cmp edx, edi
je 0x1006863a
add edx, 4
cmp edx, edi
je 0x1006863a
mov eax, dword [esi]
mov ecx, dword [eax + 0xc4]
mov eax, dword [edx]
cmp ecx, dword [eax + 0xc4]
cmovl esi, edx
add edx, 4
cmp edx, edi
jne 0x10068620
mov eax, dword [esi]
mov ecx, dword [eax + 0xc4]
inc ecx
xor eax, eax
mov dword [ebp - 0xac], ecx
mov dword [ebp - 0x48], eax
cmp eax, ecx
jge 0x10069021
xor edx, edx
xor edi, edi
xor ecx, ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], edi
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x28]
mov byte [ebp - 4], 0x14
mov esi, dword [eax]
mov edi, edi
cmp esi, dword [eax + 4]
je 0x100687ac
mov eax, dword [esi]
cmp dword [eax + 0x18], 5
jb 0x10068687
cmp dword [eax + 0x1c], 5
jae 0x1006868e
mov byte [eax + 0xfc], 0
mov eax, dword [esi]
mov edx, dword [ebp - 0x48]
cmp dword [eax + 0xc4], edx
mov edx, dword [ebp - 0x64]
jne 0x100687a1
cmp esi, edi
jae 0x10068736
cmp edx, esi
ja 0x10068736
mov eax, esi
sub eax, edx
sar eax, 2
mov dword [ebp - 0x18], eax
cmp edi, ecx
jne 0x1006871c
mov eax, ecx
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x10068719
sub edi, edx
mov eax, 0x3fffffff
sar edi, 2
sub eax, edi
cmp eax, 1
jae 0x100686e7
push str.vector_T__too_long
call fcn.100757fc
sub ecx, edx
mov eax, 0x3fffffff
sar ecx, 2
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x10068700
xor ecx, ecx
jmp 0x10068702
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x64]
call fcn.10069ed0
mov ecx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x18]
test edi, edi
je 0x1006879b
mov eax, dword [edx + eax*4]
mov dword [edi], eax
add edi, 4
mov eax, dword [ebp - 0x28]
add esi, 4
mov dword [ebp - 0x60], edi
jmp 0x10068670
cmp edi, ecx
jne 0x10068793
mov eax, ecx
sub eax, edi
sar eax, 2
cmp eax, 1
jae 0x10068793
sub edi, edx
mov eax, 0x3fffffff
sar edi, 2
sub eax, edi
cmp eax, 1
jae 0x10068761
push str.vector_T__too_long
call fcn.100757fc
sub ecx, edx
mov eax, 0x3fffffff
sar ecx, 2
inc edi
mov edx, ecx
shr edx, 1
sub eax, edx
cmp eax, ecx
jae 0x1006877a
xor ecx, ecx
jmp 0x1006877c
add ecx, edx
cmp ecx, edi
cmovb ecx, edi
push ecx
lea ecx, [ebp - 0x64]
call fcn.10069ed0
mov ecx, dword [ebp - 0x5c]
mov edi, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
test edi, edi
je 0x1006879b
mov eax, dword [esi]
mov dword [edi], eax
add edi, 4
mov dword [ebp - 0x60], edi
mov eax, dword [ebp - 0x28]
add esi, 4
jmp 0x10068670
mov eax, edi
sub eax, edx
sar eax, 2
cmp eax, 1
jbe 0x10068fb2
mov esi, dword [ebp - 0x2c]
push ecx
mov dword [esp], 0x3f800000
push edi
mov ecx, dword [esi + 0x24]
push edx
call fcn.10065ca0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov ecx, dword [esi + 0x24]
lea eax, [ebp - 0x9c]
push 0
push 0
push edi
push dword [ebp - 0x64]
mov byte [ebp - 4], 0x15
push eax
call fcn.100650f0
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x10068854
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x1006882f
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov eax, dword [esi]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x54], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x50], eax
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, dword [ebp - 0x9c]
mov byte [ebp - 4], 0x15
test eax, eax
je 0x10068889
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0
mov ecx, dword [ebp - 0x2c]
lea eax, [ebp - 0x58]
push eax
mov ecx, dword [ecx + 0x24]
call fcn.1000b210
mov edi, dword [ebp - 0x54]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x3c], edi
cmp esi, edi
je 0x10068a68
mov eax, dword [esi]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [eax + 0x13c]
mov eax, dword [eax + 0x140]
mov edx, eax
sub edx, ecx
add edx, 3
shr edx, 2
cmp ecx, eax
cmova edx, dword [ebp - 0x14]
test edx, edx
je 0x100688fa
lea esp, [esp]
mov eax, dword [ecx]
add ecx, 4
mov dword [eax + 0xf8], 0
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, edx
jne 0x100688e0
mov eax, dword [esi]
push ecx
mov dword [esp], 0x3f800000
push dword [eax + 0x140]
push dword [eax + 0x13c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x24]
call fcn.100060e0
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x100], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xf8], eax
mov eax, dword [esi]
push 0
push 0
mov byte [ebp - 4], 0x17
push dword [eax + 0x140]
push dword [eax + 0x13c]
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x24]
call fcn.10006840
mov ecx, eax
lea eax, [ebp - 0x100]
cmp eax, ecx
je 0x10068991
mov eax, dword [ecx]
mov dword [ebp - 0x24], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xf8], eax
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [ebp - 0xe0]
test eax, eax
je 0x100689c2
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov eax, dword [ebp - 0x18]
sub eax, dword [ebp - 0x24]
sar eax, 2
cmp eax, 1
mov eax, dword [esi]
jbe 0x100689db
mov byte [eax + 0x134], 1
jmp 0x100689e2
mov byte [eax + 0x134], 0
mov eax, dword [esi]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
mov ecx, dword [eax + 0x13c]
mov eax, dword [eax + 0x140]
mov edx, eax
sub edx, ecx
add edx, 3
shr edx, 2
cmp ecx, eax
cmova edx, dword [ebp - 0x14]
test edx, edx
je 0x10068a2e
mov eax, dword [ecx]
lea ecx, [ecx + 4]
mov edi, dword [ebp - 0x34]
mov dword [eax + 0xf8], edi
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x3c]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, edx
jne 0x10068a12
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x15
test eax, eax
je 0x10068a60
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
add esi, 4
jmp 0x100688a1
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb0], 0
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
mov byte [ebp - 4], 0x19
cmp esi, edi
je 0x10068c3f
mov eax, dword [esi]
cmp byte [eax + 0x134], 0
je 0x10068c37
mov ecx, dword [eax + 0x13c]
mov eax, dword [eax + 0x140]
mov edx, eax
sub edx, ecx
mov dword [ebp - 0x14], 0
add edx, 3
mov dword [ebp - 0x18], 0
shr edx, 2
cmp ecx, eax
cmova edx, dword [ebp - 0x14]
test edx, edx
je 0x10068afa
jmp 0x10068ae0
mov eax, dword [ecx]
add ecx, 4
mov dword [eax + 0xf8], 0
mov eax, dword [ebp - 0x18]
inc eax
mov dword [ebp - 0x18], eax
cmp eax, edx
jne 0x10068ae0
mov eax, dword [esi]
push ecx
mov dword [esp], 0x3f800000
push dword [eax + 0x140]
push dword [eax + 0x13c]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x24]
call fcn.100060e0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov eax, dword [esi]
push 0
push 0
mov byte [ebp - 4], 0x1a
push dword [eax + 0x140]
push dword [eax + 0x13c]
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x24]
call fcn.10006840
mov ecx, eax
lea eax, [ebp - 0xd0]
cmp eax, ecx
je 0x10068b9b
mov eax, dword [ecx]
mov dword [ebp - 0xd0], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0xcc], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0xc8], eax
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov eax, dword [ebp - 0xf4]
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x10068bd0
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
push dword [ebp + 0x1c]
lea ecx, [ebp - 0xb8]
push dword [ebp - 0xcc]
push dword [ebp - 0xd0]
push dword [ebp - 0xb4]
call fcn.100082f0
mov ecx, dword [esi]
test ecx, ecx
je 0x10068bfc
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [ebp - 0xd0]
mov dword [esi], 0
mov byte [ebp - 4], 0x19
test eax, eax
je 0x10068c37
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
add esi, 4
jmp 0x10068a90
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp - 0xb4]
je 0x10068c5f
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x24]
call fcn.1000b210
push dword [ebp + 0x1c]
lea ecx, [ebp - 0x58]
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0x54]
call fcn.100082f0
push dword [ebp + 0x1c]
mov esi, dword [ebp - 0x54]
lea eax, [ebp - 0x20]
push esi
push dword [ebp - 0x58]
push eax
call fcn.10066bf0
mov ecx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x54]
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp eax, ecx
jne 0x10068ca3
cmp esi, edi
jne 0x10068ca3
mov edi, ecx
jmp 0x10068cba
cmp eax, esi
je 0x10068cbd
sub edi, esi
and edi, 0xfffffffc
push edi
push esi
push eax
call fcn.10077d00
add esp, 0xc
add edi, dword [ebp - 0x14]
mov dword [ebp - 0x54], edi
mov esi, dword [ebp - 0x58]
mov eax, edi
mov dword [ebp - 0x14], eax
cmp esi, eax
je 0x10068d06
mov ecx, dword [esi]
mov edx, dword [ecx + 0x140]
sub edx, dword [ecx + 0x13c]
sar edx, 2
cmp edx, 1
jbe 0x10068d01
cmp byte [ecx + 0x128], 0
je 0x10068d01
call fcn.10004b80
mov ecx, dword [esi]
call fcn.10004f20
mov ecx, dword [esi]
call fcn.10005380
mov edi, dword [ebp - 0x54]
mov eax, dword [ebp - 0x14]
add esi, 4
jmp 0x10068cc5
mov esi, dword [ebp - 0x58]
mov eax, edi
mov dword [ebp - 0x18], eax
mov edi, edi
cmp esi, eax
je 0x10068f80
mov ecx, dword [esi]
mov eax, dword [ecx + 0x13c]
mov edi, dword [ecx + 0x140]
mov ecx, dword [ecx + 0x13c]
mov eax, dword [eax]
mov edx, dword [eax + 0x24]
mov dword [ebp - 0x34], edx
cmp ecx, edi
je 0x10068e53
movss xmm1, dword [0x100f125c]
movsd xmm2, qword [ebp - 0x84]
movsd xmm3, qword [ebp - 0x44]
mov eax, dword [ecx]
cmp dword [eax + 0x24], edx
je 0x10068d61
mov eax, dword [esi]
mov byte [eax + 0x128], 0
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
divsd xmm0, qword [edx + 0x38]
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
cvttsd2si eax, xmm0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ecx]
movsd xmm0, qword [eax + 0x28]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
cvttsd2si eax, xmm0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp dword [ebp - 0x14], eax
je 0x10068dd3
mov eax, dword [esi]
mov byte [eax + 0x128], 0
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
divsd xmm0, qword [edx + 0x40]
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
cvttsd2si eax, xmm0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
mov dword [ebp - 0x14], eax
mov eax, dword [ecx]
movsd xmm0, qword [eax + 0x30]
cvtpd2ps xmm0, xmm0
mulss xmm0, xmm1
cvtps2pd xmm0, xmm0
addsd xmm0, xmm2
cvttsd2si eax, xmm0
cdq
and edx, 0xf
add eax, edx
sar eax, 4
cmp dword [ebp - 0x14], eax
je 0x10068e45
mov eax, dword [esi]
mov byte [eax + 0x128], 0
mov edx, dword [ebp - 0x34]
add ecx, 4
cmp ecx, edi
jne 0x10068d51
mov eax, dword [esi]
add eax, 0x13c
push eax
lea eax, [ebp - 0x70]
push eax
call fcn.1000bd30
push ecx
lea eax, [ebp - 0x70]
mov dword [esp], 0x3a83126f
push eax
mov byte [ebp - 4], 0x1c
call fcn.1000c990
test al, al
jne 0x10068e86
mov eax, dword [esi]
mov byte [eax + 0x128], 0
mov edx, dword [esi]
mov eax, dword [edx + 0x13c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x12c]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x10068ea2
cmp eax, 1
jne 0x10068ead
cmp ecx, 1
je 0x10068ebd
cmp dword [edx + 0x24], 0x18
je 0x10068ebd
test eax, eax
je 0x10068eb6
cmp eax, 1
jne 0x10068ec2
mov ecx, 2
jmp 0x10068ec2
mov ecx, 1
mov eax, dword [edx + 0x13c]
push ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax]
push dword [eax + 0x128]
lea eax, [ebp - 0x4c]
push eax
call fcn.10067830
push dword [eax]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, dword [esi]
mov dword [ecx + 0x114], eax
push dword [ebp - 0x4c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi]
xor edx, edx
mov ecx, dword [eax + 0x13c]
mov eax, dword [eax + 0x140]
mov edi, eax
sub edi, ecx
add edi, 3
shr edi, 2
cmp ecx, eax
cmova edi, edx
test edi, edi
je 0x10068f3d
lea esp, [esp]
mov eax, dword [ecx]
mov al, byte [eax + 0xfc]
test al, al
jne 0x10068f35
mov eax, dword [esi]
mov byte [eax + 0x128], 0
inc edx
add ecx, 4
cmp edx, edi
jne 0x10068f20
push esi
lea ecx, [ebp - 0xc4]
call fcn.10007650
mov eax, dword [ebp - 0x70]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x10068f72
push eax
call fcn.10077622
add esp, 4
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov edi, dword [ebp - 0x54]
add esi, 4
mov eax, dword [ebp - 0x18]
jmp 0x10068d10
push dword [ebp + 0x1c]
lea eax, [ebp - 0x74]
push edi
push dword [ebp - 0x58]
push eax
call fcn.10066c50
push edi
lea ecx, [ebp - 0x58]
push dword [eax]
lea eax, [ebp - 0x78]
push eax
call fcn.100076c0
lea ecx, [ebp - 0xb8]
call fcn.100058f0
lea ecx, [ebp - 0x58]
call fcn.100058f0
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x64]
call fcn.1006a180
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x64]
call fcn.1006a1e0
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x1c]
call fcn.100674d0
test al, al
je 0x10069006
lea ebx, [ebx]
lea ecx, [ebp - 0x1c]
call fcn.10067560
lea ecx, [ebp - 0x1c]
mov dword [eax], 0
call fcn.100675b0
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x1c]
call fcn.100674d0
test al, al
jne 0x10068fe0
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0x10
call fcn.10067180
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0xac]
inc eax
jmp 0x1006864b
mov edi, dword [ebp - 0xa4]
mov ecx, dword [ebp - 0x28]
add ecx, 0xc
mov dword [ebp - 0x28], ecx
jmp 0x100685f5
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e20
lea eax, [ebp - 0x188]
push eax
lea ecx, [ebp - 0xc4]
lea esi, [ebp - 0x28]
call fcn.10005e30
push eax
mov ecx, esi
call fcn.10007770
lea ecx, [ebp - 0x70]
test al, al
je 0x1006942a
call fcn.100510f0
mov ecx, esi
mov byte [ebp - 4], 0x1d
call fcn.10007750
mov ecx, dword [eax]
call fcn.100046f0
mov esi, eax
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
call fcn.10005800
lea eax, [ebp - 0xac]
mov ecx, esi
push eax
call fcn.10005810
mov edi, edi
lea eax, [ebp - 0xac]
push eax
lea ecx, [ebp - 0x4c]
call fcn.100058b0
test al, al
je 0x100690db
lea ecx, [ebp - 0x4c]
call fcn.10005890
mov ecx, dword [eax]
call fcn.100046e0
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x70]
lea eax, [ebp - 0x14]
push eax
call fcn.1006a200
lea ecx, [ebp - 0x4c]
call fcn.100058a0
jmp 0x100690a0
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x70]
call fcn.1006a1c0
mov esi, eax
lea ecx, [ebp - 0x70]
lea eax, [ebp - 0x17c]
push eax
call fcn.1006a160
push dword [esi]
push dword [eax]
call fcn.10066cc0
push 0
lea ecx, [ebp - 0x70]
call fcn.10052530
push 1
lea ecx, [ebp - 0x28]
mov eax, dword [eax]
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10008160
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0xc4]
lea edi, [ebp - 0x1c]
call fcn.10005e30
push eax
mov ecx, edi
call fcn.10007770
test al, al
je 0x10069415
lea ecx, [ebp - 0x9c]
call fcn.100510f0
mov ecx, edi
mov byte [ebp - 4], 0x1e
call fcn.10007750
mov ecx, dword [eax]
call fcn.100046f0
mov esi, eax
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.10005800
lea eax, [ebp - 0xe4]
mov ecx, esi
push eax
call fcn.10005810
mov edi, edi
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x3c]
call fcn.100058b0
test al, al
je 0x100691be
lea ecx, [ebp - 0x3c]
call fcn.10005890
mov ecx, dword [eax]
call fcn.100046e0
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x9c]
lea eax, [ebp - 0x14]
push eax
call fcn.1006a200
lea ecx, [ebp - 0x3c]
call fcn.100058a0
jmp 0x10069180
lea eax, [ebp - 0x18c]
push eax
lea ecx, [ebp - 0x9c]
call fcn.1006a1c0
mov esi, eax
lea ecx, [ebp - 0x9c]
lea eax, [ebp - 0x174]
push eax
call fcn.1006a160
push dword [esi]
push dword [eax]
call fcn.10066cc0
push 0
lea ecx, [ebp - 0x9c]
call fcn.10052530
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x14], 0x3f800000
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
call fcn.10007750
mov esi, eax
mov ecx, edi
mov dword [ebp - 0x78], esi
call fcn.10007750
mov ecx, dword [esi]
mov edi, eax
lea eax, [ebp - 0x14]
push eax
call fcn.100044d0
mov ecx, dword [edi]
push eax
call fcn.100044d0
mov ecx, dword [ebp - 0x2c]
push eax
lea ecx, [ecx + 0x24]
call fcn.10067540
mov ecx, eax
call fcn.10009130
test al, al
je 0x100693fd
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x34]
jge 0x10069278
lea esi, [ebp - 0x70]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x38], esi
call fcn.10007750
lea edi, [ebp - 0x9c]
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x18], edi
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
call fcn.10007750
jmp 0x1006928f
mov eax, dword [edi]
lea esi, [ebp - 0x9c]
lea edi, [ebp - 0x70]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x18], edi
mov eax, dword [eax]
mov ecx, edi
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x24]
push eax
call fcn.1006a170
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.1006a1d0
push eax
lea ecx, [ebp - 0x24]
call fcn.100674b0
test al, al
je 0x100693fd
jmp 0x100692c0
lea eax, [ebp - 0x48]
mov ecx, esi
push eax
call fcn.1006a170
lea eax, [ebp - 0x74]
mov ecx, esi
push eax
call fcn.1006a1d0
push eax
lea ecx, [ebp - 0x48]
call fcn.100674b0
test al, al
je 0x100693d9
lea ecx, [ebp - 0x24]
call fcn.10067550
mov edi, eax
mov dword [ebp - 0x78], edi
lea ecx, [ebp - 0x48]
call fcn.10067550
mov ecx, dword [ebp - 0x38]
mov edi, dword [edi]
push 1
mov esi, dword [eax]
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0xec]
push eax
call fcn.1006a1d0
mov ecx, eax
call fcn.100675e0
push eax
lea ecx, [ebp - 0x48]
call fcn.100674b0
test al, al
je 0x10069356
push 1
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x48]
call fcn.10067600
mov ecx, eax
call fcn.10067550
cmp esi, edi
jge 0x10069356
cmp edi, dword [eax]
jge 0x10069356
mov eax, dword [ebp - 0x34]
mov byte [eax + 0x128], 0
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0xb0]
push 1
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.1006a1d0
mov ecx, eax
call fcn.100675e0
push eax
lea ecx, [ebp - 0x24]
call fcn.100674b0
test al, al
je 0x100693a6
push 1
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x24]
call fcn.10067600
mov ecx, eax
call fcn.10067550
cmp edi, esi
jge 0x100693a6
cmp esi, dword [eax]
jge 0x100693a6
mov eax, dword [ebp - 0x14]
mov byte [eax + 0x128], 0
push 0
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x48]
call fcn.10067580
mov esi, dword [ebp - 0x38]
lea eax, [ebp - 0x74]
push eax
mov ecx, esi
call fcn.1006a1d0
push eax
lea ecx, [ebp - 0x48]
call fcn.100674b0
mov edi, dword [ebp - 0x78]
test al, al
jne 0x100692f4
mov edi, dword [ebp - 0x18]
lea ecx, [ebp - 0x24]
call fcn.100675a0
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.1006a1d0
push eax
lea ecx, [ebp - 0x24]
call fcn.100674b0
test al, al
jne 0x100692c0
lea ecx, [ebp - 0x9c]
call fcn.10051930
lea ecx, [ebp - 0x1c]
call fcn.10007760
jmp 0x10069121
lea ecx, [ebp - 0x70]
call fcn.10051930
lea ecx, [ebp - 0x28]
call fcn.10007760
jmp 0x10069044
call fcn.100058d0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0x1f
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e20
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e30
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x18]
call fcn.10007770
test al, al
je 0x10069489
lea ecx, [ebp - 0x18]
call fcn.10007750
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x128], 0
je 0x1006947f
push ecx
lea ecx, [ebp - 0x70]
call fcn.10007650
lea ecx, [ebp - 0x18]
call fcn.10007760
jmp 0x10069451
lea ecx, [ebp - 0x70]
call fcn.1006a1a0
mov edi, dword [ebp - 0x2c]
test al, al
jne 0x10069bc5
push ecx
lea eax, [edi + 0x28]
mov ecx, esp
push eax
call fcn.1000e260
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x9c]
push eax
lea ecx, [edi + 0x24]
call fcn.10067540
mov ecx, eax
call fcn.10066110
push eax
lea ecx, [edi + 0xc]
mov byte [ebp - 4], 0x20
call fcn.10067330
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 0x1f
call fcn.10067180
lea ecx, [edi + 0xc]
call fcn.1006a1b0
test al, al
jne 0x10069bc5
xor esi, esi
lea eax, [edi + 0xc]
mov dword [ebp - 0x3c], esi
mov ecx, eax
mov dword [ebp - 0x20], eax
call fcn.1006a270
cmp esi, eax
jae 0x10069bc5
push esi
lea ecx, [ebp - 0x70]
call fcn.1000d220
mov dword [ebp - 0x24], eax
mov ecx, dword [eax]
call fcn.100046f0
mov ecx, eax
call fcn.10003170
cmp eax, 1
jbe 0x10069bbf
mov ecx, dword [ebp - 0x20]
push esi
call fcn.10067530
push 0x1c
mov edi, dword [eax]
mov dword [ebp - 0x1c], edi
call fcn.10077b68
add esp, 4
test eax, eax
je 0x10069550
mov ecx, eax
call fcn.10051590
jmp 0x10069552
xor eax, eax
push eax
lea ecx, [ebp - 0x60]
call fcn.1004e790
push 0x1c
mov byte [ebp - 4], 0x21
call fcn.10077b68
add esp, 4
test eax, eax
je 0x10069576
mov ecx, eax
call fcn.10051590
jmp 0x10069578
xor eax, eax
push eax
lea ecx, [ebp - 0x84]
call fcn.1004e790
push 0x2c
mov byte [ebp - 4], 0x22
call fcn.10077b68
add esp, 4
test eax, eax
je 0x1006959f
mov ecx, eax
call fcn.1004c020
jmp 0x100695a1
xor eax, eax
push eax
lea ecx, [ebp - 0x44]
call fcn.1004bed0
mov esi, dword [ebp - 0x24]
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 0x23
mov eax, dword [esi]
push dword [eax + 0x114]
call fcn.10048de0
mov ecx, eax
lea eax, [edi + 0x128]
push ecx
mov ecx, eax
mov dword [ebp - 0x7c], eax
call fcn.10049430
lea ecx, [ebp - 0x74]
call fcn.10002290
mov ecx, dword [esi]
call fcn.100046f0
mov ecx, eax
call fcn.1000cee0
lea ecx, [ebp - 0x44]
mov eax, dword [eax]
mov esi, dword [eax + 0x12c]
mov dword [edi + 0x12c], esi
call fcn.1004c670
mov ecx, dword [ebp - 0x24]
mov dword [eax], esi
mov ecx, dword [ecx]
call fcn.100046f0
mov ecx, eax
call fcn.1000cee0
lea ecx, [ebp - 0x44]
mov eax, dword [eax]
mov esi, dword [eax + 0x130]
mov dword [edi + 0x130], esi
call fcn.1004c670
mov dword [eax + 4], esi
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax]
call fcn.100046f0
mov ecx, eax
call fcn.1000cee0
lea ecx, [ebp - 0x44]
mov eax, dword [eax]
mov al, byte [eax + 0x134]
mov byte [ebp - 0x2d], al
mov byte [edi + 0x134], al
call fcn.1004c670
mov cl, byte [ebp - 0x2d]
mov byte [eax + 0x24], cl
mov ecx, edi
call fcn.100044c0
mov edi, eax
lea ecx, [ebp - 0x60]
mov eax, dword [edi]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
movsd qword [ebp - 0xdc], xmm0
call fcn.10052540
movsd xmm1, qword [ebp - 0xdc]
lea ecx, [ebp - 0x60]
cvtpd2ps xmm0, xmm1
movss dword [eax], xmm0
mov eax, dword [edi + 4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1e60]
movsd qword [ebp - 0xdc], xmm0
call fcn.10052540
movsd xmm1, qword [ebp - 0xdc]
lea ecx, [ebp - 0x60]
cvtpd2ps xmm0, xmm1
movss dword [eax + 4], xmm0
movsd xmm0, qword [edi + 0x18]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call fcn.10052540
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x60]
movss dword [eax + 8], xmm0
movsd xmm0, qword [edi + 0x20]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call fcn.10052540
movss xmm0, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
movss dword [eax + 0xc], xmm0
call fcn.100044d0
mov esi, eax
lea ecx, [ebp - 0x84]
movsd xmm0, qword [esi]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call fcn.10052540
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x84]
movss dword [eax], xmm0
movsd xmm0, qword [esi + 8]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call fcn.10052540
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x84]
movss dword [eax + 4], xmm0
movsd xmm0, qword [esi + 0x10]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call fcn.10052540
movss xmm0, dword [ebp - 0x20]
lea ecx, [ebp - 0x84]
movss dword [eax + 8], xmm0
movsd xmm0, qword [esi + 0x18]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call fcn.10052540
movss xmm0, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
movss dword [eax + 0xc], xmm0
call fcn.100044b0
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.1004c670
mov ecx, dword [ebp - 0x1c]
mov dword [eax + 8], esi
call fcn.10069de0
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.1004c670
lea ecx, [ebp - 0x44]
mov dword [eax + 0xc], esi
call fcn.1004c670
mov ecx, dword [edi + 8]
mov dword [eax + 0x18], ecx
lea ecx, [ebp - 0x44]
call fcn.1004c670
mov ecx, dword [edi + 0xc]
mov edi, dword [ebp - 0x1c]
mov dword [eax + 0x1c], ecx
mov ecx, edi
call fcn.10069de0
mov ecx, edi
mov esi, eax
call fcn.100044a0
imul esi, eax
push esi
call fcn.100756bf
add esp, 4
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.1004c670
mov ecx, edi
mov dword [eax + 0x28], esi
call fcn.10069de0
mov ecx, edi
mov esi, eax
call fcn.100044a0
imul esi, eax
push esi
mov ecx, edi
call fcn.10008d50
push eax
mov ecx, edi
call fcn.10069de0
mov ecx, edi
mov esi, eax
call fcn.100044a0
imul esi, eax
lea ecx, [ebp - 0x44]
push esi
call fcn.1004c670
mov eax, dword [eax + 0x28]
push eax
call fcn.1007a6b1
mov edi, dword [ebp - 0x24]
add esp, 0x10
mov ecx, dword [edi]
call fcn.100046f0
mov ecx, eax
call fcn.1000cee0
mov ecx, dword [eax]
call fcn.100044c0
movsd xmm0, qword [eax + 0x28]
call fcn.10079611
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.1004c670
mov dword [eax + 0x10], esi
mov ecx, dword [edi]
call fcn.100046f0
mov ecx, eax
call fcn.1000cee0
mov ecx, dword [eax]
call fcn.100044c0
movsd xmm0, qword [eax + 0x30]
call fcn.10079611
lea ecx, [ebp - 0x44]
mov esi, eax
call fcn.1004c670
mov dword [eax + 0x14], esi
mov ecx, dword [edi]
call fcn.100046f0
mov esi, eax
lea eax, [ebp - 0x18]
push eax
mov ecx, esi
call fcn.10005800
lea eax, [ebp - 0x78]
mov ecx, esi
push eax
call fcn.10005810
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x18]
call fcn.100058b0
test al, al
je 0x1006994e
lea ecx, [ebp - 0x18]
call fcn.10005890
mov ecx, dword [ebp + 0x20]
mov edi, dword [eax]
lea esi, [edi + 0x128]
push esi
call fcn.1005d870
push dword [ebp - 0x7c]
mov ecx, eax
call fcn.10052070
mov ecx, dword [ebp + 0x20]
push esi
call fcn.1005d870
mov ecx, 0x80
push esi
or word [eax + 4], cx
mov ecx, dword [ebp + 0x1c]
call fcn.100580b0
lea ecx, [ebp - 0x84]
call fcn.10052540
mov ecx, eax
mov eax, dword [edi + 0x138]
mov dword [ecx + 0x14], eax
mov eax, dword [edi + 0x13c]
mov dword [ecx + 0x18], eax
lea ecx, [ebp - 0x18]
call fcn.100058a0
jmp 0x100698d7
lea ecx, [ebp - 0x9c]
call fcn.10051110
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 0x24
call fcn.100516c0
mov edi, dword [ebp - 0x1c]
lea eax, [ebp - 0x38]
push eax
lea ecx, [edi + 0x118]
call fcn.1000d0d0
lea eax, [ebp - 0xe4]
push eax
lea ecx, [edi + 0x118]
call fcn.1000d0e0
lea esp, [esp]
lea eax, [ebp - 0xe4]
push eax
lea ecx, [ebp - 0x38]
call fcn.100674f0
test al, al
je 0x100699f7
lea ecx, [ebp - 0x38]
call fcn.1000d440
lea ecx, [ebp - 0x84]
mov esi, eax
call fcn.10052540
movss xmm0, dword [esi]
lea ecx, [ebp - 0x9c]
subss xmm0, dword [eax + 0x14]
movss dword [ebp - 0xb4], xmm0
movss xmm0, dword [esi + 4]
subss xmm0, dword [eax + 0x18]
lea eax, [ebp - 0xb4]
push eax
movss dword [ebp - 0xb0], xmm0
call fcn.10058cc0
lea ecx, [ebp - 0x38]
call fcn.100675c0
jmp 0x10069990
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x9c]
mov dword [ebp - 0x7c], 0
push eax
lea eax, [ebp - 0x7c]
mov byte [ebp - 0x2d], 1
push eax
lea eax, [ebp - 0x2d]
mov dword [ebp - 0xac], 0
push eax
lea eax, [ebp - 0xac]
mov dword [ebp - 0x14], 0
push eax
lea eax, [ebp - 0x14]
mov dword [ebp - 0x34], 0
push eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x4c], 8
push eax
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x1c], 0
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x24], 0
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1bc]
push eax
call fcn.10066b80
mov esi, eax
mov ecx, dword [ebp + 0x1c]
add edi, 0x128
push edi
mov byte [ebp - 4], 0x25
call fcn.100524c0
push esi
mov ecx, eax
call fcn.10064f90
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 0x24
call fcn.10067140
mov esi, dword [ebp + 0x1c]
mov ecx, esi
push edi
call fcn.100524c0
lea ecx, [ebp - 0x84]
push ecx
push eax
call fcn.10050940
mov ecx, eax
call fcn.10051ee0
push edi
mov ecx, esi
call fcn.100524c0
lea ecx, [ebp - 0x60]
push ecx
push eax
call fcn.100508f0
mov ecx, eax
call fcn.10051ee0
push edi
mov ecx, esi
call fcn.100524c0
push eax
call fcn.10050900
mov ecx, 8
push edi
mov word [eax], cx
mov ecx, esi
call fcn.100524c0
lea ecx, [ebp - 0x44]
push ecx
push eax
call fcn.10050910
mov ecx, eax
call fcn.1005a990
push edi
mov ecx, esi
call fcn.100524c0
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x20], eax
call fcn.1000d220
mov ecx, dword [eax]
call fcn.100046f0
mov ecx, eax
call fcn.1000cee0
mov ecx, dword [eax]
call fcn.10067b40
push dword [ebp - 0x20]
mov esi, eax
call fcn.10050920
push edi
mov dword [eax], esi
mov esi, dword [ebp + 0x1c]
mov ecx, esi
call fcn.100524c0
lea ecx, [ebp - 0x9c]
push ecx
push eax
call fcn.10050930
mov ecx, eax
call fcn.10051f50
push edi
mov ecx, esi
call fcn.100524c0
push eax
call fcn.1005d330
mov ecx, dword [ebp + 0x1c]
mov esi, eax
mov eax, 0x80
push edi
or word [esi], ax
call fcn.100524c0
push eax
call fcn.1005d330
mov cx, word [esi]
push edi
mov word [eax], cx
mov ecx, dword [ebp + 0x24]
call fcn.10058d40
lea ecx, [ebp - 0x9c]
call fcn.100492b0
lea ecx, [ebp - 0x44]
call fcn.100490e0
lea ecx, [ebp - 0x84]
call fcn.10049120
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0x1f
call fcn.10049120
mov edi, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x3c]
inc esi
jmp 0x100694f0
lea eax, [ebp + 0x1c]
push eax
lea ecx, [edi + 0xc]
call fcn.1006a180
lea eax, [ebp + 0x20]
push eax
lea ecx, [edi + 0xc]
call fcn.1006a1e0
lea ecx, [ecx]
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp + 0x1c]
call fcn.100674d0
test al, al
je 0x10069c16
lea ecx, [ebp + 0x1c]
call fcn.10067560
mov esi, eax
mov ecx, dword [esi]
test ecx, ecx
je 0x10069c0c
mov eax, dword [ecx]
push 1
call dword [eax]
mov dword [esi], 0
lea ecx, [ebp + 0x1c]
call fcn.100675b0
jmp 0x10069be0
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xa8]
call fcn.1006a190
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0xa8]
call fcn.1006a1f0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0x20]
call fcn.10067510
test al, al
je 0x10069cb2
lea ecx, [ebp + 0x20]
call fcn.10067570
mov esi, eax
lea eax, [ebp + 0x1c]
push eax
mov ecx, esi
call fcn.1006a180
lea eax, [ebp + 0x24]
mov ecx, esi
push eax
call fcn.1006a1e0
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp + 0x1c]
call fcn.100674d0
test al, al
je 0x10069c9a
lea ecx, [ebp + 0x1c]
call fcn.10067560
lea ecx, [ebp + 0x1c]
mov dword [eax], 0
call fcn.100675b0
lea eax, [ebp + 0x24]
push eax
lea ecx, [ebp + 0x1c]
call fcn.100674d0
test al, al
jne 0x10069c74
lea ecx, [ebp + 0x20]
call fcn.100675d0
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp + 0x20]
call fcn.10067510
test al, al
jne 0x10069c44
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e30
mov esi, eax
lea ecx, [ebp - 0xc4]
lea eax, [ebp + 0x24]
push eax
call fcn.10005e20
push dword [ebp + 0x1c]
push dword [esi]
push dword [eax]
lea eax, [ebp + 0x1c]
push eax
call fcn.10066b50
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e30
push eax
lea ecx, [ebp + 0x1c]
call fcn.10007890
test al, al
je 0x10069d2f
lea eax, [ebp - 0xc4]
mov ecx, edi
push eax
call fcn.10067a90
test al, al
je 0x10069d2f
mov ecx, 1
jmp 0x10069d31
xor ecx, ecx
mov eax, dword [ebp + 8]
mov byte [eax], cl
lea ecx, [ebp - 0x70]
call fcn.100058f0
lea ecx, [ebp - 0xa8]
call fcn.100671b0
lea eax, [ebp + 0x1c]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e20
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp - 0xc4]
call fcn.10005e30
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp + 0x1c]
call fcn.10007770
test al, al
je 0x10069db4
mov edi, edi
lea ecx, [ebp + 0x1c]
call fcn.10007750
mov esi, eax
mov ecx, dword [esi]
test ecx, ecx
je 0x10069d96
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp + 0x1c]
mov dword [esi], 0
call fcn.10007760
lea eax, [ebp + 0x20]
push eax
lea ecx, [ebp + 0x1c]
call fcn.10007770
test al, al
jne 0x10069d80
lea ecx, [ebp - 0xc4]
call fcn.100058f0
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xe8]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x20