Function at 0x450ab3
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xf4
mov eax, dword [0x4c3014]
xor eax, esp
mov dword [esp + 0xf0], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [esp + 0x34], eax
push esi
xor ecx, ecx
mov dword [esp + 0x34], ebx
push edi
mov eax, dword [ebx + 0x1cc]
mov edi, edx
mov esi, dword [ebx]
mov dword [esp + 0xe0], eax
mov eax, dword [ebx + 0x1d0]
mov dword [ebx + 0x1cc], eax
inc eax
mov dword [esp + 0x64], edi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x5c], 1
mov dword [ebx + 0x1d0], eax
mov dword [esp + 0x18], esi
test edi, edi
je 0x451e13
cmp byte [esi + 0x41], cl
jne 0x451e13
cmp dword [ebx + 0x40], ecx
jne 0x451e13
push ecx
push ecx
push ecx
push 0x15
pop edx
mov ecx, ebx
call fcn.0043cdfd
add esp, 0xc
test eax, eax
jne 0x451e13
push 0x30
push eax
lea eax, [esp + 0xb8]
push eax
call fcn.0047ed30
mov eax, dword [esp + 0x48]
add esp, 0xc
cmp byte [eax], 8
ja 0x450b7c
mov edx, dword [edi + 0x30]
mov ecx, esi
call fcn.00437db3
and dword [edi + 0x30], 0
mov eax, 0xfffe
and word [edi + 6], ax
push 0
mov edx, edi
mov ecx, ebx
call fcn.0045068e
cmp dword [ebx + 0x40], 0
xorps xmm0, xmm0
mov eax, dword [edi + 0x30]
mov edx, dword [edi + 0x20]
pop ecx
movlpd qword [esp + 0x6c], xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x7c], xmm0
mov dword [esp + 0x68], eax
mov dword [esp + 0x14], edx
jne 0x451dc4
cmp byte [esi + 0x41], 0
jne 0x451dc4
mov eax, dword [esp + 0x3c]
movzx ecx, word [edi + 6]
shr ecx, 3
and ecx, 1
mov dl, byte [eax]
mov eax, dword [edi]
mov dword [esp + 0x20], ecx
cmp dword [eax], 1
jle 0x450bf6
cmp dl, 0xa
je 0x450be4
cmp dl, 0xb
jne 0x450bf6
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
push ebx
call fcn.00415d7f
pop ecx
pop ecx
jmp 0x451cc5
xor esi, esi
cmp dword [edi + 0x34], esi
jne 0x450cba
mov edx, dword [esp + 0x14]
cmp esi, dword [edx]
jge 0x450cba
imul eax, esi, 0x50
mov dword [esp + 0x28], eax
mov edx, dword [eax + edx + 0x1c]
test edx, edx
je 0x450cab
mov ebx, dword [esp + 0x14]
mov eax, dword [eax + ebx + 0x18]
mov ebx, dword [esp + 0x38]
movsx eax, word [eax + 0x22]
mov dword [esp + 0x34], eax
mov eax, dword [edx]
mov eax, dword [eax]
cmp dword [esp + 0x34], eax
jne 0x450cf2
movzx eax, word [edx + 6]
mov edx, edi
shr eax, 3
and eax, 1
push eax
push ecx
push esi
mov ecx, ebx
mov dword [esp + 0x34], eax
call fcn.0044f415
add esp, 0xc
test eax, eax
je 0x450c7d
xor eax, eax
inc eax
cmp dword [esp + 0x28], 0
je 0x450c78
push 8
pop ecx
or word [edi + 6], cx
mov dword [esp + 0x20], eax
or esi, 0xffffffff
jmp 0x450c80
xor eax, eax
inc eax
mov ecx, dword [esp + 0x18]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x14], edx
cmp byte [ecx + 0x41], 0
jne 0x451dc9
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
cmp byte [eax], 8
jbe 0x450caf
mov eax, dword [edi + 0x30]
mov dword [esp + 0x68], eax
jmp 0x450caf
mov edx, dword [esp + 0x14]
inc esi
cmp dword [edi + 0x34], 0
je 0x450c05
mov ecx, ebx
call fcn.0044db00
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x450d13
xor ecx, ecx
cmp dword [edi + 0x34], ecx
je 0x450d23
push dword [esp + 0x3c]
mov edx, edi
mov ecx, ebx
call fcn.0044e0bb
pop ecx
mov ecx, dword [esp + 0xe0]
mov dword [ebx + 0x1cc], ecx
jmp 0x451e16
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [ecx + edx + 0x18]
push dword [eax]
push dword [esp + 0x3c]
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.00415d7f
add esp, 0x14
xor eax, eax
inc eax
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
jmp 0x451dcb
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ecx
cmp dword [eax], ecx
jle 0x450fde
mov edx, dword [esp + 0x14]
add eax, 0x20
mov dword [esp + 0x10], eax
mov ecx, dword [eax - 4]
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x450fc6
cmp dword [eax], 0
je 0x450d75
test byte [eax + 0x10], 0x10
jne 0x450fc6
push 0
push dword [eax]
mov ecx, esi
push dword [eax + 4]
push 0xf
pop edx
call fcn.00429abf
add esp, 0xc
jmp 0x450fbe
and dword [esp + 0x34], 0
lea edx, [esp + 0x34]
mov ecx, edi
call fcn.00436fa4
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add dword [ebx + 0x1c8], eax
test byte [ecx + 0xc], 0x20
jne 0x450db2
push dword [ecx + 0x18]
mov edx, dword [esp + 0x28]
push dword [edi + 0x24]
mov ecx, dword [esp + 0x20]
call fcn.0044f99b
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp dword [eax], 1
jne 0x450ea8
test byte [edi + 6], 2
jne 0x450ea8
mov eax, dword [esp + 0x18]
mov edx, 0x100
test word [eax + 0x3c], dx
jne 0x450ea8
mov esi, dword [esi + 0x20]
inc esi
inc dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
push esi
push 0
push eax
mov dword [ecx + 4], eax
mov ecx, dword [esp + 0x28]
push 0x11
pop edx
call fcn.00429abf
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x24]
mov word [esp + 0x90], 0xd
mov eax, dword [ecx + 4]
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [ecx], esi
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov al, byte [ebx + 0x1d0]
mov byte [ecx + 0x14], al
lea eax, [esp + 0x90]
push eax
mov ecx, ebx
call fcn.00450ab3
mov eax, dword [esp + 0x28]
pop ecx
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.00416e14
mov edx, dword [esp + 0x18]
push 0
push 0
mov ecx, dword [edx - 8]
mov word [ecx + 0x26], ax
push dword [edx + 4]
mov eax, dword [esp + 0xac]
or dword [edx + 0x10], 0x10
mov ecx, dword [esp + 0x30]
mov dword [edx + 8], eax
push 0x12
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x30]
lea edx, [esi - 1]
mov esi, dword [esp + 0x30]
add esp, 0x14
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x18]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.0042a11a
mov ecx, dword [esi + 0x20]
mov dword [eax + 8], ecx
jmp 0x450f90
mov eax, dword [ebx + 0x48]
xor edx, edx
push edx
inc eax
mov dword [esp + 0x38], edx
push eax
push edx
mov dword [ebx + 0x48], eax
mov dword [ecx + 4], eax
mov ecx, esi
push 0x17
pop edx
call fcn.00429abf
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x28], eax
inc eax
test byte [ecx + 0x10], 8
mov dword [ecx], eax
jne 0x450ee8
mov ecx, ebx
call fcn.00438077
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x18]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x94], eax
xor eax, eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov al, byte [ebx + 0x1d0]
mov byte [ecx + 0x14], al
lea eax, [esp + 0x90]
push eax
mov ecx, ebx
mov word [esp + 0x94], 0xc
call fcn.00450ab3
mov eax, dword [esp + 0x28]
pop ecx
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.00416e14
mov edx, dword [esp + 0x3c]
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx - 8]
mov word [ecx + 0x26], ax
test edx, edx
je 0x450f64
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.0042a11a
mov ecx, dword [esi + 0x20]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x10]
mov ecx, esi
push 0
push 0
push dword [eax + 4]
push 0x10
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
mov esi, eax
call fcn.0042a11a
mov dword [eax + 4], esi
mov esi, ecx
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov byte [ebx + 0x13], cl
mov dword [ebx + 0x38], ecx
cmp byte [eax + 0x41], cl
jne 0x450d13
mov dword [esp + 0x34], ecx
lea edx, [esp + 0x34]
mov ecx, edi
call fcn.00436fa4
mov eax, dword [esp + 0x34]
sub dword [ebx + 0x1c8], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
add eax, 0x50
inc ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
cmp ecx, dword [edx]
jl 0x450d3e
mov eax, dword [edi + 0x24]
xor ecx, ecx
mov edx, dword [edi]
inc ecx
mov dword [esp + 0x58], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x34], eax
mov al, byte [edi + 6]
and al, cl
mov dword [esp + 0x48], edx
mov byte [esp + 0xf0], al
mov al, byte [edi + 6]
and al, 9
cmp al, cl
jne 0x451041
mov ecx, dword [esp + 0x68]
push 0xffffffffffffffff
call fcn.0043a5c5
pop ecx
test eax, eax
jne 0x451041
mov edx, dword [esp + 0x48]
mov eax, 0xfffe
mov ecx, dword [esp + 0x18]
and word [edi + 6], ax
push 0
call fcn.0043791c
pop ecx
mov dword [esp + 0x10], eax
mov dword [edi + 0x28], eax
mov edx, dword [esp + 0x68]
test edx, edx
je 0x451093
mov eax, dword [esp + 0x48]
mov ecx, ebx
push dword [eax]
push 0
call fcn.0044cf3c
mov edx, dword [ebx + 0x44]
mov ecx, eax
push 0xfffffffffffffffa
push ecx
mov dword [esp + 0x80], edx
lea eax, [edx + 1]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x58]
push 0
mov ecx, dword [eax]
mov eax, dword [esp + 0x7c]
inc ecx
mov eax, dword [eax]
add eax, ecx
mov ecx, esi
push eax
push edx
push 0x39
pop edx
call fcn.00429bde
add esp, 0x1c
mov dword [esp + 0x7c], eax
jmp 0x451098
or dword [esp + 0x7c], 0xffffffff
mov eax, dword [esp + 0x3c]
cmp byte [eax], 0xc
jne 0x4510b9
mov ecx, dword [esp + 0x48]
push 0
push dword [ecx]
mov ecx, esi
push dword [eax + 4]
push 0x39
pop edx
call fcn.00429abf
add esp, 0xc
mov ecx, esi
call fcn.00429cb7
or dword [edi + 0x18], 0xffffffff
mov edx, edi
push eax
mov ecx, ebx
mov dword [esp + 0xf0], eax
mov dword [edi + 0x1c], 0x7fffffff
call fcn.0044db48
cmp dword [edi + 8], 0
pop ecx
jne 0x4510fd
mov edx, dword [esp + 0x7c]
test edx, edx
js 0x4510fd
mov ecx, esi
call fcn.0042a11a
mov byte [eax], 0x3a
or byte [esp + 0x80], 1
test byte [edi + 6], 1
je 0x451173
mov eax, dword [ebx + 0x44]
mov ecx, ebx
mov dword [esp + 0xf4], eax
inc eax
mov dword [ebx + 0x44], eax
mov edx, dword [edi]
push 0
push 0
call fcn.0044cf3c
push 0
push 0
push dword [esp + 0x104]
mov ecx, esi
mov edi, eax
push 0x39
pop edx
call fcn.00429abf
mov ecx, dword [esp + 0x30]
add esp, 0x14
mov esi, eax
mov edx, esi
push 0xfffffffffffffffa
push edi
call fcn.0042a043
pop ecx
pop ecx
mov dword [esp + 0xf8], esi
or edx, 0xffffffff
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.0042a11a
mov edi, dword [esp + 0x64]
push 8
pop ecx
mov byte [eax + 3], cl
mov byte [esp + 0xf1], 3
jmp 0x45117b
mov byte [esp + 0xf1], 0
cmp dword [esp + 0x20], 0
mov ecx, dword [esp + 0x10]
jne 0x45127d
test ecx, ecx
jne 0x45127d
mov edx, dword [esp + 0x14]
xor eax, eax
cmp byte [esp + 0xf0], al
mov ecx, 0x400
push 0
cmovne eax, ecx
mov ecx, ebx
movzx eax, ax
push eax
push dword [edi]
push dword [esp + 0x74]
push dword [esp + 0x68]
call fcn.0045c535
add esp, 0x14
mov dword [esp + 0x24], eax
test eax, eax
je 0x450d13
mov cx, word [eax + 0x20]
call fcn.00416e99
cmp edx, dword [edi + 0x1c]
ja 0x4511e8
jb 0x4511e2
cmp eax, dword [edi + 0x18]
jae 0x4511e8
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
cmp byte [esp + 0xf0], 0
je 0x451210
mov eax, dword [esp + 0x24]
movzx edx, byte [esp + 0xf1]
mov cl, byte [eax + 0x28]
test cl, cl
movzx eax, cl
cmovne edx, eax
mov byte [esp + 0xf1], dl
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x45122f
mov eax, dword [esp + 0x24]
xor edx, edx
movsx eax, byte [eax + 0x24]
mov dword [esp + 0x6c], eax
cmp eax, dword [ecx]
cmove ecx, edx
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x7c]
test edx, edx
js 0x451242
test ecx, ecx
jne 0x451242
mov ecx, esi
call fcn.00429fd8
mov eax, dword [esp + 0x24]
mov edx, edi
mov ecx, ebx
push dword [eax + 0x34]
push dword [eax + 0x30]
lea eax, [esp + 0xf8]
push dword [esp + 0x44]
push eax
lea eax, [esp + 0x78]
push eax
push 0xffffffffffffffff
push dword [esp + 0x60]
call fcn.0044c830
mov ecx, dword [esp + 0x40]
add esp, 0x1c
call fcn.0045cd36
jmp 0x451d54
and dword [esp + 0x50], 0
and dword [esp + 0x44], 0
test ecx, ecx
je 0x4512da
mov eax, dword [edi]
mov edx, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
jle 0x4512aa
add edx, 0x16
xor esi, esi
dec eax
mov word [edx], si
lea edx, [edx + 0x18]
test eax, eax
jg 0x451299
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
test eax, eax
jle 0x4512c7
add edx, 0x16
xor ebx, ebx
dec eax
mov word [edx], bx
lea edx, [edx + 0x18]
test eax, eax
jg 0x4512b6
mov ebx, dword [esp + 0x38]
cmp dword [edi + 0x1c], 0
push 0x64
pop eax
ja 0x4512d5
cmp dword [edi + 0x18], eax
jbe 0x4512e5
mov dword [edi + 0x18], eax
jmp 0x4512e1
mov dword [edi + 0x18], 1
and dword [edi + 0x1c], 0
mov edx, dword [esp + 0x68]
push 0xffffffffffffffff
call fcn.0043a5c5
pop ecx
xor ecx, ecx
test eax, eax
push 1
pop eax
cmove ecx, eax
mov dword [esp + 0x28], ecx
mov ecx, esi
call fcn.00429cb7
and dword [esp + 0x98], 0
xorps xmm0, xmm0
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x94], eax
lea eax, [esp + 0xb0]
mov dword [esp + 0x9c], eax
mov eax, dword [ebx + 0x48]
inc eax
movlpd qword [esp + 0xa0], xmm0
movlpd qword [esp + 0xa8], xmm0
mov dword [esp + 0x90], ebx
mov dword [esp + 0xc0], eax
test ecx, ecx
je 0x451365
mov eax, dword [ecx]
mov dword [esp + 0xbc], eax
jmp 0x45136d
and dword [esp + 0xbc], 0
mov edx, dword [esp + 0x48]
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0x90]
call fcn.0043a96c
mov edx, dword [esp + 0x68]
lea ecx, [esp + 0x90]
call fcn.0043a96c
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4513aa
mov edx, eax
lea ecx, [esp + 0x90]
call fcn.0043a93e
and dword [esp + 0x2c], 0
cmp dword [esp + 0xdc], 0
mov edx, dword [esp + 0xd0]
mov dword [esp + 0xd4], edx
jle 0x451434
mov ax, word [esp + 0xac]
xor edi, edi
mov esi, dword [esp + 0x2c]
push 8
pop ebx
or ax, bx
lea ecx, [esp + 0x90]
mov word [esp + 0xac], ax
mov eax, dword [esp + 0xd8]
mov edx, dword [eax + edi]
mov edx, dword [edx + 0x14]
call fcn.0043a96c
mov ax, word [esp + 0xac]
lea edi, [edi + 0x10]
mov ecx, 0xfff7
and ax, cx
inc esi
mov word [esp + 0xac], ax
cmp esi, dword [esp + 0xdc]
jl 0x4513d8
mov edx, dword [esp + 0xd0]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x1c]
mov eax, dword [ebx + 0x48]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x41], 0
jne 0x450d13
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x451ab5
mov eax, dword [ebx + 0x44]
push edx
mov dword [esp + 0xb8], eax
mov edx, ecx
inc eax
mov ecx, ebx
push 0
mov dword [ebx + 0x44], eax
call fcn.0044cf3c
push 0xfffffffffffffffa
push eax
push 0
push dword [esp + 0xd0]
mov ecx, esi
mov dword [esp + 0xfc], eax
push dword [esp + 0xcc]
push 0x3a
pop edx
call fcn.00429bde
mov dword [esp + 0x104], eax
add esp, 0x1c
mov eax, dword [ebx + 0x48]
mov ecx, esi
inc eax
mov dword [esp + 0x54], eax
inc eax
mov dword [esp + 0x20], eax
inc eax
mov dword [ebx + 0x48], eax
call fcn.00429cb7
inc dword [ebx + 0x48]
mov ecx, esi
mov dword [esp + 0x88], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x2c], eax
call fcn.00429cb7
mov ecx, dword [ebx + 0x48]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
push 0
push dword [esp + 0x24]
lea eax, [ecx + 1]
add ecx, dword [edx]
mov dword [esp + 0x94], eax
mov dword [ebx + 0x48], ecx
push 0
lea eax, [ecx + 1]
mov dword [esp + 0x90], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, esi
push 0x17
pop edx
mov dword [ebx + 0x48], eax
call fcn.00429abf
add esp, 0xc
mov ecx, esi
push 0
push dword [esp + 0x58]
push 0
push 0x17
pop edx
call fcn.00429abf
mov ecx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ecx]
mov ecx, dword [esp + 0x8c]
dec eax
add eax, ecx
push eax
push ecx
push 0
push 0x1a
pop edx
mov ecx, esi
call fcn.00429abf
add esp, 0xc
push 0
push dword [esp + 0x44]
push dword [esp + 0x34]
push 0xf
pop edx
mov ecx, esi
call fcn.00429abf
mov edx, dword [esp + 0x20]
add esp, 0xc
cmp dword [esp + 0x28], 0
mov ecx, 0x900
mov eax, 0x100
cmovne eax, ecx
mov ecx, ebx
push 0
movzx eax, ax
push eax
push 0
push dword [esp + 0x1c]
push dword [esp + 0x68]
call fcn.0045c535
mov edx, eax
add esp, 0x14
mov dword [esp + 0x58], edx
test edx, edx
je 0x450d13
mov ecx, dword [esp + 0x10]
movsx eax, byte [edx + 0x24]
cmp eax, dword [ecx]
jne 0x4515b2
xor edi, edi
mov dword [esp + 0x5c], edi
jmp 0x45179e
cmp byte [esp + 0xf0], 0
je 0x4515c7
test byte [edi + 6], 1
mov edx, str.DISTINCT
je 0x4515cc
mov edx, str.GROUP_BY
mov ecx, ebx
call fcn.0044cff7
cmp dword [esp + 0xd0], 0
mov edi, dword [esp + 0x10]
mov dword [esp + 0x5c], 1
mov eax, dword [edi]
mov edx, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x44], eax
jle 0x451636
mov ebx, dword [esp + 0xcc]
mov esi, eax
mov edi, dword [esp + 0xd0]
add ebx, 0xc
cmp dword [ebx], esi
lea eax, [edx + 1]
lea ebx, [ebx + 0x18]
cmovl eax, edx
mov edx, eax
lea eax, [esi + 1]
cmovl eax, esi
mov esi, eax
sub edi, 1
jne 0x45160c
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x50], edx
mov ecx, ebx
call fcn.0043a9e7
mov ecx, ebx
mov dword [esp + 0x38], eax
call fcn.00438f21
push 0
push 0
push dword [esp + 0x40]
mov edx, edi
mov ecx, ebx
call fcn.00439d22
and dword [esp + 0x50], 0
add esp, 0xc
cmp dword [esp + 0xd0], 0
jle 0x4516e0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x60]
add ecx, eax
mov dword [esp + 0x4c], ecx
xor edi, edi
mov edx, dword [esp + 0xcc]
cmp dword [edx + edi + 0xc], eax
jl 0x4516cb
push 0
push ecx
push dword [edx + edi + 4]
mov ecx, ebx
push dword [edx + edi + 8]
mov edx, dword [edx + edi]
call fcn.00438e72
mov ecx, dword [esp + 0x5c]
add esp, 0x10
cmp ecx, eax
je 0x4516bd
push 0
push ecx
push eax
push 0x20
pop edx
mov ecx, esi
call fcn.00429abf
mov ecx, dword [esp + 0x58]
add esp, 0xc
mov eax, dword [esp + 0x60]
inc eax
inc ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x4c], ecx
mov edx, dword [esp + 0x44]
add edi, 0x18
inc edx
mov dword [esp + 0x44], edx
cmp edx, dword [esp + 0xd0]
jl 0x45167b
mov ecx, ebx
call fcn.0043a997
mov ecx, dword [esp + 0x1c]
mov esi, eax
push esi
push dword [esp + 0x54]
push dword [esp + 0x40]
push 0x31
pop edx
call fcn.00429abf
mov ecx, dword [esp + 0x28]
add esp, 0xc
push 0
push esi
push dword [esp + 0xbc]
push 0x6e
pop edx
call fcn.00429abf
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.0043a9b3
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
push esi
call fcn.0043aa12
pop ecx
mov ecx, dword [esp + 0x58]
call fcn.0045cd36
mov edx, dword [ebx + 0x44]
mov ecx, ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0xb8], edx
lea eax, [edx + 1]
mov dword [ebx + 0x44], eax
call fcn.0043a997
push esi
mov esi, dword [esp + 0x20]
mov ecx, esi
push eax
push edx
push 0x3c
pop edx
mov dword [esp + 0x50], eax
call fcn.00429abf
add esp, 0xc
mov ecx, esi
push 0
push dword [esp + 0x28]
push dword [esp + 0xbc]
push 0x6b
pop edx
call fcn.00429abf
add esp, 0xc
mov byte [esp + 0xb1], 1
mov ecx, ebx
call fcn.00438f21
mov edx, dword [esp + 0x58]
xor edi, edi
inc edi
cmp dword [esp + 0x28], 0
je 0x4517c9
mov eax, dword [esp + 0x18]
test byte [eax + 0x3c], 4
jne 0x4517c9
test edi, edi
jne 0x4517b9
cmp byte [edx + 0x25], 0
je 0x4517c9
mov edx, dword [esp + 0x7c]
mov ecx, esi
and dword [esp + 0x68], 0
call fcn.00429fd8
mov eax, dword [esi + 0x20]
mov ecx, ebx
mov dword [esp + 0x60], eax
call fcn.00438f21
test edi, edi
je 0x4517f7
push dword [esp + 0x50]
mov ecx, esi
push dword [esp + 0x48]
push dword [esp + 0xbc]
push 0x65
pop edx
call fcn.00429abf
add esp, 0xc
mov edi, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, dword [edi]
test ecx, ecx
jle 0x451862
xor ecx, ecx
mov dword [esp + 0x4c], ecx
jmp 0x451813
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x84]
add edx, eax
cmp dword [esp + 0x5c], 0
push edx
je 0x451838
push eax
push dword [esp + 0x58]
mov ecx, esi
push 0x2f
pop edx
call fcn.00429abf
add esp, 0xc
jmp 0x45184e
mov byte [esp + 0xb4], 1
mov edx, dword [edi + 4]
mov edx, dword [edx + ecx]
mov ecx, ebx
call fcn.00439cd5
pop ecx
mov eax, dword [esp + 0x28]
add dword [esp + 0x4c], 0x18
inc eax
mov ecx, dword [edi]
mov dword [esp + 0x28], eax
cmp eax, ecx
jl 0x45180f
mov eax, dword [esp + 0xe4]
test eax, eax
je 0x451871
inc dword [eax]
mov ecx, dword [edi]
push 0xfffffffffffffffa
push eax
push ecx
push dword [esp + 0x90]
mov ecx, esi
push dword [esp + 0x9c]
push 0x2a
pop edx
call fcn.00429bde
mov esi, dword [esi + 0x20]
add esp, 0x14
mov edi, dword [esp + 0x1c]
mov ecx, edi
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x2b
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov edx, dword [esp + 0x84]
mov ecx, ebx
push dword [eax]
push dword [esp + 0x90]
call fcn.00438f47
mov eax, dword [esp + 0x28]
mov ecx, edi
push 0
push dword [esp + 0x94]
inc eax
push eax
push 0xf
pop edx
call fcn.00429abf
add esp, 0x14
mov edx, 0x8a
mov ecx, edi
push 0
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.00429abf
add esp, 0xc
mov ecx, edi
push 0
push dword [esp + 0x44]
push dword [esp + 0x34]
push 0xf
pop edx
call fcn.00429abf
mov eax, dword [edi + 0x18]
add esp, 0xc
mov ecx, dword [edi + 0x20]
mov edx, esi
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, edi
call fcn.0042a11a
mov ecx, dword [edi + 0x20]
lea edx, [esp + 0xb0]
mov dword [eax + 8], ecx
mov ecx, ebx
call fcn.00450806
xor esi, esi
mov ecx, edi
push esi
push dword [esp + 0x58]
push 1
push 0x17
pop edx
call fcn.00429abf
add esp, 0xc
cmp dword [esp + 0x5c], esi
je 0x451970
push esi
push dword [esp + 0x64]
mov ecx, edi
push dword [esp + 0xbc]
push 4
pop edx
call fcn.00429abf
add esp, 0xc
jmp 0x451987
mov ecx, dword [esp + 0x58]
call fcn.0045cd36
mov edx, dword [esp + 0xe8]
mov ecx, edi
call fcn.00429fd8
push esi
mov esi, dword [esp + 0x24]
mov ecx, edi
push dword [esp + 0x8c]
lea eax, [esi + 1]
push eax
push 0xf
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, edi
call fcn.00429b34
mov edi, dword [edi + 0x20]
push 0
push esi
mov esi, dword [esp + 0x24]
mov ecx, esi
push 1
push 0x17
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x2c]
add esp, 0xc
inc eax
mov ecx, esi
push 0
push 0
push eax
push 0x10
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x94]
add esp, 0xc
mov ecx, esi
call fcn.00429cf4
mov esi, dword [esi + 0x20]
mov edx, 0x8a
push 0
lea eax, [esi + 2]
push eax
push dword [esp + 0x5c]
call fcn.00429abf
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
inc eax
push 0
push 0
push eax
push 0x10
pop edx
call fcn.00429abf
add esp, 0xc
lea edx, [esp + 0xb0]
mov ecx, ebx
call fcn.004507bc
mov edx, dword [esp + 0x34]
inc esi
push 0x10
push esi
mov ecx, ebx
call fcn.0043a184
push edi
mov edi, dword [esp + 0x70]
lea eax, [esp + 0xfc]
push esi
push dword [esp + 0x4c]
mov edx, edi
mov ecx, ebx
push eax
lea eax, [esp + 0x80]
push eax
push 0xffffffffffffffff
push dword [edi]
call fcn.0044c830
mov eax, dword [esp + 0x44]
add esp, 0x24
inc eax
push 0
push 0
mov esi, dword [esp + 0x24]
mov ecx, esi
push eax
push 0x10
pop edx
call fcn.00429abf
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, esi
call fcn.00429cf4
lea edx, [esp + 0xb0]
mov ecx, ebx
call fcn.0045070e
push 0
push 0
push dword [esp + 0x34]
mov ecx, esi
push 0x10
pop edx
call fcn.00429abf
add esp, 0xc
jmp 0x451d49
and dword [esp + 0x54], 0
lea edx, [esp + 0xb0]
mov ecx, edi
call fcn.0044fa92
mov dword [esp + 0x20], eax
test eax, eax
je 0x451c0d
mov ecx, dword [ebx]
mov edx, dword [eax + 0x40]
call fcn.0044b984
mov edx, dword [esp + 0x20]
mov ecx, eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x2c], eax
inc eax
mov dword [ebx + 0x44], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x38], eax
mov eax, dword [edx + 0x1c]
mov edx, ecx
mov dword [esp + 0x28], ecx
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.00440ee1
mov eax, dword [esp + 0x20]
mov ecx, ebx
mov edx, dword [esp + 0x28]
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.0043ce82
mov edx, dword [esp + 0x2c]
add esp, 0xc
test byte [edx + 0x2a], 0x20
je 0x451b3f
mov ecx, edx
call fcn.0043d90c
mov ecx, eax
mov dword [esp + 0x38], ecx
jmp 0x451b43
mov ecx, dword [esp + 0x38]
mov eax, dword [edx + 8]
test eax, eax
je 0x451b7b
test byte [eax + 0x38], 4
jne 0x451b6c
movzx edi, word [eax + 0x30]
cmp di, word [edx + 0x28]
jge 0x451b6c
cmp dword [eax + 0x24], 0
jne 0x451b6c
test ecx, ecx
je 0x451b6a
cmp di, word [ecx + 0x30]
jge 0x451b6c
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x451b4a
mov edi, dword [esp + 0x64]
mov dword [esp + 0x38], ecx
test ecx, ecx
je 0x451b93
mov eax, dword [ecx + 0x2c]
mov edx, ecx
mov ecx, ebx
mov dword [esp + 0x44], eax
call fcn.00441383
mov dword [esp + 0x40], eax
push 1
push dword [esp + 0x2c]
mov ecx, esi
push dword [esp + 0x4c]
push dword [esp + 0x38]
push 0x36
pop edx
call fcn.00429c89
mov eax, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x451bc5
push 0xfffffffffffffffa
push eax
or edx, 0xffffffff
mov ecx, esi
call fcn.0042a043
pop ecx
pop ecx
mov eax, dword [esp + 0xd8]
mov ecx, esi
push 0
push dword [eax + 8]
push dword [esp + 0x34]
push 0x32
pop edx
call fcn.00429abf
add esp, 0xc
mov ecx, esi
push 0
push 0
push dword [esp + 0x34]
push 0x3d
pop edx
call fcn.00429abf
mov eax, dword [esp + 0x44]
add esp, 0xc
mov edx, dword [esp + 0x20]
mov ecx, ebx
push eax
call fcn.00450a36
pop ecx
jmp 0x451d08
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], eax
mov byte [esp + 0x33], al
cmp dword [edi + 0x2c], eax
jne 0x451c80
lea edx, [esp + 0x2c]
lea ecx, [esp + 0xb0]
call fcn.0044fa32
mov byte [esp + 0x33], al
test al, al
je 0x451c78
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
push 0
call fcn.0043791c
mov dword [esp + 0x58], eax
mov edx, eax
mov dword [esp + 0x44], edx
pop ecx
test eax, eax
je 0x451c80
mov eax, dword [esp + 0x18]
cmp byte [eax + 0x41], 0
jne 0x451c80
mov eax, dword [edx + 4]
cmp byte [esp + 0x33], 1
setne cl
mov byte [eax + 0xc], cl
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov byte [eax], 0x9a
jmp 0x451c80
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
lea edx, [esp + 0xb0]
mov ecx, ebx
call fcn.0045070e
movzx eax, byte [esp + 0x33]
mov ecx, ebx
mov edx, dword [esp + 0x14]
push 0
push eax
push 0
push dword [esp + 0x4c]
push dword [esp + 0x68]
call fcn.0045c535
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
jne 0x451ccd
mov esi, dword [esp + 0x18]
mov ecx, esi
mov edx, dword [esp + 0x54]
call fcn.00437db3
xor eax, eax
inc eax
jmp 0x450d1a
lea edx, [esp + 0xb0]
mov ecx, ebx
call fcn.00450806
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x24], 0
jle 0x451cf3
mov edx, dword [eax + 0x34]
mov ecx, esi
call fcn.00429b34
mov eax, dword [esp + 0x28]
mov ecx, eax
call fcn.0045cd36
lea edx, [esp + 0xb0]
mov ecx, ebx
call fcn.004507bc
mov edx, dword [esp + 0x34]
mov ecx, ebx
and dword [esp + 0x68], 0
push 0x10
push dword [esp + 0x28]
call fcn.0043a184
mov eax, dword [esp + 0x2c]
mov edx, edi
push eax
push eax
push dword [esp + 0x4c]
mov ecx, ebx
push 0
push 0
push 0xffffffffffffffff
push dword [edi]
call fcn.0044c830
mov edx, dword [esp + 0x78]
add esp, 0x24
mov ecx, dword [esp + 0x18]
call fcn.00437db3
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.00429cf4
cmp byte [esp + 0xf1], 3
jne 0x451d6a
mov edx, str.DISTINCT
mov ecx, ebx
call fcn.0044cff7
cmp dword [esp + 0x68], 0
je 0x451da5
cmp dword [esp + 0x6c], 0
mov eax, str.ORDER_BY
mov edx, str.RIGHT_PART_OF_ORDER_BY
mov ecx, ebx
cmovle edx, eax
call fcn.0044cff7
mov eax, dword [esp + 0x48]
mov edx, edi
push dword [esp + 0x3c]
mov ecx, ebx
push dword [eax]
lea eax, [esp + 0x70]
push eax
call fcn.0044d0ab
add esp, 0xc
mov edx, dword [esp + 0xec]
mov ecx, esi
call fcn.00429cf4
xor eax, eax
cmp dword [ebx + 0x40], eax
setg al
mov dword [esp + 0x5c], eax
jmp 0x450d16
xor eax, eax
inc eax
jmp 0x451dcb
mov esi, ecx
mov ecx, dword [esp + 0xe0]
mov dword [ebx + 0x1cc], ecx
test eax, eax
jne 0x451df1
mov eax, dword [esp + 0x3c]
cmp byte [eax], 9
jne 0x451df1
push dword [esp + 0x48]
mov ecx, ebx
call fcn.0044d561
pop ecx
mov edx, dword [esp + 0xcc]
mov ecx, esi
call fcn.00413e42
mov edx, dword [esp + 0xd8]
mov ecx, esi
call fcn.00413e42
mov eax, dword [esp + 0x5c]
jmp 0x451e16
xor eax, eax
inc eax
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0047c71d
mov esp, ebp
pop ebp
ret