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

Disassembly:
sub esp, 0x6c
lea eax, [esp]
push esi
push eax
push dword [esp + 0x80]
push dword [esp + 0x80]
call fcn.10107170
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x10108bb8
push ebx
mov ebx, dword [esp + 0x78]
push ebp
push edi
mov edx, dword [ebx + 0x2e0]
mov ecx, edx
mov ebp, edx
and ecx, 1
and ebp, 0x400
je 0x10108799
lea eax, [esi + 0x26]
jmp 0x101087a2
mov eax, ecx
neg eax
sbb eax, eax
and eax, 6
mov edi, dword [esp + 0x90]
lea ebx, [edi*2 + 0x1a]
add eax, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x8c]
movzx eax, word [eax + ebx]
movzx eax, byte [eax + ebx]
mov ebx, dword [esp + 0x80]
dec eax
cmp eax, 3
ja case.default.0x101087d6
jmp dword [eax*4 + 0x10108bc0]
mov ecx, dword [esp + 0x90]
test cl, 1
jne 0x10108818
test byte [esp + 0x94], 0x40
jne 0x10108818
mov eax, dword [esp + 0x10]
push ecx
push dword [eax + 4]
push str.Page__lu:_hash_key_stored_as_duplicate_item__lu
push dword [ebx + 0x1c]
call fcn.100d0920
mov edx, dword [ebx + 0x2e0]
add esp, 0x10
mov ecx, dword [esp + 0x90]
mov ebp, edx
and edx, 1
and ebp, 0x400
mov dword [esp + 0x18], ebp
test ecx, ecx
jne 0x10108836
mov eax, dword [ebx]
mov edi, dword [esp + 0x8c]
jmp 0x1010885d
test ebp, ebp
je 0x10108841
mov eax, 0x26
jmp 0x1010884a
mov eax, edx
neg eax
sbb eax, eax
and eax, 6
mov edi, dword [esp + 0x8c]
lea eax, [eax + ecx*2]
mov dword [esp + 0x18], ebp
movzx eax, word [eax + edi + 0x18]
cmp dword [esp + 0x18], 0
movzx ebp, ax
mov eax, dword [esp + 0x14]
je 0x1010887c
mov ecx, 0x26
add eax, edi
mov edx, ecx
sub bp, word [eax + ecx]
dec bp
jmp 0x10108894
mov ecx, edx
neg ecx
sbb ecx, ecx
add eax, edi
and ecx, 6
sub bp, word [eax + ecx]
dec bp
neg edx
sbb edx, edx
and edx, 6
mov eax, dword [esp + 0x14]
add eax, edx
mov dword [esp + 0x18], ebp
movzx ebp, bp
xor edx, edx
movzx ecx, word [eax + edi]
xor eax, eax
inc ecx
add ecx, edi
mov dword [esp + 0x14], ecx
cmp ax, bp
jae 0x101088f1
movzx eax, bp
mov dword [esp + 0x1c], eax
mov eax, ecx
nop
movzx ecx, dx
movzx edi, word [ecx + eax]
add ecx, edi
lea eax, [ecx + 4]
cmp eax, dword [esp + 0x1c]
ja 0x101089d9
mov eax, dword [esp + 0x14]
cmp word [ecx + eax + 2], di
jne 0x101089b1
add edx, 4
add edx, edi
cmp dx, bp
jb 0x101088c0
mov ecx, eax
mov eax, dword [esp + 0x10]
or dword [eax + 0x3c], 4
mov eax, dword [esp + 0x94]
test al, 2
jne case.0x101087d6.1
mov eax, dword [ebx + 0x10]
mov edx, fcn.101420f0
test eax, eax
mov dword [esp + 0x78], 0
xorps xmm0, xmm0
mov dword [esp + 0x5c], 0
cmove eax, edx
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x1c], eax
xor edi, edi
xor eax, eax
movlpd qword [esp + 0x4c], xmm0
movlpd qword [esp + 0x54], xmm0
movups xmmword [esp + 0x60], xmm0
cmp ax, bp
jae case.0x101087d6.1
mov edx, dword [esp + 0x60]
movzx eax, di
movzx ebp, word [eax + ecx]
add ecx, 2
add eax, ecx
mov ecx, ebp
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
test edx, edx
je 0x1010898c
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x64]
push eax
push ebx
call dword [esp + 0x28]
add esp, 0xc
test eax, eax
jg 0x10108a01
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
add edi, 4
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x18]
mov edx, eax
add edi, ebp
movzx eax, cx
mov dword [esp + 0x60], edx
cmp di, ax
jae case.0x101087d6.1
mov ecx, dword [esp + 0x14]
jmp 0x10108954
mov eax, dword [esp + 0x94]
test al, 0x40
jne 0x10108b8f
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x90]
push edi
push dword [eax + 4]
push str.Page__lu:_duplicate_item__lu_has_two_different_lengths
jmp 0x10108b84
mov eax, dword [esp + 0x94]
test al, 0x40
jne 0x10108b8f
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x90]
push edi
push dword [eax + 4]
push str.Page__lu:_duplicate_item__lu_has_bad_length
jmp 0x10108b84
mov eax, dword [esp + 0x10]
or dword [eax + 0x3c], 1
jmp case.0x101087d6.1
test ebp, ebp
je 0x10108a19
mov ecx, 0x26
jmp 0x10108a20
neg ecx
sbb ecx, ecx
and ecx, 6
mov esi, dword [esp + 0x84]
lea eax, [edi*2 + 0x1a]
add eax, ecx
mov ecx, dword [esp + 0x8c]
movzx eax, word [eax + ecx]
movq xmm0, qword [eax + ecx]
mov edx, dword [eax + ecx + 8]
movq qword [esp + 0x1c], xmm0
mov eax, dword [esp + 0x20]
cmp eax, dword [esi + 0x20]
ja 0x10108aa1
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 4]
je 0x10108aa1
test eax, eax
je 0x10108aa1
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
lea eax, [esp + 0x28]
mov dword [esp + 0x30], 0
push eax
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 2
mov dword [esp + 0x38], edx
push dword [ecx + 4]
push esi
call fcn.10106b30
add esp, 0xc
mov esi, eax
jmp case.0x101087d6.1
test byte [esp + 0x94], 0x40
jne 0x10108b8f
push eax
mov eax, dword [esp + 0x14]
push edi
push dword [eax + 4]
push str.Page__lu:_offpage_item__lu_has_bad_pgno__lu
push dword [ebx + 0x1c]
call fcn.100d0920
add esp, 0x14
jmp 0x10108b8f
test ebp, ebp
je 0x10108ad8
mov ecx, 0x26
jmp 0x10108adf
neg ecx
sbb ecx, ecx
and ecx, 6
mov edx, dword [esp + 0x8c]
lea eax, [edi*2 + 0x1a]
add eax, ecx
movzx eax, word [eax + edx]
mov eax, dword [eax + edx + 4]
mov edx, dword [esp + 0x84]
cmp eax, dword [edx + 0x20]
ja 0x10108b54
mov ecx, dword [esp + 0x10]
cmp eax, dword [ecx + 4]
je 0x10108b54
test eax, eax
je 0x10108b54
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
lea eax, [esp + 0x28]
movlpd qword [esp + 0x30], xmm0
push eax
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x30], 1
push dword [ecx + 4]
push edx
call fcn.10106b30
mov esi, eax
add esp, 0xc
test esi, esi
jne case.0x101087d6.1
mov eax, dword [esp + 0x10]
or dword [eax + 0x3c], 4
jmp case.0x101087d6.1
test byte [esp + 0x94], 0x40
jne 0x10108b8f
mov eax, dword [esp + 0x10]
push edi
push dword [eax + 4]
push str.Page__lu:_offpage_item__lu_has_bad_page_number
jmp 0x10108b84
test byte [esp + 0x94], 0x40
jne 0x10108b8f
mov eax, dword [esp + 0x10]
push edi
push dword [eax + 4]
push str.Page__lu:_item__lu_has_bad_type
push dword [ebx + 0x1c]
call fcn.100d0920
add esp, 0x10
mov esi, 0xffff8704
push dword [esp + 0x10]
push dword [esp + 0x88]
push dword [ebx + 0x1c]
call fcn.10107550
add esp, 0xc
pop edi
pop ebp
pop ebx
test eax, eax
je 0x10108bb6
test esi, esi
cmove esi, eax
mov eax, esi
pop esi
add esp, 0x6c
ret