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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x10088014]
xor eax, esp
mov dword [esp + 0xc4], eax
cmp byte [ebp + 0x18], 2
xorps xmm0, xmm0
movsd xmm1, qword [ebp + 8]
push esi
mov esi, dword [ebp + 0x24]
sete al
comisd xmm0, xmm1
push edi
mov dword [esp + 0x20], esi
mov byte [esp + 0x17], al
jb 0x10003421
mov edi, dword [ebp + 0x10]
test edi, edi
jle 0x100033ec
test al, al
je 0x100033ec
cmp edi, dword [esi + 0xc]
jbe 0x100033c3
mov eax, dword [esi]
mov ecx, esi
push edi
call dword [eax]
push edi
push 0x30
push dword [esi + 4]
mov dword [esi + 8], edi
call fcn.10047960
add esp, 0xc
neg edi
mov eax, edi
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 8]
lea edx, [ecx + 1]
cmp edx, dword [esi + 0xc]
jbe 0x10003401
mov eax, dword [esi]
mov ecx, esi
push edx
call dword [eax]
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov byte [ecx + eax], 0x30
inc dword [esi + 8]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret
mov al, byte [ebp + 0x20]
test al, 8
jne 0x10003458
movups xmm0, xmmword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
sub esp, 0x10
mov eax, esp
movaps xmm2, xmm1
mov edx, esi
movups xmmword [eax], xmm0
call fcn.10004180
add esp, 0x10
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x18], 0
test edi, edi
jns 0x1000396a
movlpd qword [esp + 0xb0], xmm0
lea ecx, [esp + 0xb0]
mov dword [esp + 0xb8], 0
test al, 4
je 0x1000357d
call fcn.10007050
mov edi, dword [esp + 0xb8]
xor edx, edx
mov dword [esp + 0x74], edx
mov ecx, 0x10000000
mov dword [esp + 0x70], ecx
cmp edi, 0xffffff4e
jge 0x100034d6
mov eax, 0xffffff4e
xor ecx, ecx
sub eax, edi
add eax, 0x1c
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov dword [esp + 0x70], ecx
cmovae edx, ecx
mov dword [esp + 0x74], edx
mov esi, dword [esp + 0xb0]
add ecx, esi
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x30]
adc edx, dword [esp + 0xb4]
sub esp, 0x10
mov dword [esp + 0x44], edx
mov eax, esp
mov dword [esp + 0x48], edi
movups xmm0, xmmword [esp + 0x40]
movups xmmword [eax], xmm0
call fcn.10005920
add esp, 0x10
test esi, esi
jne 0x10003529
cmp dword [esp + 0xb4], 0x100000
jne 0x10003529
cmp edi, 0xffffff4e
jle 0x10003529
lea eax, [esi + 1]
jmp 0x1000352b
xor eax, eax
sub edi, dword [esp + 0x38]
movq xmm1, qword [esp + 0x70]
movq xmm2, qword [esp + 0xb0]
mov ecx, dword [esp + 0x34]
movd xmm0, eax
mov eax, dword [esp + 0x30]
psrlq xmm1, xmm0
movd xmm0, edi
lea edi, [esp + 0x90]
psubq xmm2, xmm1
mov dword [esp + 0x98], eax
psllq xmm2, xmm0
mov dword [esp + 0x9c], ecx
movq qword [esp + 0x90], xmm2
jmp 0x1000367a
call fcn.10007050
mov edx, dword [esp + 0xb0]
test al, al
mov esi, dword [esp + 0xb4]
mov ecx, edx
mov eax, esi
je 0x100035bf
shld eax, ecx, 2
shl ecx, 2
add ecx, 0xffffffff
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xb8]
adc eax, 0xffffffff
mov dword [esp + 0x94], eax
lea eax, [ecx - 2]
jmp 0x100035e3
shld eax, ecx, 1
add ecx, ecx
add ecx, 0xffffffff
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xb8]
adc eax, 0xffffffff
mov dword [esp + 0x94], eax
lea eax, [ecx - 1]
shld esi, edx, 1
mov dword [esp + 0x98], eax
lea eax, [esp + 0x90]
movups xmm1, xmmword [eax]
add edx, edx
lea eax, [ecx - 1]
add edx, 1
mov dword [esp + 0x98], eax
mov dword [esp + 0x90], edx
lea ecx, [esp + 0x90]
adc esi, 0
movaps xmmword [esp + 0x30], xmm1
sub esp, 0x10
mov dword [esp + 0xa4], esi
movups xmm0, xmmword [esp + 0xa0]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.100070e0
mov ecx, dword [esp + 0xa4]
lea edi, [esp + 0x40]
psrldq xmm1, 8
add esp, 0x10
movd eax, xmm1
movq xmm1, qword [esp + 0x30]
mov dword [esp + 0x3c], ecx
sub eax, dword [esp + 0x98]
movd xmm0, eax
mov eax, dword [esp + 0x90]
psllq xmm1, xmm0
mov dword [esp + 0x38], eax
movq qword [esp + 0x30], xmm1
movups xmm0, xmmword [esp + 0xb0]
sub esp, 0x10
mov dword [esp + 0x2c], edi
mov eax, esp
lea ecx, [esp + 0x80]
movups xmmword [eax], xmm0
call fcn.10005920
mov esi, eax
mov eax, 0xffffffc3
movups xmm0, xmmword [esi]
psrldq xmm0, 8
movd ecx, xmm0
sub eax, ecx
mov ecx, 0x4d104d42
imul ecx
add eax, 0xffffffff
adc edx, 0
lea eax, [edx + 0x15b]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov edx, dword [eax*8 + 0x1007e9b4]
lea ecx, [eax*8 - 0x154]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax*8 + 0x1007e9b0]
movsx eax, word [eax*2 + 0x1007e7f2]
mov dword [esp + 0xc8], eax
mov eax, esp
mov dword [esp + 0xc0], ecx
sub esp, 0x10
mov dword [esp + 0xd4], edx
movups xmm0, xmmword [esp + 0xd0]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0xa0]
mov dword [esp + 0x48], edx
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esi]
movups xmmword [eax], xmm0
call fcn.10001990
movups xmm1, xmmword [edi]
add esp, 0x20
mov esi, eax
movd eax, xmm1
movaps xmm0, xmm1
psrldq xmm0, 4
push 0
push eax
movd edi, xmm0
push 0
push dword [esp + 0x34]
mov dword [esp + 0x78], edi
mov dword [esp + 0x6c], eax
call fcn.10046390
push 0
push edi
push 0
push dword [esp + 0x30]
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], edx
call fcn.10046390
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
push 0
mov dword [esp + 0x70], edx
movups xmm1, xmmword [eax]
movaps xmm0, xmm1
psrldq xmm1, 8
movd eax, xmm1
psrldq xmm0, 0xc
movd edi, xmm0
push eax
push 0
push dword [esp + 0x34]
mov dword [esp + 0x60], edi
mov dword [esp + 0x2c], eax
call fcn.10046390
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], edx
push 0
push edi
push 0
push dword [esp + 0x30]
call fcn.10046390
push 0
push dword [esp + 0x20]
mov edi, eax
mov dword [esp + 0x5c], edx
push 0
push dword [esp + 0x30]
call fcn.10046390
xor eax, eax
add edx, edi
adc eax, eax
add edx, dword [esp + 0x4c]
adc eax, 0
add edx, 0x80000000
adc eax, 0
xor edi, edi
push edi
push dword [esp + 0x54]
mov dword [esp + 0x24], eax
push edi
push dword [esp + 0x34]
call fcn.10046390
mov ecx, dword [esp + 0x1c]
movups xmm1, xmmword [esi]
add ecx, eax
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0x20]
adc edi, edx
movaps xmm0, xmm1
add ecx, dword [esp + 0x54]
psrldq xmm0, 4
mov eax, dword [eax + 4]
adc edi, 0
add ecx, dword [esp + 0x58]
mov dword [esp + 0xb0], eax
adc edi, 0
movd eax, xmm1
add ecx, 1
psrldq xmm1, 8
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov esi, ecx
adc edi, 0
sub edx, eax
movd dword [esp + 0x98], xmm1
movd eax, xmm0
mov ecx, edi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
movups xmm0, xmmword [esp + 0x90]
sbb ecx, eax
mov dword [esp + 0xb8], edx
sub esp, 0x10
mov dword [esp + 0xcc], ecx
mov eax, esp
push 0
push dword [esp + 0x70]
movups xmmword [eax], xmm0
push 0
push dword [esp + 0x40]
call fcn.10046390
xor eax, eax
add edx, dword [esp + 0x70]
push 0
push dword [esp + 0x7c]
adc eax, eax
add edx, dword [esp + 0x7c]
push 0
push dword [esp + 0x44]
adc eax, 0
add edx, 0x80000000
adc eax, 0
sub esi, eax
sbb edi, 0
call fcn.10046390
sub esi, eax
sbb edi, edx
sub esi, dword [esp + 0x7c]
sbb edi, 0
lea edx, [esp + 0xc0]
sub esi, dword [esp + 0x80]
lea ecx, [esp + 0x28]
sbb edi, 0
add esi, 1
adc edi, 0
push edi
push esi
call fcn.10005980
add esp, 0x18
cmp eax, 2
jne 0x1000394a
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x18]
mov ecx, dword [esp + 0xb4]
dec eax
sub ecx, dword [esp + 0x2c]
movsd xmm2, qword [ebp + 8]
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x18], eax
call fcn.10005bc0
mov eax, dword [esp + 0x18]
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0xb4]
cmp edi, dword [esi + 0xc]
jbe 0x10003961
mov eax, dword [esi]
mov ecx, esi
push edi
call dword [eax]
mov eax, dword [esp + 0x18]
jmp 0x10003b1b
cmp edi, 0x11
jle 0x1000399e
movups xmm0, xmmword [ebp + 0x14]
sub esp, 0x10
mov edx, esi
mov eax, esp
movaps xmm2, xmm1
mov ecx, edi
movups xmmword [eax], xmm0
call fcn.10004180
add esp, 0x10
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x90]
call fcn.10007050
movups xmm0, xmmword [esp + 0x90]
sub esp, 0x10
lea ecx, [esp + 0x40]
mov eax, esp
movups xmmword [eax], xmm0
call fcn.10005920
mov eax, 0xffffffc3
mov ecx, 0x4d104d42
sub eax, dword [esp + 0x48]
imul ecx
add eax, 0xffffffff
adc edx, 0
lea eax, [edx + 0x15b]
cdq
and edx, 7
add eax, edx
sar eax, 3
mov edx, dword [eax*8 + 0x1007e9b4]
lea ecx, [eax*8 - 0x154]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax*8 + 0x1007e9b0]
movsx eax, word [eax*2 + 0x1007e7f2]
mov dword [esp + 0xa8], eax
mov eax, esp
mov dword [esp + 0xa0], ecx
sub esp, 0x10
mov dword [esp + 0xb4], edx
lea ecx, [esp + 0xa0]
movups xmm0, xmmword [esp + 0xb0]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x50]
movups xmmword [eax], xmm0
call fcn.10001990
mov ecx, dword [esi + 4]
mov edx, eax
mov al, byte [esp + 0x37]
add esp, 0x10
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x3c]
movups xmm0, xmmword [edx]
mov byte [esp + 0xb0], al
lea edx, [esp + 0xa0]
mov eax, esp
mov dword [esp + 0xa4], 0
neg ecx
mov dword [esp + 0xa8], edi
sub esp, 8
mov dword [esp + 0xb4], ecx
lea ecx, [esp + 0x30]
movups xmmword [eax], xmm0
call fcn.10006340
add esp, 0x18
cmp eax, 2
jne 0x10003ad1
movups xmm0, xmmword [ebp + 0x14]
sub esp, 0x10
mov edx, esi
movsd xmm2, qword [ebp + 8]
mov eax, esp
mov ecx, edi
movups xmmword [eax], xmm0
call fcn.10004180
add esp, 0x10
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x17], 0
mov edi, dword [esp + 0x94]
jne 0x10003b03
test edi, edi
jle 0x10003b03
mov eax, dword [esp + 0x18]
lea ecx, [edi - 1]
add ecx, dword [esi + 4]
mov dword [esp + 0x20], eax
cmp byte [ecx], 0x30
jne 0x10003b0b
dec edi
inc eax
dec ecx
mov dword [esp + 0x20], eax
test edi, edi
jg 0x10003af1
jmp 0x10003b0b
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
cmp edi, dword [esi + 0xc]
jbe 0x10003b17
mov edx, dword [esi]
mov ecx, esi
push edi
call dword [edx]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0xcc]
sub eax, dword [esp + 0x2c]
mov dword [esi + 8], edi
pop edi
pop esi
xor ecx, esp
call fcn.100456c4
mov esp, ebp
pop ebp
ret