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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
mov ebp, ecx
mov dword [esp + 0x4c], edx
push edi
mov ecx, 0x101080ea
mov dword [esp + 0x24], ebp
call fcn.100de193
mov eax, dword [ebp]
xor ebx, ebx
mov dword [esp + 0x78], eax
xor edi, edi
mov dword [esp + 0x58], 0
mov dword [esp + 0x38], edi
mov eax, dword [eax]
mov dword [esp + 0x60], eax
mov al, byte [ebp + 0x2c]
movzx edx, al
mov dword [esp + 0x64], ebx
mov byte [esp + 0x16], al
mov dword [esp + 0x44], edx
cmp edx, 1
ja 0x100b06b4
lea esi, [ebx + 1]
jmp 0x100b06c4
cmp edx, 2
mov esi, 0xa
mov eax, 5
cmove esi, eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x48], esi
test eax, eax
je 0x100b06da
cmp word [esp + 0x50], bx
je 0x100b06da
mov ecx, dword [eax]
jmp 0x100b06dc
xor ecx, ecx
lea eax, [edx*4]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x5c], eax
add eax, 0x20
imul eax, esi
add eax, ecx
mov ecx, dword [esp + 0x60]
add eax, eax
cdq
push edx
push eax
call fcn.1003fa40
mov edx, eax
add esp, 8
mov dword [esp + 0x28], edx
test edx, edx
jne 0x100b0719
lea eax, [edx + 7]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov eax, esi
xorps xmm0, xmm0
shl eax, 5
mov ebp, edx
lea ecx, [eax + edx]
mov dword [esp + 0x3c], ebp
movups xmmword [ecx], xmm0
mov dword [esp + 0x20], ecx
movups xmmword [ecx + 0x10], xmm0
add ecx, eax
lea eax, [esi + esi]
mov esi, dword [esp + 0x5c]
add edx, 0x18
mov dword [edx], ecx
lea edx, [edx + 0x20]
dec eax
add ecx, esi
test eax, eax
jg 0x100b0741
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x100b076c
lea eax, [edx + edx]
mov dword [esp + 0x64], ecx
push eax
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x38]
add esp, 0xc
mov eax, dword [esp + 0x78]
mov ecx, 0x30
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0x84]
cmp eax, ecx
cmovb ecx, eax
mov eax, 1
mov word [esi + 0x10], cx
mov cl, byte [esp + 0x16]
mov dword [esp + 0x40], eax
test edx, edx
je 0x100b07ac
movzx eax, dl
or edx, 0xffffffff
test cl, cl
cmovne eax, edx
mov byte [esi + 0x16], al
mov eax, 1
mov dword [esp + 0x4c], ebx
test cl, cl
je 0x100b0c41
mov edx, dword [esp + 0x24]
jmp 0x100b07c4
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x100b0b24
add esi, 0x10
mov dword [esp + 0x18], esi
nop dword [eax]
mov ebp, dword [edx + 0x3c]
mov dword [esp + 0x34], ebp
test ebp, ebp
je 0x100b0b08
nop
mov al, byte [esi + 6]
xorps xmm0, xmm0
mov edx, dword [esi - 0x10]
mov ecx, edx
mov esi, dword [esi - 0xc]
not ecx
and ecx, dword [ebp]
mov byte [esp + 0x17], al
mov eax, esi
not eax
movlpd qword [esp + 0x68], xmm0
and eax, dword [ebp + 4]
or ecx, eax
jne 0x100b0ae5
and esi, dword [ebp + 0xc]
and edx, dword [ebp + 8]
or edx, esi
mov esi, dword [esp + 0x18]
jne 0x100b0bd4
test dword [ebp + 0x24], 0x4000
je 0x100b0841
cmp word [esi], 3
jl 0x100b0bd4
movzx edx, word [ebp + 0x14]
add dx, word [esi]
mov cx, word [ebp + 0x12]
call fcn.100441b0
mov dx, word [esi + 4]
movzx ecx, ax
call fcn.100441b0
mov edx, dword [esp + 0x18]
movzx esi, ax
lea ecx, [edx - 0x10]
mov ax, word [ebp + 0x16]
mov dword [esp + 0x30], esi
add ax, word [edx]
movzx eax, ax
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
or eax, dword [ecx]
mov dword [esp + 0x7c], eax
mov eax, dword [ebp + 0xc]
or eax, dword [ecx + 4]
mov dword [esp + 0x80], eax
mov ah, byte [esp + 0x17]
test ah, ah
jns 0x100b08da
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x28]
push ebp
push dword [esp + 0x54]
movzx eax, word [eax + 0x28]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, eax
mov edx, dword [eax + 8]
call fcn.100afdb0
mov ecx, dword [esp + 0x80]
mov ah, al
mov dword [esp + 0x88], ecx
add esp, 0x14
mov ecx, dword [esp + 0x68]
mov byte [esp + 0x17], ah
mov dword [esp + 0x68], ecx
jmp 0x100b08e8
mov ecx, dword [edx - 8]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx - 4]
mov dword [esp + 0x74], ecx
test ah, ah
js 0x100b099d
movsx ecx, ah
cmp ecx, dword [esp + 0x2c]
jge 0x100b099d
mov eax, dword [esp + 0x64]
lea edi, [eax + ecx*2]
movzx eax, word [edi]
mov edx, eax
test ax, ax
jne 0x100b0985
mov eax, dword [esp + 0x50]
movzx esi, ax
mov eax, dword [esp + 0x2c]
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv dword [esp + 0x2c]
cdq
push edx
push eax
call fcn.10044240
mov edx, dword [esp + 0x58]
add esp, 8
lea ecx, [edx - 0x32]
add ax, cx
mov ecx, 0x4000
movzx ebp, ax
mov eax, dword [esp + 0x24]
test word [eax + 0x28], cx
je 0x100b0955
movzx eax, word [eax + 0x2a]
cmp ax, dx
jge 0x100b0955
mov esi, eax
movzx eax, si
cmp si, 0xa
jg 0x100b0962
xor eax, eax
jmp 0x100b0975
cwde
cdq
push edx
push eax
call fcn.10044240
add esp, 8
sub ax, 0x21
movzx eax, ax
mov esi, dword [esp + 0x30]
add eax, ebp
mov ebp, dword [esp + 0x34]
movzx edx, ax
mov word [edi], ax
mov ecx, esi
call fcn.100441b0
mov edi, dword [esp + 0x38]
add ax, 5
movzx edx, ax
mov ah, byte [esp + 0x17]
jmp 0x100b09a7
movzx edx, si
sub esi, 2
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x3c]
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
jle 0x100b09e4
mov ebp, dword [esp + 0x7c]
cmp dword [esi], ebp
mov ebp, dword [esp + 0x34]
jne 0x100b09da
mov ebp, dword [esp + 0x80]
cmp dword [esi + 4], ebp
mov ebp, dword [esp + 0x34]
jne 0x100b09da
mov al, byte [esi + 0x16]
xor al, ah
jge 0x100b0b8d
inc ecx
add esi, 0x20
cmp ecx, dword [esp + 0x1c]
jl 0x100b09b3
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x48]
jl 0x100b0a06
cmp dx, bx
jg 0x100b0ae9
jne 0x100b0a06
mov eax, dword [esp + 0x30]
cmp ax, di
jge 0x100b0ae9
cmp ecx, dword [esp + 0x48]
lea eax, [ecx + 1]
mov edi, dword [esp + 0x54]
mov esi, ecx
cmovge esi, dword [esp + 0x58]
shl esi, 5
add esi, dword [esp + 0x3c]
cmp ecx, dword [esp + 0x48]
cmovge eax, ecx
mov dword [esp + 0x1c], eax
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x18]
or ecx, dword [eax - 0x10]
mov eax, dword [ebp + 0xc]
mov ebp, dword [esp + 0x18]
or eax, dword [ebp - 0xc]
mov dword [esi + 4], eax
mov eax, dword [esp + 0x68]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x30]
mov word [esi + 0x14], ax
mov al, byte [esp + 0x17]
mov byte [esi + 0x16], al
mov eax, dword [esp + 0x4c]
mov word [esi + 0x10], di
mov dword [esi], ecx
mov word [esi + 0x12], dx
lea edi, [eax*4]
mov eax, ebp
push edi
push dword [eax + 8]
push dword [esi + 0x18]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x18]
add esp, 0xc
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov dword [edi + eax], ebp
mov edi, dword [esp + 0x48]
cmp ecx, edi
jl 0x100b0ae9
mov eax, dword [esp + 0x3c]
mov ecx, 1
mov dword [esp + 0x58], 0
movzx esi, word [eax + 0x10]
movzx ebx, word [eax + 0x12]
mov dword [esp + 0x38], esi
cmp edi, ecx
jbe 0x100b0ae5
add eax, 0x34
nop
movzx edx, word [eax - 2]
cmp dx, bx
jg 0x100b0ad0
jne 0x100b0ad9
cmp word [eax], si
jle 0x100b0ad9
movzx esi, word [eax]
mov ebx, edx
mov dword [esp + 0x58], ecx
inc ecx
add eax, 0x20
cmp ecx, edi
jl 0x100b0ac0
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ebp, dword [ebp + 0x34]
mov edi, dword [esp + 0x38]
mov dword [esp + 0x34], ebp
test ebp, ebp
jne 0x100b07f0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x40]
add esi, 0x20
sub eax, 1
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], eax
jne 0x100b07e0
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov eax, ebp
mov dword [esp + 0x3c], esi
mov ebp, esi
mov dword [esp + 0x40], ecx
mov esi, eax
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x20], esi
mov dword [esp + 0x4c], eax
cmp eax, dword [esp + 0x44]
jl 0x100b07c0
test ecx, ecx
jne 0x100b0c41
push str.no_query_solution
push dword [esp + 0x7c]
call fcn.10042d30
mov ecx, dword [esp + 0x68]
add esp, 8
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x100b0c2b
cmp dword [ecx + 0x1f8], 0
je 0x100b0bdd
call fcn.1003f690
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp ecx, dword [esp + 0x1c]
jge 0x100b09e4
movzx eax, word [esi + 0x12]
cmp ax, dx
jl 0x100b0ae5
mov edi, dword [esp + 0x54]
jne 0x100b0a2a
movzx eax, word [esi + 0x10]
cmp ax, di
jl 0x100b0ae5
jne 0x100b0a2a
mov eax, dword [esp + 0x30]
cmp word [esi + 0x14], ax
jle 0x100b0ae5
jmp 0x100b0a2a
mov ecx, dword [esp + 0x1c]
jmp 0x100b0aed
cmp edx, dword [ecx + 0x14c]
jae 0x100b0c2b
cmp edx, dword [ecx + 0x144]
jb 0x100b0c08
mov eax, dword [ecx + 0x140]
mov dword [edx], eax
mov eax, 1
mov dword [ecx + 0x140], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp edx, dword [ecx + 0x148]
jb 0x100b0c2b
mov eax, dword [ecx + 0x138]
mov dword [edx], eax
mov eax, 1
mov dword [ecx + 0x138], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push edx
call fcn.1003f620
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x20]
cmp esi, 1
jle 0x100b0c6d
lea edx, [ebx + 0x20]
dec esi
mov ax, word [ebx + 0x12]
mov ecx, edx
cmp ax, word [edx + 0x12]
cmovle ecx, ebx
add edx, 0x20
mov ebx, ecx
sub esi, 1
jne 0x100b0c52
mov dword [esp + 0x20], ebx
mov ebp, dword [esp + 0x24]
xor esi, esi
cmp byte [esp + 0x16], 0
jbe 0x100b0cb0
lea edx, [ebp + 0x324]
mov eax, dword [ebx + 0x18]
lea edx, [edx + 0x58]
mov eax, dword [eax + esi*4]
inc esi
mov dword [edx - 0x44], eax
mov al, byte [eax + 0x10]
mov byte [edx - 0x58], al
movzx eax, al
lea ecx, [eax + eax*8]
mov eax, dword [ebp + 4]
mov eax, dword [eax + ecx*8 + 0x34]
mov ecx, dword [esp + 0x44]
mov dword [edx - 0x88], eax
cmp esi, ecx
jl 0x100b0c80
jmp 0x100b0cb4
mov ecx, dword [esp + 0x44]
mov ax, word [ebp + 0x28]
mov edx, 0x180
and ax, dx
mov edx, 0x100
cmp ax, dx
jne 0x100b0d13
cmp byte [ebp + 0x2f], 0
jne 0x100b0d13
cmp word [esp + 0x50], 0
je 0x100b0d13
lea eax, [esp + 0x80]
push eax
mov eax, dword [ebx + 0x18]
lea edx, [ecx*4]
push dword [eax + edx - 4]
mov edx, dword [ebp + 0xc]
lea eax, [ecx - 1]
push eax
push 0x80
push ebx
mov ecx, ebp
call fcn.100afdb0
movsx ecx, al
add esp, 0x14
mov eax, dword [ebp + 0xc]
cmp ecx, dword [eax]
jne 0x100b0d13
mov byte [ebp + 0x2f], 2
and dword [ebp + 0x30], 0xfffffffb
mov edi, dword [ebp + 8]
test edi, edi
je 0x100b0e57
test byte [ebp + 0x28], 0x80
mov cl, byte [ebx + 0x16]
je 0x100b0d3d
movsx eax, cl
cmp eax, dword [edi]
jne 0x100b0d36
mov byte [ebp + 0x2f], 2
mov esi, edi
jmp 0x100b0de6
mov byte [ebp + 0x2d], cl
test cl, cl
mov eax, dword [ebx + 8]
mov esi, edi
mov cl, byte [esp + 0x16]
mov dword [ebp + 0x48], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0x4c], eax
jg 0x100b0dea
mov byte [ebp + 0x2d], 0
test cl, cl
je 0x100b0dea
mov eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [eax + ecx - 4]
mov eax, dword [ebx + 0x24]
and eax, 0x104
cmp eax, 0x104
setne cl
bt dword [ebx + 0x24], 0xc
setae al
test al, cl
je 0x100b0de2
lea eax, [esp + 0x80]
xorps xmm0, xmm0
push eax
mov eax, dword [esp + 0x48]
mov edx, edi
push ebx
mov ebx, dword [esp + 0x28]
dec eax
push eax
push 0x800
push ebx
mov ecx, ebp
movlpd qword [esp + 0x94], xmm0
call fcn.100afdb0
mov esi, dword [ebp + 8]
add esp, 0x14
movsx eax, al
cmp eax, dword [esi]
jne 0x100b0de6
mov eax, dword [esp + 0x80]
or dword [ebp + 0x30], 4
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x4c], eax
jmp 0x100b0de6
mov ebx, dword [esp + 0x20]
mov cl, byte [esp + 0x16]
mov eax, 0x200
test word [ebp + 0x28], ax
je 0x100b0e57
movsx eax, byte [ebp + 0x2d]
cmp eax, dword [esi]
jne 0x100b0e57
test cl, cl
je 0x100b0e57
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x80]
push eax
mov eax, dword [ebx + 0x18]
xorps xmm0, xmm0
mov edx, esi
movlpd qword [esp + 0x84], xmm0
push dword [eax + ecx - 4]
mov eax, dword [esp + 0x4c]
mov ecx, ebp
dec eax
push eax
push 0
push ebx
call fcn.100afdb0
movsx ecx, al
add esp, 0x14
mov eax, dword [ebp + 8]
cmp ecx, dword [eax]
jne 0x100b0e57
mov eax, dword [esp + 0x80]
or dword [ebp + 0x30], 8
mov dword [ebp + 0x48], eax
mov eax, dword [esp + 0x84]
mov dword [ebp + 0x4c], eax
mov ax, word [ebx + 0x10]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x28]
mov word [ebp + 0x34], ax
test ecx, ecx
je 0x100b0ecb
cmp dword [ecx + 0x1f8], 0
je 0x100b0e83
call fcn.1003f690
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp edx, dword [ecx + 0x14c]
jae 0x100b0ecb
cmp edx, dword [ecx + 0x144]
jb 0x100b0eab
mov eax, dword [ecx + 0x140]
mov dword [edx], eax
xor eax, eax
mov dword [ecx + 0x140], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp edx, dword [ecx + 0x148]
jb 0x100b0ecb
mov eax, dword [ecx + 0x138]
mov dword [edx], eax
xor eax, eax
mov dword [ecx + 0x138], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push edx
call fcn.1003f620
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret