Function at 0x490b00
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 + 0x6c], 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 + 0x78], ebp
mov byte [esp + 0x13], cl
mov dword [esp + 0x30], edx
cmp edx, 1
ja 0x490b51
mov edi, 1
jmp 0x490b61
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 0x490b7b
cmp word [esp + 0x84], 0
je 0x490b7b
mov ecx, dword [eax]
jmp 0x490b7d
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 0x490bc6
cmp byte [ebp + 0x41], 0
jne 0x490be6
cmp byte [ebp + 0xfa], 0
je 0x490bc6
movzx eax, word [ebp + 0xf8]
cdq
cmp esi, edx
jb 0x490bf3
ja 0x490bc0
cmp ecx, eax
jbe 0x490bf3
inc dword [ebp + 0x108]
push esi
push ecx
call fcn.00461dd0
mov ebx, eax
mov dword [esp + 0x28], eax
add esp, 8
test ebx, ebx
jne 0x490c32
test ebp, ebp
je 0x490be2
mov byte [ebp + 0x41], 1
test ebx, ebx
jne 0x490c32
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 0x490c09
inc dword [ebp + 0x10c]
jmp 0x490bc6
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 0x490c32
mov dword [ebp + 0x100], eax
mov eax, edi
lea edx, [ebx + 0x18]
shl eax, 5
xorps xmm0, xmm0
lea esi, [eax + ebx]
mov ebp, ebx
movups xmmword [esi], xmm0
mov dword [esp + 0x28], ebp
lea ecx, [eax + esi]
mov dword [esp + 0x2c], esi
lea eax, [edi + edi]
mov edi, dword [esp + 0x5c]
movups xmmword [esi + 0x10], xmm0
nop dword [eax + eax]
mov dword [edx], ecx
lea edx, [edx + 0x20]
dec eax
add ecx, edi
test eax, eax
jg 0x490c60
mov edx, dword [esp + 0x34]
test edx, edx
je 0x490c8b
lea eax, [edx + edx]
mov dword [esp + 0x60], ecx
push eax
push 0
push ecx
call fcn.004c20c0
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x70]
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 0x490cc7
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 0x4912c3
mov edx, dword [esp + 0x80]
mov ebx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x491033
add esi, 0x10
mov dword [esp + 0x18], esi
mov ebp, dword [edx + 0x10]
mov dword [esp + 0x24], ebp
test ebp, ebp
je 0x49100f
mov bh, byte [esi + 6]
xorps xmm0, xmm0
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
movlpd qword [esp + 0x64], xmm0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], ebx
jne 0x49120d
mov ecx, edx
mov eax, ebx
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x49120d
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 0x490d8b
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x490d71
mov esi, edi
jmp 0x490dad
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x490d7d
lea eax, [edi + 1]
jmp 0x490daa
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
jmp 0x490daa
lea eax, [ecx + 0x31]
cmp edx, eax
jg 0x490dad
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x490d9e
lea eax, [esi + 1]
jmp 0x490daa
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 0x490def
lea eax, [edx + 0x31]
cmp ecx, eax
jg 0x490e1c
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x490dd8
inc esi
jmp 0x490e15
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 0x490e1c
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x490dfa
mov esi, edi
jmp 0x490e15
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x490e06
lea eax, [edi + 1]
jmp 0x490e12
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 + 0x6c], 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 0x4910a3
mov edx, dword [esp + 0x80]
lea eax, [esp + 0x64]
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.004900a0
mov edx, dword [esp + 0x84]
mov ah, al
add esp, 0x1c
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x64]
mov byte [esp + 0x12], ah
mov dword [esp + 0x14], edx
test ah, ah
jns 0x4910b5
movzx esi, bp
mov edi, dword [esp + 0x28]
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
jle 0x490edc
nop word [eax + eax]
mov edx, dword [esp + 0x3c]
mov bl, ah
cmp dword [edi], edx
jne 0x490ed2
mov edx, dword [esp + 0x40]
cmp dword [edi + 4], edx
mov edx, dword [esp + 0x20]
jne 0x490ed2
mov al, byte [edi + 0x16]
xor al, ah
jge 0x4911d0
inc ecx
add edi, 0x20
cmp ecx, dword [esp + 0x1c]
jl 0x490eb0
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
cmp ecx, edx
jl 0x490f02
mov ebx, dword [esp + 0x54]
cmp si, bx
jg 0x491204
jne 0x490f02
cmp bp, word [esp + 0x50]
jge 0x491204
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 + 0x6c]
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.004c15c0
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 0x490ff1
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 0x490fe9
add eax, 0x34
nop dword [eax + eax]
movzx edx, word [eax - 2]
cmp dx, bx
jg 0x490fd0
jne 0x490fd9
cmp word [eax], bp
jle 0x490fd9
movzx ebp, word [eax]
mov ebx, edx
mov dword [esp + 0x4c], ecx
inc ecx
add eax, 0x20
cmp ecx, edi
jl 0x490fc0
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 0x490d04
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 0x490cf5
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 0x490ce0
test ecx, ecx
jne 0x4912bf
push str.no_query_solution
push dword [esp + 0x74]
call fcn.00453ae0
mov ecx, dword [esp + 0x80]
add esp, 8
test ecx, ecx
je 0x49124b
cmp dword [ecx + 0x208], 0
je 0x491216
push dword [esp + 0x20]
push ecx
call fcn.00438520
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 0x490e9b
mov eax, dword [esp + 0x60]
lea ebx, [eax + ecx*2]
movzx eax, word [ebx]
mov edx, eax
test ax, ax
jne 0x491144
mov eax, edi
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv edi
cdq
push edx
push eax
call fcn.00461b10
mov di, ax
add esp, 8
mov eax, dword [esp + 0x84]
cmp ax, 0xa
jg 0x4910ff
movzx eax, di
jmp 0x491114
cwde
cdq
push edx
push eax
call fcn.00461b10
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 0x491190
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x491162
mov ah, byte [esp + 0x12]
jmp 0x490e9b
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x491178
lea eax, [esi + 1]
movzx esi, ax
mov ah, byte [esp + 0x12]
jmp 0x490e9e
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 0x490e9e
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x4911a2
mov ah, byte [esp + 0x12]
mov esi, edi
jmp 0x490e9e
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4911b8
lea eax, [edi + 1]
movzx esi, ax
mov ah, byte [esp + 0x12]
jmp 0x490e9e
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 0x490e9e
movzx eax, word [edi + 0x12]
mov dword [esp + 0x20], edx
cmp ax, si
jl 0x490fe9
mov bh, bl
mov dword [esp + 0x20], edx
jne 0x490f22
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x6c]
cmp word [edi + 0x10], dx
jle 0x490fe9
jmp 0x490f22
mov ebp, dword [esp + 0x24]
jmp 0x490ff1
mov ecx, dword [esp + 0x1c]
jmp 0x490ff5
mov ebx, dword [esp + 0x20]
cmp ebx, dword [ecx + 0x114]
jb 0x49124f
cmp ebx, dword [ecx + 0x118]
jae 0x49124f
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 0x4912a8
mov eax, dword [0x50cf50]
test eax, eax
je 0x49126b
push eax
call dword [0x50a054]
add esp, 4
push ebx
call dword [0x50a030]
sub dword [0x50cdd0], eax
dec dword [0x50cdf4]
push ebx
call dword [0x50a028]
mov eax, dword [0x50cf50]
add esp, 8
test eax, eax
je 0x4912b2
push eax
call dword [0x50a05c]
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
push ebx
call dword [0x50a028]
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 0x4912eb
lea ecx, [esi + 0x20]
lea edx, [eax - 1]
nop
mov ax, word [esi + 0x12]
cmp ax, word [ecx + 0x12]
cmovg esi, ecx
add ecx, 0x20
sub edx, 1
jne 0x4912d0
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 0x49133d
mov ebx, dword [esp + 0x30]
lea edx, [edi + 0x30c]
nop dword [eax]
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 0x491310
mov ebx, dword [esp + 0x20]
mov ax, word [edi + 0x22]
mov ecx, 0x600
and ax, cx
mov ecx, 0x400
cmp ax, cx
jne 0x49139a
cmp byte [edi + 0x28], 0
jne 0x49139a
cmp word [esp + 0x84], 0
je 0x49139a
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x70]
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.004900a0
movsx ecx, al
add esp, 0x1c
mov eax, dword [edi + 0xc]
cmp ecx, dword [eax]
jne 0x49139a
mov byte [edi + 0x28], 2
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x491444
movzx esi, word [edi + 0x22]
mov dl, byte [ebp + 0x16]
test esi, 0x200
je 0x4913c1
movsx eax, dl
cmp eax, dword [ecx]
jne 0x4913e5
mov byte [edi + 0x28], 2
jmp 0x4913e5
test dl, dl
movzx eax, dl
mov byte [edi + 0x24], dl
mov dword [esp + 0x70], 0
cmovs eax, dword [esp + 0x70]
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 0x491444
movsx eax, byte [edi + 0x24]
cmp eax, dword [ecx]
jne 0x491444
cmp byte [esp + 0x13], 0
jbe 0x491444
mov edx, dword [esp + 0x5c]
lea eax, [esp + 0x70]
push eax
mov eax, dword [ebp + 0x18]
xorps xmm0, xmm0
movlpd qword [esp + 0x74], xmm0
push dword [eax + edx - 4]
mov eax, dword [esp + 0x38]
dec eax
push eax
push 0
push ebp
push ecx
push edi
call fcn.004900a0
movsx ecx, al
add esp, 0x1c
mov eax, dword [edi + 8]
cmp ecx, dword [eax]
jne 0x491444
mov eax, dword [esp + 0x70]
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x74]
mov byte [edi + 0x25], 1
mov dword [edi + 0x1c], eax
mov ax, word [ebp + 0x10]
mov ecx, dword [esp + 0x78]
mov word [edi + 0x20], ax
test ecx, ecx
je 0x49149f
cmp dword [ecx + 0x208], 0
je 0x491471
push ebx
push ecx
call fcn.00438520
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
cmp ebx, dword [ecx + 0x114]
jb 0x49149f
cmp ebx, dword [ecx + 0x118]
jae 0x49149f
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 0x4914f5
mov eax, dword [0x50cf50]
test eax, eax
je 0x4914bb
push eax
call dword [0x50a054]
add esp, 4
push ebx
call dword [0x50a030]
sub dword [0x50cdd0], eax
dec dword [0x50cdf4]
push ebx
call dword [0x50a028]
mov eax, dword [0x50cf50]
add esp, 8
test eax, eax
je 0x4914ff
push eax
call dword [0x50a05c]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6c
ret
push ebx
call dword [0x50a028]
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x6c
ret