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

Disassembly:
sub esp, 0x6c
mov eax, dword [0x1012eb00]
xor eax, esp
mov dword [esp + 0x68], eax
cmp byte [esp + 0x80], 2
xorps xmm0, xmm0
movsd xmm1, qword [esp + 0x70]
push ebx
mov ebx, dword [esp + 0x90]
sete al
comisd xmm0, xmm1
push ebp
push esi
push edi
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x13], al
jb 0x100aa736
mov esi, dword [esp + 0x88]
test esi, esi
jle 0x100aa702
test al, al
je 0x100aa702
cmp esi, dword [ebx + 0xc]
jbe 0x100aa6d6
mov eax, dword [ebx]
mov ecx, ebx
push esi
call dword [eax]
mov dword [ebx + 8], esi
test esi, esi
jle 0x100aa6eb
push esi
push 0x30
push dword [ebx + 4]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
neg esi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.100e4fca
add esp, 0x6c
ret
mov ecx, dword [ebx + 8]
lea edx, [ecx + 1]
cmp edx, dword [ebx + 0xc]
jbe 0x100aa717
mov eax, dword [ebx]
mov ecx, ebx
push edx
call dword [eax]
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 4]
mov byte [ecx + eax], 0x30
inc dword [ebx + 8]
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.100e4fca
add esp, 0x6c
ret
mov al, byte [esp + 0x98]
test al, 8
jne 0x100aa77c
push ebx
sub esp, 0x10
mov eax, esp
push dword [esp + 0x9c]
movups xmm0, xmmword [esp + 0xa4]
sub esp, 8
movups xmmword [eax], xmm0
movsd qword [esp], xmm1
call fcn.100ae520
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.100e4fca
add esp, 0x6c
ret
mov esi, dword [esp + 0x88]
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], 0
test esi, esi
jns 0x100aab0e
sub esp, 8
movlpd qword [esp + 0x44], xmm0
mov dword [esp + 0x4c], 0
lea ecx, [esp + 0x44]
movsd qword [esp], xmm1
test al, 4
je 0x100aa893
call fcn.100aad90
mov edi, dword [esp + 0x44]
xor edx, edx
mov dword [esp + 0x30], edx
mov ecx, 0x10000000
mov dword [esp + 0x2c], ecx
cmp edi, 0xffffff4e
jge 0x100aa802
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 + 0x2c], ecx
cmovae edx, ecx
mov dword [esp + 0x30], edx
mov esi, dword [esp + 0x3c]
add ecx, esi
mov ebx, dword [esp + 0x40]
adc edx, ebx
mov dword [esp + 0x18], ecx
sub esp, 0x10
mov dword [esp + 0x2c], edx
mov eax, esp
mov dword [esp + 0x30], edi
movups xmm0, xmmword [esp + 0x28]
movups xmmword [eax], xmm0
lea eax, [esp + 0x28]
push eax
call fcn.100ace80
add esp, 0x14
test esi, esi
jne 0x100aa84d
cmp ebx, 0x100000
jne 0x100aa84d
cmp edi, 0xffffff4e
jle 0x100aa84d
lea eax, [esi + 1]
jmp 0x100aa84f
xor eax, eax
movq xmm1, qword [esp + 0x2c]
sub edi, dword [esp + 0x20]
movq xmm2, qword [esp + 0x3c]
movd xmm0, eax
mov eax, dword [esp + 0x18]
psrlq xmm1, xmm0
movd xmm0, edi
psubq xmm2, xmm1
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
psllq xmm2, xmm0
mov dword [esp + 0x38], eax
movq qword [esp + 0x2c], xmm2
movups xmm0, xmmword [esp + 0x2c]
jmp 0x100aa95f
call fcn.100aad90
mov edx, dword [esp + 0x3c]
lea edi, [esp + 0x18]
mov esi, dword [esp + 0x40]
test al, al
mov ecx, edx
mov eax, esi
je 0x100aa8ca
shld eax, ecx, 2
shl ecx, 2
add ecx, 0xffffffff
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x44]
adc eax, 0xffffffff
mov dword [esp + 0x1c], eax
lea eax, [ecx - 2]
jmp 0x100aa8e5
shld eax, ecx, 1
add ecx, ecx
add ecx, 0xffffffff
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x44]
adc eax, 0xffffffff
mov dword [esp + 0x1c], eax
lea eax, [ecx - 1]
shld esi, edx, 1
mov dword [esp + 0x20], eax
lea eax, [ecx - 1]
movups xmm0, xmmword [edi]
add edx, edx
mov dword [esp + 0x34], eax
add edx, 1
movups xmmword [esp + 0x64], xmm0
adc esi, 0
mov dword [esp + 0x2c], edx
sub esp, 0x10
mov dword [esp + 0x40], esi
movups xmm0, xmmword [esp + 0x3c]
mov eax, esp
movups xmmword [eax], xmm0
lea eax, [esp + 0x3c]
push eax
call fcn.100ace20
movups xmm0, xmmword [edi]
add esp, 0x14
movq xmm1, qword [esp + 0x64]
psrldq xmm0, 8
movd eax, xmm0
sub eax, dword [esp + 0x34]
movd xmm0, eax
mov eax, dword [esp + 0x2c]
psllq xmm1, xmm0
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
movq qword [esp + 0x18], xmm1
mov dword [esp + 0x24], eax
movups xmm0, xmmword [esp + 0x18]
sub esp, 0x10
lea ebp, [esp + 0x74]
mov eax, esp
mov dword [esp + 0x60], ebp
movups xmmword [esp + 0x74], xmm0
movups xmm0, xmmword [esp + 0x4c]
movups xmmword [eax], xmm0
lea eax, [esp + 0x64]
push eax
call fcn.100ace80
mov esi, eax
mov edx, 0xffffff84
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x30]
movups xmm0, xmmword [esi]
psrldq xmm0, 8
movd ecx, xmm0
sub edx, ecx
push edx
push eax
call fcn.100b3f50
movups xmm0, xmmword [esi]
mov eax, dword [esp + 0x40]
push dword [esp + 0x3c]
mov ebx, dword [esp + 0x3c]
add eax, 0x40
psrldq xmm0, 8
movd edi, xmm0
movups xmm0, xmmword [ebp]
push ebx
add edi, eax
psrldq xmm0, 0xc
movd eax, xmm0
movups xmm0, xmmword [ebp]
push eax
psrldq xmm0, 8
movd eax, xmm0
push eax
call fcn.100b4270
movups xmm1, xmmword [esi]
mov ecx, dword [esp + 0x7c]
add eax, 1
push dword [esp + 0x4c]
movaps xmm0, xmm1
mov dword [esp + 0x60], eax
psrldq xmm0, 4
mov ebp, edx
mov ecx, dword [ecx + 4]
adc ebp, 0
movd eax, xmm0
push ebx
mov dword [esp + 0x74], ecx
push eax
movd eax, xmm1
mov dword [esp + 0x7c], 0
push eax
call fcn.100b4270
mov esi, dword [esp + 0x6c]
add esp, 0x40
mov ecx, esi
mov dword [esp + 0x2c], esi
sub ecx, eax
mov dword [esp + 0x30], ebp
mov eax, ebp
mov dword [esp + 0x44], ecx
sbb eax, edx
mov dword [esp + 0x34], edi
mov dword [esp + 0x48], eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x58]
push dword [esp + 0x24]
push ebx
movups xmm1, xmmword [eax]
movaps xmm0, xmm1
psrldq xmm0, 4
movd eax, xmm0
push eax
movd eax, xmm1
push eax
call fcn.100b4270
movups xmm0, xmmword [esp + 0x44]
add esp, 0x10
sub esi, eax
sbb ebp, edx
add esi, 1
adc ebp, 0
push ebp
push esi
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call fcn.100ac560
add esp, 0x20
cmp eax, 2
jne 0x100aaaea
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x40]
dec eax
sub ecx, dword [esp + 0x28]
movsd xmm0, qword [esp + 0x80]
add eax, ecx
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x50]
sub esp, 8
movsd qword [esp], xmm0
call fcn.100aaf20
mov eax, dword [esp + 0x24]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.100e4fca
add esp, 0x6c
ret
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x40]
cmp esi, dword [ebx + 0xc]
jbe 0x100aaafe
mov eax, dword [ebx]
mov ecx, ebx
push esi
call dword [eax]
mov edi, dword [esp + 0x28]
mov dword [ebx + 8], esi
mov esi, dword [esp + 0x14]
jmp 0x100aac3e
cmp esi, 0x11
jle 0x100aab1f
push ebx
sub esp, 0x10
mov eax, esp
push esi
jmp 0x100aa74e
sub esp, 8
lea ecx, [esp + 0x6c]
movsd qword [esp], xmm1
call fcn.100aad90
movups xmm0, xmmword [esp + 0x64]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
lea eax, [esp + 0x28]
push eax
call fcn.100ace80
lea eax, [esp + 0x3c]
push eax
mov eax, 0xffffff84
sub eax, dword [esp + 0x38]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.100b3f50
movups xmm0, xmmword [esp + 0x84]
add esp, 0x10
mov eax, esp
sub esp, 0x10
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [esp + 0x38]
movups xmmword [eax], xmm0
lea eax, [esp + 0x74]
push eax
call fcn.100b2ea0
mov ecx, dword [ebx + 4]
mov edx, eax
mov al, byte [esp + 0x37]
add esp, 0x24
mov edi, dword [esp + 0x28]
mov byte [esp + 0x74], al
lea eax, [esp + 0x64]
movups xmm0, xmmword [edx]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x68], ecx
push eax
push 0
push 1
sub esp, 0x10
mov dword [esp + 0x88], 0
mov eax, esp
mov dword [esp + 0x8c], esi
mov ecx, edi
neg ecx
mov dword [esp + 0x90], ecx
movups xmmword [eax], xmm0
call fcn.100ac170
add esp, 0x20
cmp eax, 2
jne 0x100aac0d
movups xmm0, xmmword [esp + 0x8c]
push ebx
sub esp, 0x10
mov eax, esp
push esi
sub esp, 8
movups xmmword [eax], xmm0
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp], xmm0
jmp 0x100aa761
cmp byte [esp + 0x13], 0
mov eax, dword [esp + 0x68]
jne 0x100aac32
test eax, eax
jle 0x100aac32
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x14]
cmp byte [ecx + eax - 1], 0x30
jne 0x100aac36
dec eax
inc esi
test eax, eax
jg 0x100aac23
jmp 0x100aac36
mov esi, dword [esp + 0x14]
push eax
mov ecx, ebx
call fcn.100b4dd0
mov ecx, dword [esp + 0x78]
sub esi, edi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100e4fca
add esp, 0x6c
ret