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

Disassembly:
sub esp, 0x6c
mov eax, dword [esp + 0x70]
push ebx
push ebp
push esi
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
push edi
mov dword [esp + 0x4c], 0
mov ebp, dword [ecx]
mov cl, byte [eax + 0x29]
movzx edx, cl
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x70], ebp
mov byte [esp + 0x13], cl
mov dword [esp + 0x30], edx
cmp edx, 1
ja 0x490e01
mov edi, 1
jmp 0x490e11
cmp edx, 2
mov edi, 0xa
mov ecx, 5
cmove edi, ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x48], edi
test eax, eax
je 0x490e2b
cmp word [esp + 0x84], 0
je 0x490e2b
mov ecx, dword [eax]
jmp 0x490e2d
xor ecx, ecx
lea eax, [edx*4]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], eax
add eax, 0x20
imul eax, edi
add eax, ecx
add eax, eax
cdq
mov ecx, eax
mov esi, edx
test ebp, ebp
je 0x490e76
cmp byte [ebp + 0x41], 0
jne 0x490e96
cmp byte [ebp + 0xfa], 0
je 0x490e76
movzx eax, word [ebp + 0xf8]
cdq
cmp esi, edx
jb 0x490ea3
ja 0x490e70
cmp ecx, eax
jbe 0x490ea3
inc dword [ebp + 0x108]
push esi
push ecx
call fcn.00461c40
mov ebx, eax
mov dword [esp + 0x28], eax
add esp, 8
test ebx, ebx
jne 0x490ee2
test ebp, ebp
je 0x490e92
mov byte [ebp + 0x41], 1
test ebx, ebx
jne 0x490ee2
pop edi
pop esi
pop ebp
mov eax, 7
pop ebx
add esp, 0x6c
ret
mov ebx, dword [ebp + 0x110]
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x490eb9
inc dword [ebp + 0x10c]
jmp 0x490e76
mov eax, dword [ebx]
mov dword [ebp + 0x110], eax
mov eax, dword [ebp + 0xfc]
inc eax
mov dword [ebp + 0xfc], eax
inc dword [ebp + 0x104]
cmp eax, dword [ebp + 0x100]
jle 0x490ee2
mov dword [ebp + 0x100], eax
mov eax, edi
lea edx, [ebx + 0x18]
shl eax, 5
mov ebp, ebx
lea esi, [eax + ebx]
mov dword [esp + 0x28], ebp
xor ecx, ecx
mov dword [esp + 0x2c], esi
mov dword [esi], ecx
mov dword [esi + 4], ecx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], ecx
mov dword [esi + 0x1c], ecx
lea ecx, [eax + esi]
lea eax, [edi + edi]
mov edi, dword [esp + 0x5c]
lea ebx, [ebx]
mov dword [edx], ecx
lea edx, [edx + 0x20]
dec eax
add ecx, edi
test eax, eax
jg 0x490f20
mov edx, dword [esp + 0x34]
test edx, edx
je 0x490f4b
lea eax, [edx + edx]
mov dword [esp + 0x60], ecx
push eax
push 0
push ecx
call fcn.004c2200
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x6c]
mov ecx, 0x30
mov eax, dword [eax + 0x1a8]
cmp eax, ecx
cmovb ecx, eax
mov eax, 1
mov word [esi + 0x10], cx
mov cl, byte [esp + 0x13]
mov dword [esp + 0x58], eax
test edx, edx
je 0x490f87
movzx eax, dl
or edx, 0xffffffff
test cl, cl
cmovne eax, edx
mov byte [esi + 0x16], al
mov eax, 1
xor edi, edi
mov dword [esp + 0x38], edi
test cl, cl
je 0x491580
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x4912f3
add esi, 0x10
mov dword [esp + 0x18], esi
mov ebp, dword [edx + 0x10]
mov dword [esp + 0x24], ebp
test ebp, ebp
je 0x4912cf
mov bh, byte [esi + 6]
mov edx, dword [esi - 0x10]
mov ecx, edx
mov byte [esp + 0x12], bh
not ecx
mov ebx, dword [esi - 0xc]
mov eax, ebx
and ecx, dword [ebp]
not eax
and eax, dword [ebp + 4]
or ecx, eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
jne 0x4914ca
mov ecx, edx
mov eax, ebx
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x4914ca
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 0x491052
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x491038
mov esi, edi
jmp 0x491074
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x491044
lea eax, [edi + 1]
jmp 0x491071
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
jmp 0x491071
lea eax, [ecx + 0x31]
cmp edx, eax
jg 0x491074
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x491065
lea eax, [esi + 1]
jmp 0x491071
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 + 0x18]
mov bp, si
mov dword [esp + 0x14], esi
movsx ecx, bp
movzx edi, word [eax + 4]
movsx edx, di
cmp bp, di
jl 0x4910b6
lea eax, [edx + 0x31]
cmp ecx, eax
jg 0x4910e3
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x49109f
inc esi
jmp 0x4910dc
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add bp, ax
mov word [esp + 0x14], bp
mov esi, dword [esp + 0x14]
jmp 0x4910e3
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x4910c1
mov esi, edi
jmp 0x4910dc
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4910cd
lea eax, [edi + 1]
jmp 0x4910d9
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 + 0x14], esi
mov bp, si
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + 0x16]
add ax, bx
movzx eax, ax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x3c]
or eax, dword [ecx + 8]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x40]
or eax, dword [ecx + 0xc]
mov dword [esp + 0x40], eax
mov ah, byte [esp + 0x12]
test ah, ah
jns 0x491360
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x74]
push eax
push ecx
push dword [esp + 0x40]
movzx eax, word [edx + 0x22]
push eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
push eax
push dword [edx + 8]
push edx
call fcn.00490310
mov edx, dword [esp + 0x94]
mov ah, al
add esp, 0x1c
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x74]
mov byte [esp + 0x12], ah
mov dword [esp + 0x14], edx
test ah, ah
jns 0x491372
movzx esi, bp
mov edi, dword [esp + 0x28]
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
jle 0x49119d
mov edx, dword [esp + 0x3c]
mov bl, ah
cmp dword [edi], edx
jne 0x491193
mov edx, dword [esp + 0x40]
cmp dword [edi + 4], edx
mov edx, dword [esp + 0x20]
jne 0x491193
mov al, byte [edi + 0x16]
xor al, ah
jge 0x49148d
inc ecx
add edi, 0x20
cmp ecx, dword [esp + 0x1c]
jl 0x491171
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
cmp ecx, edx
jl 0x4911c3
mov ebx, dword [esp + 0x54]
cmp si, bx
jg 0x4914c1
jne 0x4911c3
cmp bp, word [esp + 0x50]
jge 0x4914c1
mov bh, byte [esp + 0x12]
lea eax, [ecx + 1]
cmp ecx, edx
mov edi, ecx
cmovge edi, dword [esp + 0x4c]
shl edi, 5
add edi, dword [esp + 0x28]
cmp ecx, edx
cmovge eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or eax, dword [edx - 0xc]
or ecx, dword [edx - 0x10]
mov edx, dword [esp + 0x68]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x44]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 0x38]
mov word [edi + 0x12], si
mov dword [edi], ecx
mov word [edi + 0x10], dx
lea esi, [eax*4]
mov word [edi + 0x14], bp
mov eax, dword [esp + 0x18]
push esi
mov byte [edi + 0x16], bh
push dword [eax + 8]
push dword [edi + 0x18]
call fcn.004c1700
mov eax, dword [edi + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x48]
mov ebp, dword [esp + 0x24]
mov dword [esi + eax], ebp
cmp ecx, edi
jl 0x4912b1
mov eax, dword [esp + 0x28]
mov ecx, 1
mov dword [esp + 0x4c], 0
movzx ebx, word [eax + 0x12]
movzx ebp, word [eax + 0x10]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], ebp
cmp edi, ecx
jbe 0x4912a9
add eax, 0x34
lea esp, [esp]
movzx edx, word [eax - 2]
cmp dx, bx
jg 0x491290
jne 0x491299
cmp word [eax], bp
jle 0x491299
movzx ebp, word [eax]
mov ebx, edx
mov dword [esp + 0x4c], ecx
inc ecx
add eax, 0x20
cmp ecx, edi
jl 0x491280
mov dword [esp + 0x50], ebp
mov dword [esp + 0x54], ebx
mov ebp, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov ebp, dword [ebp + 0x34]
mov dword [esp + 0x24], ebp
test ebp, ebp
jne 0x490fc4
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x58]
add esi, 0x20
sub eax, 1
mov dword [esp + 0x18], esi
mov dword [esp + 0x58], eax
jne 0x490fb5
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, ebp
mov dword [esp + 0x28], esi
mov ebp, esi
inc edi
mov dword [esp + 0x38], edi
mov esi, eax
mov dword [esp + 0x2c], esi
mov eax, ecx
mov dword [esp + 0x58], eax
cmp edi, ebx
jl 0x490fa0
test ecx, ecx
jne 0x49157c
push str.no_query_solution
push dword [esp + 0x70]
call fcn.00453920
mov ecx, dword [esp + 0x78]
add esp, 8
test ecx, ecx
je 0x491508
cmp dword [ecx + 0x208], 0
je 0x4914d3
push dword [esp + 0x20]
push ecx
call fcn.00438370
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
mov edx, dword [esp + 0x18]
mov ecx, dword [edx - 8]
mov dword [esp + 0x14], ecx
mov ecx, dword [edx - 4]
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0x34]
movsx ecx, ah
cmp ecx, edi
jge 0x491162
mov eax, dword [esp + 0x60]
lea ebx, [eax + ecx*2]
movzx eax, word [ebx]
mov edx, eax
test ax, ax
jne 0x491401
mov eax, edi
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv edi
cdq
push edx
push eax
call fcn.00461980
mov di, ax
add esp, 8
mov eax, dword [esp + 0x84]
cmp ax, 0xa
jg 0x4913bc
movzx eax, di
jmp 0x4913d1
cwde
cdq
push edx
push eax
call fcn.00461980
lea ecx, [edi - 0x21]
add esp, 8
add ax, cx
movzx eax, ax
mov edx, dword [esp + 0x84]
mov ecx, 0x400
add edx, 0xffffffce
add edx, eax
mov eax, dword [esp + 0x80]
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
movzx edi, dx
movsx ecx, bp
movsx edx, di
cmp bp, di
jl 0x49144d
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x49141f
mov ah, byte [esp + 0x12]
jmp 0x491162
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x491435
lea eax, [esi + 1]
movzx esi, ax
mov ah, byte [esp + 0x12]
jmp 0x491165
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, bp
movzx esi, ax
mov ah, byte [esp + 0x12]
jmp 0x491165
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x49145f
mov ah, byte [esp + 0x12]
mov esi, edi
jmp 0x491165
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x491475
lea eax, [edi + 1]
movzx esi, ax
mov ah, byte [esp + 0x12]
jmp 0x491165
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, di
movzx esi, ax
mov ah, byte [esp + 0x12]
jmp 0x491165
movzx eax, word [edi + 0x12]
mov dword [esp + 0x20], edx
cmp ax, si
jl 0x4912a9
mov bh, bl
mov dword [esp + 0x20], edx
jne 0x4911e3
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x68]
cmp word [edi + 0x10], dx
jle 0x4912a9
jmp 0x4911e3
mov ebp, dword [esp + 0x24]
jmp 0x4912b1
mov ecx, dword [esp + 0x1c]
jmp 0x4912b5
mov ebx, dword [esp + 0x20]
cmp ebx, dword [ecx + 0x114]
jb 0x49150c
cmp ebx, dword [ecx + 0x118]
jae 0x49150c
mov eax, dword [ecx + 0x110]
pop edi
mov dword [ebx], eax
mov eax, 1
dec dword [ecx + 0xfc]
pop esi
pop ebp
mov dword [ecx + 0x110], ebx
pop ebx
add esp, 0x6c
ret
mov ebx, dword [esp + 0x20]
cmp dword [section..data], 0
je 0x491565
mov eax, dword [0x50bf70]
test eax, eax
je 0x491528
push eax
call dword [0x509054]
add esp, 4
push ebx
call dword [0x509030]
sub dword [0x50bdf0], eax
dec dword [0x50be14]
push ebx
call dword [0x509028]
mov eax, dword [0x50bf70]
add esp, 8
test eax, eax
je 0x49156f
push eax
call dword [0x50905c]
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
push ebx
call dword [0x509028]
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x6c
ret
mov ebx, dword [esp + 0x20]
cmp eax, 1
jle 0x4915ab
lea ecx, [esi + 0x20]
lea edx, [eax - 1]
jmp 0x491590
mov ax, word [esi + 0x12]
cmp ax, word [ecx + 0x12]
cmovg esi, ecx
add ecx, 0x20
sub edx, 1
jne 0x491590
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x80]
xor esi, esi
cmp byte [esp + 0x13], 0
mov ebp, dword [esp + 0x2c]
jbe 0x4915fd
mov ebx, dword [esp + 0x30]
lea edx, [edi + 0x30c]
lea esp, [esp]
mov eax, dword [ebp + 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 [edi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 0x38]
mov dword [edx - 0x78], eax
cmp esi, ebx
jl 0x4915d0
mov ebx, dword [esp + 0x20]
mov ax, word [edi + 0x22]
mov ecx, 0x600
and ax, cx
mov ecx, 0x400
cmp ax, cx
jne 0x49165a
cmp byte [edi + 0x28], 0
jne 0x49165a
cmp word [esp + 0x84], 0
je 0x49165a
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x74]
push eax
mov eax, dword [ebp + 0x18]
push dword [eax + ecx - 4]
mov eax, dword [esp + 0x38]
dec eax
push eax
push 0x200
push ebp
push dword [edi + 0xc]
push edi
call fcn.00490310
movsx ecx, al
add esp, 0x1c
mov eax, dword [edi + 0xc]
cmp ecx, dword [eax]
jne 0x49165a
mov byte [edi + 0x28], 2
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x49170b
movzx esi, word [edi + 0x22]
mov dl, byte [ebp + 0x16]
test esi, 0x200
je 0x491681
movsx eax, dl
cmp eax, dword [ecx]
jne 0x4916a5
mov byte [edi + 0x28], 2
jmp 0x4916a5
test dl, dl
movzx eax, dl
mov dword [esp + 0x6c], 0
cmovs eax, dword [esp + 0x6c]
mov byte [edi + 0x24], dl
mov byte [edi + 0x24], al
mov eax, dword [ebp + 8]
mov dword [edi + 0x18], eax
mov eax, dword [ebp + 0xc]
mov dword [edi + 0x1c], eax
test esi, 0x800
je 0x49170b
movsx eax, byte [edi + 0x24]
cmp eax, dword [ecx]
jne 0x49170b
cmp byte [esp + 0x13], 0
jbe 0x49170b
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x74]
push eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
push dword [eax + edx - 4]
mov eax, dword [esp + 0x38]
dec eax
push eax
push 0
push ebp
push ecx
push edi
call fcn.00490310
movsx ecx, al
add esp, 0x1c
mov eax, dword [edi + 8]
cmp ecx, dword [eax]
jne 0x49170b
mov eax, dword [esp + 0x74]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x78]
mov byte [edi + 0x25], 1
mov dword [edi + 0x1c], eax
mov ax, word [ebp + 0x10]
mov ecx, dword [esp + 0x70]
mov word [edi + 0x20], ax
test ecx, ecx
je 0x491766
cmp dword [ecx + 0x208], 0
je 0x491738
push ebx
push ecx
call fcn.00438370
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp ebx, dword [ecx + 0x114]
jb 0x491766
cmp ebx, dword [ecx + 0x118]
jae 0x491766
mov eax, dword [ecx + 0x110]
pop edi
mov dword [ebx], eax
dec dword [ecx + 0xfc]
xor eax, eax
pop esi
pop ebp
mov dword [ecx + 0x110], ebx
pop ebx
add esp, 0x6c
ret
cmp dword [section..data], 0
je 0x4917bc
mov eax, dword [0x50bf70]
test eax, eax
je 0x491782
push eax
call dword [0x509054]
add esp, 4
push ebx
call dword [0x509030]
sub dword [0x50bdf0], eax
dec dword [0x50be14]
push ebx
call dword [0x509028]
mov eax, dword [0x50bf70]
add esp, 8
test eax, eax
je 0x4917c6
push eax
call dword [0x50905c]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
push ebx
call dword [0x509028]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6c
ret