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

Disassembly:
sub esp, 0x7c
push ebx
mov ebx, ecx
mov dword [esp + 0x44], 0
push ebp
push esi
push edi
mov eax, dword [ebx]
mov ebp, edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x5c], ebx
mov edi, dword [eax]
mov al, byte [ebx + 0x29]
movzx edx, al
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x78], edi
mov byte [esp + 0x17], al
mov dword [esp + 0x30], edx
cmp edx, 1
ja 0x493329
mov esi, 1
jmp 0x493339
cmp edx, 2
mov esi, 0xa
mov eax, 5
cmove esi, eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x4c], esi
test eax, eax
je 0x49334d
test bp, bp
je 0x49334d
mov ecx, dword [eax]
jmp 0x49334f
xor ecx, ecx
lea eax, [edx + 8]
mov dword [esp + 0x3c], ecx
imul eax, esi
lea edx, [ecx + eax*4]
mov ecx, edi
add edx, edx
call fcn.0041f7a0
mov edx, eax
mov dword [esp + 0x34], edx
test edx, edx
jne 0x49337a
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 edi, edx
lea ecx, [eax + edx]
mov dword [esp + 0x28], edi
movups xmmword [ecx], xmm0
mov dword [esp + 0x38], ecx
movups xmmword [ecx + 0x10], xmm0
add ecx, eax
lea eax, [esi + esi]
mov esi, dword [esp + 0x30]
shl esi, 2
add edx, 0x18
mov dword [esp + 0x7c], esi
nop dword [eax]
mov dword [edx], ecx
lea edx, [edx + 0x20]
dec eax
add ecx, esi
test eax, eax
jg 0x4933b0
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4933db
lea eax, [edx + edx]
mov dword [esp + 0x64], ecx
push eax
push 0
push ecx
call fcn.004a3c90
mov edx, dword [esp + 0x48]
add esp, 0xc
mov eax, dword [esp + 0x70]
mov ecx, 0x30
mov esi, dword [esp + 0x38]
mov eax, dword [eax + 0x1a4]
cmp eax, ecx
cmovb ecx, eax
mov eax, 1
mov word [esi + 0x10], cx
mov cl, byte [esp + 0x17]
mov dword [esp + 0x60], eax
test edx, edx
je 0x49341b
movzx eax, dl
or edx, 0xffffffff
test cl, cl
cmovne eax, edx
mov byte [esi + 0x16], al
mov eax, 1
xor edx, edx
mov dword [esp + 0x74], 0x400
mov dword [esp + 0x40], edx
test cl, cl
je 0x49398e
mov ebp, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x4938cd
add esi, 0x10
mov dword [esp + 0x1c], esi
nop word [eax + eax]
mov ebp, dword [ebx + 0x10]
mov dword [esp + 0x24], ebp
test ebp, ebp
je 0x4938ad
nop
mov al, byte [esi + 6]
xorps xmm0, xmm0
mov edx, dword [esi - 0x10]
mov ecx, edx
mov ebx, dword [esi - 0xc]
not ecx
and ecx, dword [ebp]
mov byte [esp + 0x16], al
mov eax, ebx
not eax
movlpd qword [esp + 0x80], xmm0
and eax, dword [ebp + 4]
or ecx, eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x48], ebx
jne 0x49393a
mov ecx, edx
mov eax, ebx
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x49393a
movzx ebx, word [esi]
mov ax, word [ebp + 0x14]
movzx edi, word [ebp + 0x12]
add ax, bx
movzx esi, ax
movsx ecx, di
movsx edx, si
cmp di, si
jl 0x4934ea
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x4934d0
mov esi, edi
jmp 0x49350c
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x4934dc
lea eax, [edi + 1]
jmp 0x493509
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
jmp 0x493509
lea eax, [ecx + 0x31]
cmp edx, eax
jg 0x49350c
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4934fd
lea eax, [esi + 1]
jmp 0x493509
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, si
movzx esi, ax
mov eax, dword [esp + 0x1c]
mov bp, si
mov dword [esp + 0x18], esi
movsx ecx, bp
movzx edi, word [eax + 4]
movsx edx, di
cmp bp, di
jl 0x49354e
lea eax, [edx + 0x31]
cmp ecx, eax
jg 0x49357b
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x493537
inc esi
jmp 0x493574
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add bp, ax
mov word [esp + 0x18], bp
mov esi, dword [esp + 0x18]
jmp 0x49357b
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x493559
mov esi, edi
jmp 0x493574
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x493565
lea eax, [edi + 1]
jmp 0x493571
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, di
movzx esi, ax
mov dword [esp + 0x18], esi
mov bp, si
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x16]
add ax, bx
mov ebx, dword [esp + 0x2c]
or ebx, dword [ecx + 8]
movzx eax, ax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x48]
or eax, dword [ecx + 0xc]
mov dword [esp + 0x48], eax
mov ah, byte [esp + 0x16]
mov dword [esp + 0x2c], ebx
test ah, ah
jns 0x4935f0
mov edi, dword [esp + 0x5c]
lea eax, [esp + 0x80]
push eax
push ecx
push dword [esp + 0x48]
movzx eax, word [edi + 0x22]
mov ecx, edi
mov edx, dword [edi + 8]
push eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
push eax
call fcn.00492b20
mov edx, dword [esp + 0x94]
mov ah, al
mov ecx, dword [esp + 0x98]
add esp, 0x14
mov byte [esp + 0x16], ah
mov dword [esp + 0x18], edx
jmp 0x4935fe
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx - 8]
mov dword [esp + 0x18], ecx
mov ecx, dword [edx - 4]
mov dword [esp + 0x68], ecx
test ah, ah
js 0x4936b4
mov edi, dword [esp + 0x3c]
movsx ecx, ah
cmp ecx, edi
jge 0x4936b4
mov eax, dword [esp + 0x64]
lea ebx, [eax + ecx*2]
movzx eax, word [ebx]
mov edx, eax
test ax, ax
jne 0x49368f
mov eax, edi
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv edi
cdq
push edx
push eax
call fcn.004233e0
mov di, ax
add esp, 8
mov eax, dword [esp + 0x44]
cmp ax, 0xa
jg 0x493651
movzx eax, di
jmp 0x493666
cwde
cdq
push edx
push eax
call fcn.004233e0
lea ecx, [edi - 0x21]
add esp, 8
add ax, cx
movzx eax, ax
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x74]
add edx, 0xffffffce
add edx, eax
mov eax, dword [esp + 0x5c]
test word [eax + 0x22], cx
lea eax, [edx + 0x10]
movzx ecx, ax
movzx eax, dx
cmove ecx, eax
movzx eax, cx
mov edx, eax
mov word [ebx], ax
mov ebx, dword [esp + 0x2c]
movzx edi, dx
movsx ecx, bp
movsx edx, di
cmp bp, di
jl 0x493829
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x4937fb
mov ah, byte [esp + 0x16]
movzx edx, bp
mov edi, dword [esp + 0x28]
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jle 0x4936e5
mov esi, dword [esp + 0x48]
cmp dword [edi], ebx
jne 0x4936db
cmp dword [edi + 4], esi
jne 0x4936db
mov al, byte [edi + 0x16]
xor al, ah
jge 0x493869
inc ecx
add edi, 0x20
cmp ecx, dword [esp + 0x20]
jl 0x4936c7
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x4c]
cmp ecx, esi
jl 0x49370b
mov ebx, dword [esp + 0x58]
cmp dx, bx
jg 0x493931
jne 0x49370b
cmp bp, word [esp + 0x54]
jge 0x493931
cmp ecx, esi
lea eax, [ecx + 1]
mov edi, ecx
cmovge edi, dword [esp + 0x50]
shl edi, 5
add edi, dword [esp + 0x28]
cmp ecx, esi
cmovge eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or eax, dword [esi - 0xc]
or ecx, dword [esi - 0x10]
mov esi, dword [esp + 0x6c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x68]
mov dword [edi + 0xc], eax
mov al, byte [esp + 0x16]
mov byte [edi + 0x16], al
mov eax, dword [esp + 0x40]
mov word [edi + 0x10], si
mov dword [edi], ecx
mov word [edi + 0x12], dx
lea esi, [eax*4]
mov word [edi + 0x14], bp
mov eax, dword [esp + 0x1c]
push esi
push dword [eax + 8]
push dword [edi + 0x18]
call fcn.004a5830
mov eax, dword [edi + 0x18]
add esp, 0xc
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov dword [esi + eax], ebp
mov esi, dword [esp + 0x4c]
cmp ecx, esi
jl 0x493892
movzx ebx, word [edi + 0x12]
mov ecx, 1
movzx ebp, word [edi + 0x10]
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], ebp
cmp esi, ecx
jbe 0x4937ee
lea eax, [edi + 0x34]
movzx edx, word [eax - 2]
cmp dx, bx
jg 0x4937d5
jne 0x4937de
cmp word [eax], bp
jle 0x4937de
movzx ebp, word [eax]
mov ebx, edx
mov dword [esp + 0x50], ecx
inc ecx
add eax, 0x20
cmp ecx, esi
jl 0x4937c5
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
jmp 0x493892
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x493811
lea eax, [esi + 1]
movzx edx, ax
mov ah, byte [esp + 0x16]
jmp 0x4936b7
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, bp
movzx edx, ax
mov ah, byte [esp + 0x16]
jmp 0x4936b7
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x49383b
mov ah, byte [esp + 0x16]
mov edx, edi
jmp 0x4936b7
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x493851
lea eax, [edi + 1]
movzx edx, ax
mov ah, byte [esp + 0x16]
jmp 0x4936b7
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, di
movzx edx, ax
mov ah, byte [esp + 0x16]
jmp 0x4936b7
movzx eax, word [edi + 0x12]
cmp ax, dx
jl 0x493886
jne 0x493727
mov esi, dword [esp + 0x6c]
cmp word [edi + 0x10], si
jg 0x493727
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
mov ebp, dword [ebp + 0x34]
mov dword [esp + 0x24], ebp
test ebp, ebp
jne 0x493460
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
add esi, 0x20
sub eax, 1
mov dword [esp + 0x1c], esi
mov dword [esp + 0x60], eax
jne 0x493450
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
mov eax, edi
mov dword [esp + 0x28], esi
mov edi, esi
inc edx
mov dword [esp + 0x40], edx
mov esi, eax
mov dword [esp + 0x38], esi
mov eax, ecx
mov dword [esp + 0x60], eax
cmp edx, ebp
jl 0x493435
test ecx, ecx
jne 0x49398a
push str.no_query_solution
push dword [esp + 0x74]
call fcn.00422040
mov ecx, dword [esp + 0x80]
add esp, 8
mov edx, dword [esp + 0x34]
test ecx, ecx
je 0x493974
cmp dword [ecx + 0x208], 0
je 0x493943
call fcn.0041f520
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov ebp, dword [esp + 0x24]
jmp 0x49388e
mov ecx, dword [esp + 0x20]
jmp 0x493896
cmp edx, dword [ecx + 0x114]
jb 0x493974
cmp edx, dword [ecx + 0x118]
jae 0x493974
mov eax, dword [ecx + 0x110]
mov dword [edx], eax
mov eax, 1
dec dword [ecx + 0xfc]
mov dword [ecx + 0x110], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push edx
call fcn.0041f4b0
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x38]
cmp eax, 1
jle 0x4939b3
lea ecx, [edi + 0x20]
lea edx, [eax - 1]
nop dword [eax]
mov ax, word [edi + 0x12]
cmp ax, word [ecx + 0x12]
cmovg edi, ecx
add ecx, 0x20
sub edx, 1
jne 0x4939a0
xor esi, esi
cmp byte [esp + 0x17], 0
jbe 0x4939f3
mov ebp, dword [esp + 0x30]
lea edx, [ebx + 0x30c]
mov eax, dword [edi + 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*4]
mov eax, dword [ebx + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0x38]
mov dword [edx - 0x78], eax
cmp esi, ebp
jl 0x4939c6
mov ebp, dword [esp + 0x44]
mov ax, word [ebx + 0x22]
mov ecx, 0x600
and ax, cx
cmp ax, word [esp + 0x74]
jne 0x493a4f
cmp byte [ebx + 0x28], 0
jne 0x493a4f
test bp, bp
mov ebp, dword [esp + 0x30]
je 0x493a53
mov ecx, dword [esp + 0x7c]
lea eax, [esp + 0x80]
mov edx, dword [ebx + 0xc]
push eax
mov eax, dword [edi + 0x18]
push dword [eax + ecx - 4]
lea eax, [ebp - 1]
mov ecx, ebx
push eax
push 0x200
push edi
call fcn.00492b20
movsx ecx, al
add esp, 0x14
mov eax, dword [ebx + 0xc]
cmp ecx, dword [eax]
jne 0x493a53
mov byte [ebx + 0x28], 2
jmp 0x493a53
mov ebp, dword [esp + 0x30]
mov edx, dword [ebx + 8]
test edx, edx
je 0x493b0a
movzx esi, word [ebx + 0x22]
mov cl, byte [edi + 0x16]
test esi, 0x200
je 0x493a7a
movsx eax, cl
cmp eax, dword [edx]
jne 0x493a9e
mov byte [ebx + 0x28], 2
jmp 0x493a9e
test cl, cl
movzx eax, cl
mov dword [esp + 0x7c], 0
cmovs eax, dword [esp + 0x7c]
mov byte [ebx + 0x24], cl
mov byte [ebx + 0x24], al
mov eax, dword [edi + 8]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x1c], eax
test esi, 0x800
je 0x493b0a
movsx eax, byte [ebx + 0x24]
cmp eax, dword [edx]
jne 0x493b0a
cmp byte [esp + 0x17], 0
jbe 0x493b0a
lea eax, [esp + 0x80]
xorps xmm0, xmm0
push eax
mov eax, dword [edi + 0x18]
lea ecx, [ebp*4]
movlpd qword [esp + 0x84], xmm0
push dword [eax + ecx - 4]
lea eax, [ebp - 1]
mov ecx, ebx
push eax
push 0
push edi
call fcn.00492b20
movsx ecx, al
add esp, 0x14
mov eax, dword [ebx + 8]
cmp ecx, dword [eax]
jne 0x493b0a
mov eax, dword [esp + 0x80]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x84]
mov byte [ebx + 0x25], 1
mov dword [ebx + 0x1c], eax
mov ax, word [edi + 0x10]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x34]
mov word [ebx + 0x20], ax
test ecx, ecx
je 0x493b64
cmp dword [ecx + 0x208], 0
je 0x493b36
call fcn.0041f520
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp edx, dword [ecx + 0x114]
jb 0x493b64
cmp edx, dword [ecx + 0x118]
jae 0x493b64
mov eax, dword [ecx + 0x110]
mov dword [edx], eax
dec dword [ecx + 0xfc]
xor eax, eax
mov dword [ecx + 0x110], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
push edx
call fcn.0041f4b0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret