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

Disassembly:
sub esp, 0xa4
push ebx
push ebp
push esi
mov esi, dword [esp + 0xb4]
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x18], eax
push edi
mov dword [esp + 0x28], eax
xor edi, edi
mov edx, dword [esi]
xor ecx, ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x20], edi
mov ebp, dword [edx + 0x1c]
mov dword [esp + 0x2c], eax
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x78], eax
movq qword [esp + 0x70], xmm0
movlpd qword [esp + 0x44], xmm0
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
mov dword [esp + 0x5c], 0x10
mov eax, dword [edx + 0x28]
mov ebx, dword [edx + 0x1c]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x24], ecx
test eax, eax
je 0x101051a1
push eax
push ebx
call fcn.100dbf50
add esp, 8
test eax, eax
je 0x1010519b
mov eax, 0xffff8702
mov dword [esp + 0x24], eax
jmp 0x101051e3
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov eax, dword [edx + 0x104]
test eax, eax
je 0x101051bf
nop dword [eax + eax]
mov eax, dword [eax + 0x108]
inc ecx
test eax, eax
jne 0x101051b0
mov dword [esp + 0x24], ecx
mov eax, dword [edx + 0x28]
test eax, eax
je 0x101051df
push eax
push ebx
call fcn.100dc5b0
add esp, 8
test eax, eax
je 0x101051df
mov eax, 0xffff8702
mov dword [esp + 0x24], eax
jmp 0x101051e3
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x2c]
push ecx
push 0x1c
push eax
push ebp
call fcn.100dc7a0
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x1010577c
mov edx, dword [esi + 0x13c]
test edx, 0x100
jne 0x10105238
mov eax, dword [esi + 8]
test byte [eax + 0x9c], 1
jne 0x10105238
cmp dword [eax + 0x70], edi
je 0x10105238
mov ebx, 1
mov dword [esp + 0x38], 0x101b
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
jmp 0x10105242
mov dword [esp + 0x38], 0x1b
xor ebx, ebx
mov eax, dword [esp + 0xc4]
cmp eax, 6
jne 0x10105340
mov ecx, ebx
mov dword [esp + 0xb0], edi
and ecx, 1
xorps xmm0, xmm0
shl ecx, 0xc
or ecx, eax
movq qword [esp + 0xa8], xmm0
movups xmmword [esp + 0x98], xmm0
push ecx
test edx, 0x400
je 0x10105295
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0xa0]
push eax
push esi
call fcn.100ecd90
jmp 0x101052bc
mov eax, dword [esi]
mov eax, dword [eax + 0x12c]
cmp dword [eax + 0x14], edi
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0xa0]
push eax
push esi
je 0x101052b7
call fcn.100de0f0
jmp 0x101052bc
call fcn.10103c70
mov ebx, eax
add esp, 0x10
test ebx, ebx
je 0x101052dc
cmp ebx, 0xffff86ec
mov eax, 0xffff86f4
cmove ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x1010577c
mov ecx, dword [esp + 0x1c]
lea ebp, [esp + 0x98]
or ecx, 4
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc0]
test byte [ecx + 0x18], 0x40
je 0x1010550a
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0x50]
push eax
push ecx
push ebp
push esi
call fcn.10104f90
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10105778
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
jmp 0x10105524
mov ebp, dword [esp + 0xbc]
cmp eax, 2
jne 0x10105499
mov eax, dword [esi]
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xc0]
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x7c], xmm0
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [esp + 0x8c], xmm0
mov dword [esp + 0x94], eax
test edx, 0x8000
je 0x10105394
mov eax, esi
jmp 0x101053b0
push 0
lea eax, [esp + 0x14]
push eax
push esi
call fcn.10103a50
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101053dc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x10], eax
mov ecx, dword [ecx + 0x20]
sub ecx, 3
je 0x1010541c
sub ecx, 1
je 0x1010540e
push 0
push str.DBC__put
push dword [esp + 0x38]
call fcn.100d0ac0
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x10105482
push eax
push ecx
push esi
call fcn.10102090
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x10105486
test eax, eax
jne 0x10105486
jmp 0x10105778
lea ecx, [esp + 0x7c]
push ecx
push ebp
push eax
call fcn.101554b0
jmp 0x10105428
lea ecx, [esp + 0x7c]
push ecx
push ebp
push eax
call fcn.1014bc10
add esp, 0xc
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101053dc
test byte [esp + 0x94], 1
je 0x10105455
push dword [esp + 0x7c]
push dword [esp + 0x34]
call fcn.100dc940
add esp, 8
and dword [esp + 0x94], 0xfffffffe
push ebp
push dword [esp + 0x34]
call fcn.101430a0
mov ecx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jne 0x101053e0
or ebx, 2
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], ebx
jmp 0x101053e0
mov eax, dword [esp + 0x18]
mov ebx, eax
mov dword [esp + 0x10], ebx
test eax, eax
jne 0x10105778
jmp 0x101052f2
cmp eax, 0x14
jne 0x101052f9
or dword [ebp + 0x18], 8
test dword [esi + 0x13c], 0x400
mov dword [esp + 0x50], edi
mov dword [esp + 0x5c], 0x440
push 0x1b
je 0x101054ce
lea eax, [esp + 0x48]
push eax
push ebp
push esi
call fcn.100ecd90
jmp 0x101054ee
mov eax, dword [esi]
mov eax, dword [eax + 0x12c]
cmp dword [eax + 0x14], edi
lea eax, [esp + 0x48]
push eax
push ebp
push esi
je 0x101054e9
call fcn.100de0f0
jmp 0x101054ee
call fcn.10103c70
add esp, 0x10
cmp eax, 0xffff86f4
je 0x101052f2
mov ebx, 0xffff86ed
mov dword [esp + 0x10], ebx
jmp 0x10105778
movups xmm0, xmmword [ecx]
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x78], eax
movups xmmword [esp + 0x60], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [esp + 0x70], xmm0
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 0x20]
cmp eax, 3
jne 0x10105541
test dword [ecx + 0x2e0], 0x800
jne 0x1010554a
jmp 0x10105626
cmp eax, 4
jne 0x10105626
mov eax, dword [esi]
cmp dword [eax + 0x20], 4
mov edx, dword [eax + 0x1c]
jne 0x10105567
mov eax, dword [eax + 0x138]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x34], ebx
jmp 0x10105577
mov eax, dword [eax + 0x12c]
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0xc0]
mov dword [esp + 0x18], ecx
mov eax, dword [ebx + 4]
mov dword [esp + 0x30], eax
cmp eax, ecx
jbe 0x101055a8
push ecx
push eax
push edx
call fcn.100d0e70
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10105778
jmp 0x10105626
jae 0x10105626
test byte [ebx + 0x18], 0x40
lea eax, [esp + 0x60]
push eax
push ecx
push edx
je 0x101055d3
call fcn.100dc870
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10105778
mov ecx, dword [esp + 0x64]
jmp 0x10105606
call fcn.100dc800
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10105778
mov eax, dword [esp + 0xc0]
push dword [esp + 0x30]
push dword [eax]
push dword [esp + 0x68]
call fcn.102207f0
mov ecx, dword [esp + 0x3c]
add esp, 0xc
mov ebx, dword [esp + 0x18]
mov eax, ebx
sub eax, ecx
push eax
mov eax, dword [esp + 0x64]
push dword [esp + 0x38]
add eax, ecx
push eax
call fcn.10220d70
add esp, 0xc
mov dword [esp + 0x64], ebx
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x4c]
push dword [esp + 0x2c]
push eax
lea eax, [esp + 0x70]
push eax
push ebp
push esi
call fcn.101058b0
mov ebx, eax
add esp, 0x1c
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10105778
test byte [esp + 0x1c], 4
jne 0x10105778
push eax
lea eax, [esp + 0x40]
push eax
push esi
call fcn.10103a50
mov ebx, eax
add esp, 0xc
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x10105778
push dword [esp + 0x38]
or dword [ebp + 0x18], 8
lea eax, [esp + 0x48]
push eax
push ebp
push dword [esp + 0x48]
call fcn.10103960
mov ebx, eax
mov dword [esp + 0x20], eax
add esp, 0x10
cmp ebx, 0xffff86ec
je 0x101056ad
cmp ebx, 0xffff86f4
jne 0x101056b8
or dword [esp + 0x1c], 2
xor ebx, ebx
mov dword [esp + 0x10], ebx
push dword [esp + 0x3c]
mov dword [esp + 0x3c], ebx
call fcn.10102280
add esp, 4
test eax, eax
je 0x101056e3
mov ebp, dword [esp + 0x14]
test ebx, ebx
jne 0x1010577c
mov ebx, eax
mov dword [esp + 0x10], ebx
jmp 0x1010577c
mov eax, dword [esp + 0x38]
mov ebx, eax
mov dword [esp + 0x10], ebx
test eax, eax
jne 0x10105778
test byte [esp + 0x1c], 2
mov dword [esp + 0x10], ebx
jne 0x10105778
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x44]
call fcn.10101ed0
mov edi, dword [esp + 0x34]
mov ebx, eax
mov eax, dword [esp + 0x28]
add esp, 8
mov dword [esp + 0x10], ebx
test eax, eax
je 0x10105774
test ebx, ebx
jne 0x10105774
test byte [eax + 0x11c], 1
jne 0x10105753
lea ecx, [esp + 0x44]
push ecx
push ebp
push edi
push esi
push eax
call fcn.10102d90
mov ebx, eax
add esp, 0x14
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x10105753
cmp ebx, 0xffff86ed
jne 0x10105774
push dword [esi + 0x10]
lea eax, [esp + 0x24]
push eax
call fcn.10101f30
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x20]
add edi, 0x1c
mov dword [esp + 0x10], ebx
test eax, eax
jne 0x10105723
mov edi, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
push ebx
push 0
push esi
call fcn.10102090
add esp, 0xc
test eax, eax
je 0x10105795
test ebx, ebx
cmove ebx, eax
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x60]
test eax, eax
je 0x101057b2
mov ecx, dword [esp + 0xc0]
cmp eax, dword [ecx]
je 0x101057b2
push eax
push ebp
call fcn.100dc7e0
add esp, 8
mov eax, dword [esp + 0x44]
test eax, eax
je 0x101057c4
push eax
push ebp
call fcn.100dc940
add esp, 8
test dword [esi + 0x13c], 0x20000
je 0x101057e4
push 0
push 4
lea eax, [esi + 0xc0]
push eax
push ebp
call fcn.100f3f70
add esp, 0x10
test edi, edi
je 0x10105801
push dword [esi + 0x10]
push edi
call fcn.10101e30
add esp, 8
test eax, eax
je 0x10105801
test ebx, ebx
cmove ebx, eax
mov dword [esp + 0x10], ebx
mov esi, dword [esp + 0x24]
test esi, esi
jle 0x10105882
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x14]
add ebp, 0x18
test byte [ebp], 0x20
je 0x10105845
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
test edi, edi
je 0x10105841
test byte [esi + 0x18], 1
je 0x10105839
push dword [esi]
push ebx
call fcn.100dc940
add esp, 8
and dword [esi + 0x18], 0xfffffffe
add esi, 0x1c
sub edi, 1
jne 0x10105824
mov esi, dword [esp + 0x24]
test byte [ebp], 1
je 0x1010585b
push dword [ebp - 0x18]
push ebx
call fcn.100dc940
add esp, 8
and dword [ebp], 0xfffffffe
add ebp, 0x1c
mov eax, 0x92492493
mov ecx, ebp
sub ecx, dword [esp + 0x2c]
sub ecx, 0x18
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jl 0x10105814
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x10105897
push eax
push dword [esp + 0x18]
call fcn.100dc7e0
add esp, 8
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xa4
ret