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

Disassembly:
sub esp, 0x6c
mov eax, dword [0x100af380]
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 0x10083416
mov esi, dword [esp + 0x88]
test esi, esi
jle 0x100833e2
test al, al
je 0x100833e2
cmp esi, dword [ebx + 0xc]
jbe 0x100833b6
mov eax, dword [ebx]
mov ecx, ebx
push esi
call dword [eax]
mov dword [ebx + 8], esi
test esi, esi
jle 0x100833cb
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.100907a6
add esp, 0x6c
ret
mov ecx, dword [ebx + 8]
lea edx, [ecx + 1]
cmp edx, dword [ebx + 0xc]
jbe 0x100833f7
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.100907a6
add esp, 0x6c
ret
mov al, byte [esp + 0x98]
test al, 8
jne 0x1008345c
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.10087200
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.100907a6
add esp, 0x6c
ret
mov esi, dword [esp + 0x88]
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], 0
test esi, esi
jns 0x100837ee
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 0x10083573
call fcn.10083a70
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 0x100834e2
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.10085b60
add esp, 0x14
test esi, esi
jne 0x1008352d
cmp ebx, 0x100000
jne 0x1008352d
cmp edi, 0xffffff4e
jle 0x1008352d
lea eax, [esi + 1]
jmp 0x1008352f
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 0x1008363f
call fcn.10083a70
mov edx, dword [esp + 0x3c]
lea edi, [esp + 0x18]
mov esi, dword [esp + 0x40]
test al, al
mov ecx, edx
mov eax, esi
je 0x100835aa
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 0x100835c5
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.10085b00
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.10085b60
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.1008c690
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.1008c9b0
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.1008c9b0
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.1008c9b0
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.10085240
add esp, 0x20
cmp eax, 2
jne 0x100837ca
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.10083c00
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.100907a6
add esp, 0x6c
ret
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x40]
cmp esi, dword [ebx + 0xc]
jbe 0x100837de
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 0x1008391e
cmp esi, 0x11
jle 0x100837ff
push ebx
sub esp, 0x10
mov eax, esp
push esi
jmp 0x1008342e
sub esp, 8
lea ecx, [esp + 0x6c]
movsd qword [esp], xmm1
call fcn.10083a70
movups xmm0, xmmword [esp + 0x64]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
lea eax, [esp + 0x28]
push eax
call fcn.10085b60
lea eax, [esp + 0x3c]
push eax
mov eax, 0xffffff84
sub eax, dword [esp + 0x38]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.1008c690
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.1008b980
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.10084e50
add esp, 0x20
cmp eax, 2
jne 0x100838ed
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 0x10083441
cmp byte [esp + 0x13], 0
mov eax, dword [esp + 0x68]
jne 0x10083912
test eax, eax
jle 0x10083912
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x14]
cmp byte [ecx + eax - 1], 0x30
jne 0x10083916
dec eax
inc esi
test eax, eax
jg 0x10083903
jmp 0x10083916
mov esi, dword [esp + 0x14]
push eax
mov ecx, ebx
call fcn.1008d510
mov ecx, dword [esp + 0x78]
sub esi, edi
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100907a6
add esp, 0x6c
ret