Function at 0x4e7b80
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 + 0x74], 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 + 0x84], edi
mov byte [esp + 0x13], al
mov dword [esp + 0x2c], edx
cmp edx, 1
ja 0x4e7bdc
mov esi, 1
jmp 0x4e7bec
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 0x4e7c00
test bp, bp
je 0x4e7c00
mov ecx, dword [eax]
jmp 0x4e7c02
xor ecx, ecx
lea eax, [edx*4]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
add eax, 0x20
imul eax, esi
add eax, ecx
mov ecx, edi
add eax, eax
cdq
push edx
push eax
call fcn.00481060
mov edx, eax
add esp, 8
mov dword [esp + 0x30], edx
test edx, edx
jne 0x4e7c3d
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 + 0x24], edi
movups xmmword [ecx], xmm0
mov dword [esp + 0x34], ecx
movups xmmword [ecx + 0x10], xmm0
add ecx, eax
lea eax, [esi + esi]
mov esi, dword [esp + 0x38]
add edx, 0x18
mov dword [edx], ecx
lea edx, [edx + 0x20]
dec eax
add ecx, esi
test eax, eax
jg 0x4e7c65
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4e7c90
lea eax, [edx + edx]
mov dword [esp + 0x64], ecx
push eax
push 0
push ecx
call fcn.006440e0
mov edx, dword [esp + 0x48]
add esp, 0xc
mov eax, dword [esp + 0x74]
mov ecx, 0x30
mov esi, dword [esp + 0x34]
mov eax, dword [eax + 0x1a4]
cmp eax, ecx
cmovb ecx, eax
mov eax, 1
mov word [esi + 0x10], cx
mov cl, byte [esp + 0x13]
mov dword [esp + 0x60], eax
test edx, edx
je 0x4e7cd0
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 + 0x78], 0x400
mov dword [esp + 0x40], edx
test cl, cl
je 0x4e8243
mov ebp, dword [esp + 0x2c]
nop word [eax + eax]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x4e8182
add esi, 0x10
mov dword [esp + 0x18], esi
mov ebp, dword [ebx + 0x10]
mov dword [esp + 0x20], ebp
test ebp, ebp
je 0x4e8162
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 + 0x12], al
mov eax, ebx
not eax
movlpd qword [esp + 0x68], xmm0
and eax, dword [ebp + 4]
or ecx, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x48], ebx
jne 0x4e81ef
mov ecx, edx
mov eax, ebx
and ecx, dword [ebp + 8]
and eax, dword [ebp + 0xc]
or ecx, eax
jne 0x4e81ef
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 0x4e7d9b
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x4e7d81
mov esi, edi
jmp 0x4e7dbd
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x4e7d8d
lea eax, [edi + 1]
jmp 0x4e7dba
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, di
jmp 0x4e7dba
lea eax, [ecx + 0x31]
cmp edx, eax
jg 0x4e7dbd
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4e7dae
lea eax, [esi + 1]
jmp 0x4e7dba
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 0x4e7dff
lea eax, [edx + 0x31]
cmp ecx, eax
jg 0x4e7e2c
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x4e7de8
inc esi
jmp 0x4e7e25
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 0x4e7e2c
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x4e7e0a
mov esi, edi
jmp 0x4e7e25
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4e7e16
lea eax, [edi + 1]
jmp 0x4e7e22
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 + 0x20]
mov ax, word [ecx + 0x16]
add ax, bx
mov ebx, dword [esp + 0x28]
or ebx, dword [ecx + 8]
movzx eax, ax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
or eax, dword [ecx + 0xc]
mov dword [esp + 0x48], eax
mov ah, byte [esp + 0x12]
mov dword [esp + 0x28], ebx
test ah, ah
jns 0x4e7e9b
mov edi, dword [esp + 0x5c]
lea eax, [esp + 0x68]
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 + 0x28]
add eax, 0xfffffff0
push eax
call fcn.004e7310
mov edx, dword [esp + 0x7c]
mov ah, al
mov ecx, dword [esp + 0x80]
add esp, 0x14
mov byte [esp + 0x12], ah
mov dword [esp + 0x68], edx
jmp 0x4e7ea9
mov edx, dword [esp + 0x18]
mov ecx, dword [edx - 8]
mov dword [esp + 0x68], ecx
mov ecx, dword [edx - 4]
mov dword [esp + 0x70], ecx
test ah, ah
js 0x4e7f5f
mov edi, dword [esp + 0x3c]
movsx ecx, ah
cmp ecx, edi
jge 0x4e7f5f
mov eax, dword [esp + 0x64]
lea ebx, [eax + ecx*2]
movzx eax, word [ebx]
mov edx, eax
test ax, ax
jne 0x4e7f3a
mov eax, edi
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv edi
cdq
push edx
push eax
call fcn.00484cc0
mov di, ax
add esp, 8
mov eax, dword [esp + 0x44]
cmp ax, 0xa
jg 0x4e7efc
movzx eax, di
jmp 0x4e7f11
cwde
cdq
push edx
push eax
call fcn.00484cc0
lea ecx, [edi - 0x21]
add esp, 8
add ax, cx
movzx eax, ax
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x78]
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 + 0x28]
movzx edi, dx
movsx ecx, bp
movsx edx, di
cmp bp, di
jl 0x4e80d4
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x4e80a6
mov ah, byte [esp + 0x12]
movzx edx, bp
mov edi, dword [esp + 0x24]
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
jle 0x4e7f90
mov esi, dword [esp + 0x48]
cmp dword [edi], ebx
jne 0x4e7f86
cmp dword [edi + 4], esi
jne 0x4e7f86
mov al, byte [edi + 0x16]
xor al, ah
jge 0x4e8114
inc ecx
add edi, 0x20
cmp ecx, dword [esp + 0x1c]
jl 0x4e7f72
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x4c]
cmp ecx, esi
jl 0x4e7fb6
mov ebx, dword [esp + 0x58]
cmp dx, bx
jg 0x4e81e6
jne 0x4e7fb6
cmp bp, word [esp + 0x54]
jge 0x4e81e6
mov ebx, dword [esp + 0x14]
lea eax, [ecx + 1]
cmp ecx, esi
mov edi, ecx
cmovge edi, dword [esp + 0x50]
shl edi, 5
add edi, dword [esp + 0x24]
cmp ecx, esi
cmovge eax, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov ecx, dword [eax - 0x10]
mov eax, dword [eax - 0xc]
or eax, dword [esi + 0xc]
or ecx, dword [esi + 8]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x68]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0xc], eax
mov al, byte [esp + 0x12]
mov byte [edi + 0x16], al
mov eax, dword [esp + 0x40]
mov dword [edi], ecx
mov word [edi + 0x10], bx
mov word [edi + 0x12], dx
lea esi, [eax*4]
mov word [edi + 0x14], bp
mov eax, dword [esp + 0x18]
push esi
push dword [eax + 8]
push dword [edi + 0x18]
call fcn.006435e0
mov eax, dword [edi + 0x18]
add esp, 0xc
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov dword [esi + eax], ebp
mov esi, dword [esp + 0x4c]
cmp ecx, esi
jl 0x4e8147
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 0x4e8099
lea eax, [edi + 0x34]
movzx edx, word [eax - 2]
cmp dx, bx
jg 0x4e8080
jne 0x4e8089
cmp word [eax], bp
jle 0x4e8089
movzx ebp, word [eax]
mov ebx, edx
mov dword [esp + 0x50], ecx
inc ecx
add eax, 0x20
cmp ecx, esi
jl 0x4e8070
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebx
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
jmp 0x4e8147
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x4e80bc
lea eax, [esi + 1]
movzx edx, ax
mov ah, byte [esp + 0x12]
jmp 0x4e7f62
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 + 0x12]
jmp 0x4e7f62
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x4e80e6
mov ah, byte [esp + 0x12]
mov edx, edi
jmp 0x4e7f62
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x4e80fc
lea eax, [edi + 1]
movzx edx, ax
mov ah, byte [esp + 0x12]
jmp 0x4e7f62
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 + 0x12]
jmp 0x4e7f62
cmp ecx, dword [esp + 0x1c]
jge 0x4e7f90
movzx eax, word [edi + 0x12]
cmp ax, dx
jl 0x4e813b
mov ebx, dword [esp + 0x14]
jne 0x4e7fd6
cmp word [edi + 0x10], bx
jg 0x4e7fd6
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov ebp, dword [ebp + 0x34]
mov dword [esp + 0x20], ebp
test ebp, ebp
jne 0x4e7d14
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
add esi, 0x20
sub eax, 1
mov dword [esp + 0x18], esi
mov dword [esp + 0x60], eax
jne 0x4e7d05
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x2c]
mov eax, edi
mov dword [esp + 0x24], esi
mov edi, esi
inc edx
mov dword [esp + 0x40], edx
mov esi, eax
mov dword [esp + 0x34], esi
mov eax, ecx
mov dword [esp + 0x60], eax
cmp edx, ebp
jl 0x4e7cf0
test ecx, ecx
jne 0x4e823f
push str.no_query_solution
push dword [esp + 0x78]
call fcn.00483840
mov ecx, dword [esp + 0x8c]
add esp, 8
mov edx, dword [esp + 0x30]
test ecx, ecx
je 0x4e8229
cmp dword [ecx + 0x208], 0
je 0x4e81f8
call fcn.00480db0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov ebp, dword [esp + 0x20]
jmp 0x4e8143
mov ecx, dword [esp + 0x1c]
jmp 0x4e814b
cmp edx, dword [ecx + 0x114]
jb 0x4e8229
cmp edx, dword [ecx + 0x118]
jae 0x4e8229
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.00480d40
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 + 0x34]
cmp eax, 1
jle 0x4e8269
lea edx, [edi + 0x20]
lea esi, [eax - 1]
mov ax, word [edi + 0x12]
mov ecx, edx
cmp ax, word [edx + 0x12]
cmovle ecx, edi
add edx, 0x20
mov edi, ecx
sub esi, 1
jne 0x4e8252
xor esi, esi
cmp byte [esp + 0x13], 0
jbe 0x4e82ad
mov ebp, dword [esp + 0x2c]
lea edx, [ebx + 0x30c]
nop dword [eax]
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 0x4e8280
mov ebp, dword [esp + 0x44]
mov ax, word [ebx + 0x22]
mov ecx, 0x600
and ax, cx
cmp ax, word [esp + 0x78]
jne 0x4e8306
cmp byte [ebx + 0x28], 0
jne 0x4e8306
mov esi, dword [esp + 0x38]
test bp, bp
mov ebp, dword [esp + 0x2c]
je 0x4e830e
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x78]
push eax
mov eax, dword [edi + 0x18]
mov ecx, ebx
push dword [eax + esi - 4]
lea eax, [ebp - 1]
push eax
push 0x200
push edi
call fcn.004e7310
movsx ecx, al
add esp, 0x14
mov eax, dword [ebx + 0xc]
cmp ecx, dword [eax]
jne 0x4e830e
mov byte [ebx + 0x28], 2
jmp 0x4e830e
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x2c]
mov edx, dword [ebx + 8]
test edx, edx
je 0x4e83a5
movzx ecx, word [ebx + 0x22]
mov al, byte [edi + 0x16]
test ecx, 0x200
je 0x4e8335
movsx eax, al
cmp eax, dword [edx]
jne 0x4e834c
mov byte [ebx + 0x28], 2
jmp 0x4e834c
mov byte [ebx + 0x24], al
test al, al
jns 0x4e8340
mov byte [ebx + 0x24], 0
mov eax, dword [edi + 8]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0xc]
mov dword [ebx + 0x1c], eax
test ecx, 0x800
je 0x4e83a5
movsx eax, byte [ebx + 0x24]
cmp eax, dword [edx]
jne 0x4e83a5
cmp byte [esp + 0x13], 0
jbe 0x4e83a5
lea eax, [esp + 0x78]
xorps xmm0, xmm0
push eax
mov eax, dword [edi + 0x18]
mov ecx, ebx
movlpd qword [esp + 0x7c], xmm0
push dword [eax + esi - 4]
lea eax, [ebp - 1]
push eax
push 0
push edi
call fcn.004e7310
movsx ecx, al
add esp, 0x14
mov eax, dword [ebx + 8]
cmp ecx, dword [eax]
jne 0x4e83a5
mov eax, dword [esp + 0x78]
mov dword [ebx + 0x18], eax
mov eax, dword [esp + 0x7c]
mov byte [ebx + 0x25], 1
mov dword [ebx + 0x1c], eax
mov ax, word [edi + 0x10]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x30]
mov word [ebx + 0x20], ax
test ecx, ecx
je 0x4e8402
cmp dword [ecx + 0x208], 0
je 0x4e83d4
call fcn.00480db0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
cmp edx, dword [ecx + 0x114]
jb 0x4e8402
cmp edx, dword [ecx + 0x118]
jae 0x4e8402
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.00480d40
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret