Function at 0x100acb40
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, 0x10103106
mov dword [esp + 0x24], ebp
call fcn.100d96c4
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 + 0x2e]
movzx edx, al
mov dword [esp + 0x64], ebx
mov byte [esp + 0x16], al
mov dword [esp + 0x44], edx
cmp edx, 1
ja 0x100acb94
lea esi, [ebx + 1]
jmp 0x100acba4
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 0x100acbba
cmp word [esp + 0x50], bx
je 0x100acbba
mov ecx, dword [eax]
jmp 0x100acbbc
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.1003ee80
mov edx, eax
add esp, 8
mov dword [esp + 0x28], edx
test edx, edx
jne 0x100acbf9
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 0x100acc21
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x100acc4c
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 0x100acc8c
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 0x100ad0fe
mov edx, dword [esp + 0x24]
jmp 0x100acca4
mov eax, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x100ad004
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 0x100acfe8
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 0x100acfc5
and esi, dword [ebp + 0xc]
and edx, dword [ebp + 8]
or edx, esi
mov esi, dword [esp + 0x18]
jne 0x100ad0b4
test dword [ebp + 0x24], 0x4000
je 0x100acd21
cmp word [esi], 3
jl 0x100ad0b4
movzx edx, word [ebp + 0x14]
add dx, word [esi]
mov cx, word [ebp + 0x12]
call fcn.100434f0
mov dx, word [esi + 4]
movzx ecx, ax
call fcn.100434f0
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 0x100acdba
lea eax, [esp + 0x68]
push eax
mov eax, dword [esp + 0x28]
push ebp
push dword [esp + 0x54]
movzx eax, word [eax + 0x2c]
push eax
mov eax, dword [esp + 0x34]
push ecx
mov ecx, eax
mov edx, dword [eax + 8]
call fcn.100ac2f0
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 0x100acdc8
mov ecx, dword [edx - 8]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx - 4]
mov dword [esp + 0x74], ecx
test ah, ah
js 0x100ace7d
movsx ecx, ah
cmp ecx, dword [esp + 0x2c]
jge 0x100ace7d
mov eax, dword [esp + 0x64]
lea edi, [eax + ecx*2]
movzx eax, word [edi]
mov edx, eax
test ax, ax
jne 0x100ace65
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.10043580
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 + 0x2c], cx
je 0x100ace35
movzx eax, word [eax + 0x14]
cmp ax, dx
jge 0x100ace35
mov esi, eax
movzx eax, si
cmp si, 0xa
jg 0x100ace42
xor eax, eax
jmp 0x100ace55
cwde
cdq
push edx
push eax
call fcn.10043580
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.100434f0
mov edi, dword [esp + 0x38]
add ax, 5
movzx edx, ax
mov ah, byte [esp + 0x17]
jmp 0x100ace87
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 0x100acec4
mov ebp, dword [esp + 0x7c]
cmp dword [esi], ebp
mov ebp, dword [esp + 0x34]
jne 0x100aceba
mov ebp, dword [esp + 0x80]
cmp dword [esi + 4], ebp
mov ebp, dword [esp + 0x34]
jne 0x100aceba
mov al, byte [esi + 0x16]
xor al, ah
jge 0x100ad06d
inc ecx
add esi, 0x20
cmp ecx, dword [esp + 0x1c]
jl 0x100ace93
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x48]
jl 0x100acee6
cmp dx, bx
jg 0x100acfc9
jne 0x100acee6
mov eax, dword [esp + 0x30]
cmp ax, di
jge 0x100acfc9
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 0x100acfc9
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 0x100acfc5
add eax, 0x34
nop
movzx edx, word [eax - 2]
cmp dx, bx
jg 0x100acfb0
jne 0x100acfb9
cmp word [eax], si
jle 0x100acfb9
movzx esi, word [eax]
mov ebx, edx
mov dword [esp + 0x58], ecx
inc ecx
add eax, 0x20
cmp ecx, edi
jl 0x100acfa0
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 0x100accd0
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 0x100accc0
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 0x100acca0
test ecx, ecx
jne 0x100ad0fe
push str.no_query_solution
push dword [esp + 0x7c]
call fcn.100420b0
mov ecx, dword [esp + 0x68]
add esp, 8
mov edx, dword [esp + 0x28]
test ecx, ecx
je 0x100ad0e8
cmp dword [ecx + 0x1e8], 0
je 0x100ad0bd
call fcn.1003eaf0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp ecx, dword [esp + 0x1c]
jge 0x100acec4
movzx eax, word [esi + 0x12]
cmp ax, dx
jl 0x100acfc5
mov edi, dword [esp + 0x54]
jne 0x100acf0a
movzx eax, word [esi + 0x10]
cmp ax, di
jl 0x100acfc5
jne 0x100acf0a
mov eax, dword [esp + 0x30]
cmp word [esi + 0x14], ax
jle 0x100acfc5
jmp 0x100acf0a
mov ecx, dword [esp + 0x1c]
jmp 0x100acfcd
cmp edx, dword [ecx + 0x138]
jb 0x100ad0e8
cmp edx, dword [ecx + 0x13c]
jae 0x100ad0e8
mov eax, dword [ecx + 0x134]
mov dword [edx], eax
mov eax, 1
mov dword [ecx + 0x134], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push edx
call fcn.1003ea80
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 0x100ad12b
lea edx, [ebx + 0x20]
dec esi
nop
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 0x100ad110
mov dword [esp + 0x20], ebx
mov ebp, dword [esp + 0x24]
xor esi, esi
cmp byte [esp + 0x16], 0
jbe 0x100ad16d
lea edx, [ebp + 0x31c]
nop
mov eax, dword [ebx + 0x18]
lea edx, [edx + 0x50]
mov eax, dword [eax + esi*4]
inc esi
mov dword [edx - 0x3c], eax
mov al, byte [eax + 0x10]
mov byte [edx - 0x50], 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 - 0x78], eax
cmp esi, ecx
jl 0x100ad140
jmp 0x100ad171
mov ecx, dword [esp + 0x44]
mov ax, word [ebp + 0x2c]
mov edx, 0x180
and ax, dx
mov edx, 0x100
cmp ax, dx
jne 0x100ad1d0
cmp byte [ebp + 0x33], 0
jne 0x100ad1d0
cmp word [esp + 0x50], 0
je 0x100ad1d0
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.100ac2f0
movsx ecx, al
add esp, 0x14
mov eax, dword [ebp + 0xc]
cmp ecx, dword [eax]
jne 0x100ad1d0
mov byte [ebp + 0x33], 2
mov edi, dword [ebp + 8]
mov byte [ebp + 0x34], 0
test edi, edi
je 0x100ad314
test byte [ebp + 0x2c], 0x80
mov cl, byte [ebx + 0x16]
je 0x100ad1fa
movsx eax, cl
cmp eax, dword [edi]
jne 0x100ad1f3
mov byte [ebp + 0x33], 2
mov esi, edi
jmp 0x100ad2a3
mov byte [ebp + 0x2f], cl
test cl, cl
mov eax, dword [ebx + 8]
mov esi, edi
mov cl, byte [esp + 0x16]
mov dword [ebp + 0x40], eax
mov eax, dword [ebx + 0xc]
mov dword [ebp + 0x44], eax
jg 0x100ad2a7
mov byte [ebp + 0x2f], 0
test cl, cl
je 0x100ad2a7
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 0x100ad29f
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.100ac2f0
mov esi, dword [ebp + 8]
add esp, 0x14
movsx eax, al
cmp eax, dword [esi]
jne 0x100ad2a3
mov eax, dword [esp + 0x80]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x84]
mov byte [ebp + 0x34], 1
mov dword [ebp + 0x44], eax
jmp 0x100ad2a3
mov ebx, dword [esp + 0x20]
mov cl, byte [esp + 0x16]
mov eax, 0x200
test word [ebp + 0x2c], ax
je 0x100ad314
movsx eax, byte [ebp + 0x2f]
cmp eax, dword [esi]
jne 0x100ad314
test cl, cl
je 0x100ad314
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.100ac2f0
movsx ecx, al
add esp, 0x14
mov eax, dword [ebp + 8]
cmp ecx, dword [eax]
jne 0x100ad314
mov eax, dword [esp + 0x80]
mov dword [ebp + 0x40], eax
mov eax, dword [esp + 0x84]
mov byte [ebp + 0x30], 1
mov dword [ebp + 0x44], eax
mov ax, word [ebx + 0x10]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x28]
mov word [ebp + 0x48], ax
test ecx, ecx
je 0x100ad368
cmp dword [ecx + 0x1e8], 0
je 0x100ad340
call fcn.1003eaf0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp edx, dword [ecx + 0x138]
jb 0x100ad368
cmp edx, dword [ecx + 0x13c]
jae 0x100ad368
mov eax, dword [ecx + 0x134]
mov dword [edx], eax
xor eax, eax
mov dword [ecx + 0x134], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push edx
call fcn.1003ea80
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret