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

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x456e90
test dword [0x87ed4c], 0xffffffff
jne 0x457ee0
call fcn.007663a0
jmp fcn.00456e60
push edi
push esi
push ebp
push ebx
sub esp, 0x88
mov ebx, ecx
mov edi, edx
mov ebp, dword [eax]
mov edx, dword [ebx]
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x80], ebp
mov ebp, dword [edi + 0x1c]
cmp dword [ebp + 0x18], 0
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], eax
jne 0x457a43
cmp dword [ebp + 0x28], 0
jne 0x457a00
mov eax, dword [esp + 0x84]
call fcn.004395a0
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x68]
cmp eax, 9
je 0x457e55
mov edx, dword [edi]
mov ecx, dword [edx]
mov esi, dword [ebp]
cmp ecx, dword [esi]
jne 0x457e0f
cmp dword [edi + 0x18], 0
je 0x456f2e
mov eax, dword [esp + 0x84]
mov edx, edi
mov ecx, ebx
call fcn.00458f40
add esp, 0x88
pop ebx
pop ebp
pop esi
pop edi
ret
movzx edx, byte [edi + 4]
cmp edx, 0x71
je 0x4578a0
cmp edx, 0x72
je 0x45746a
cmp edx, 0x70
je 0x45746a
mov esi, dword [esp + 0x84]
mov edx, dword [esi + 0x44]
mov dword [esp + 0x4c], edx
lea eax, [edx + 1]
lea ecx, [edx + 2]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
mov dword [esi + 0x44], ecx
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov dword [esp + 0x28], edx
jl 0x456f88
call fcn.0045ce30
test eax, eax
jne 0x456fc7
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], edi
inc edx
mov edi, dword [esi + 0x14]
mov dword [esi + 0xc], edx
xor eax, eax
mov edx, dword [esp + 0x28]
lea edx, [edx + edx*4]
mov byte [edi + edx*4], 0x28
mov byte [edi + edx*4 + 3], al
mov dword [edi + edx*4 + 4], ecx
mov dword [edi + edx*4 + 8], eax
mov dword [edi + edx*4 + 0xc], eax
mov dword [edi + edx*4 + 0x10], eax
mov byte [edi + edx*4 + 1], al
mov edi, dword [esp + 0x58]
mov byte [esi + 0x62], al
jmp 0x456fcf
mov dword [esp + 0x28], 1
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov edx, dword [edi + 0x24]
mov dword [edi + 0x38], esi
movzx eax, word [edx + 6]
or eax, 8
mov word [edx + 6], ax
lea eax, [esp + 0x38]
mov edx, 1
call fcn.0058d110
mov eax, dword [esp + 0x84]
mov edx, ebp
lea ecx, [esp + 0x38]
call fcn.005671b0
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
je 0x457026
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
jmp 0x457a9a
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov dword [esp + 0x30], edx
jl 0x457046
call fcn.0045ce30
test eax, eax
jne 0x457085
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov esi, eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x58], edi
inc edx
mov edi, dword [esi + 0x14]
mov dword [esi + 0xc], edx
xor eax, eax
mov edx, dword [esp + 0x30]
lea edx, [edx + edx*4]
mov byte [edi + edx*4], 0x28
mov byte [edi + edx*4 + 3], al
mov dword [edi + edx*4 + 4], ecx
mov dword [edi + edx*4 + 8], eax
mov dword [edi + edx*4 + 0xc], eax
mov dword [edi + edx*4 + 0x10], eax
mov byte [edi + edx*4 + 1], al
mov edi, dword [esp + 0x58]
mov byte [esi + 0x62], al
jmp 0x45708d
mov dword [esp + 0x30], 1
mov esi, dword [esp + 0x30]
mov edx, dword [edi + 0x28]
mov ecx, dword [edi + 0x2c]
mov dword [edi + 0x3c], esi
xor eax, eax
mov dword [edi + 0x1c], eax
mov dword [esp + 0x28], edx
mov edx, edi
mov dword [edi + 0x28], eax
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x38]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x84]
call fcn.005671b0
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x28]
mov dword [esp + 0x7c], eax
mov dword [edi + 0x1c], ebp
test edx, edx
je 0x4570e8
mov eax, dword [esp + 0x80]
call fcn.0044db10
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
movzx ecx, byte [esp + 0x68]
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], edx
cmp ecx, 5
je 0x457ab2
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
mov edx, edi
call fcn.0045e830
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x45714e
call fcn.0045ce30
test eax, eax
jne 0x457183
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x4c]
mov byte [ecx + edx*4], 0x40
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov esi, dword [esp + 0x30]
mov dword [ecx + edx*4 + 8], esi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + 0x15]
test eax, eax
je 0x4571aa
mov edx, dword [esp + 0x84]
dec eax
mov byte [edx + 0x15], al
movzx eax, al
mov ecx, dword [edx + eax*4 + 0x18]
mov dword [esp + 0x2c], ecx
jmp 0x4571bc
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x48]
inc eax
mov dword [esp + 0x2c], eax
mov dword [edx + 0x48], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov dword [esp + 0x28], edx
jl 0x4571dc
call fcn.0045ce30
test eax, eax
jne 0x457217
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
mov esi, dword [esp + 0x28]
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x4c]
mov byte [ecx + edx*4], 0x3a
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov esi, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 8], esi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x45721f
mov dword [esp + 0x28], 1
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], ebp
mov edx, 0x30
mov dword [esp + 0x10], esi
call fcn.004dcdf0
mov ebp, eax
mov edx, dword [esp + 0x5c]
mov eax, dword [edx]
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x457289
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x457289
test ebp, ebp
jns 0x457264
mov edx, dword [esp + 0x5c]
mov ebp, dword [edx + 0xc]
dec ebp
mov esi, ecx
lea ebp, [ebp + ebp*4]
movsx edx, byte [esi + ebp*4 + 1]
mov ecx, dword [esi + ebp*4 + 0x10]
call fcn.004337c0
mov eax, esi
mov dword [eax + ebp*4 + 0x10], 0
mov byte [eax + ebp*4 + 1], 0xf2
jmp 0x457295
mov edx, 0xfffffff2
xor ecx, ecx
call fcn.004337c0
cmp dword [esp + 0x2c], 0
je 0x4572e0
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + 0x15]
cmp eax, 8
jge 0x4572e0
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x2c]
lea ecx, [ecx + 0x60]
xor edx, edx
cmp ebp, dword [ecx + 0x10]
je 0x457aa9
inc edx
add ecx, 0x18
cmp edx, 0xa
jl 0x4572bc
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov dword [ecx + eax*4 + 0x18], edx
inc byte [ecx + 0x15]
mov ecx, dword [edi]
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
mov esi, dword [ecx]
mov dword [esp + 0xc], ebp
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x10], esi
lea eax, [esp + 0x68]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], edx
mov edx, edi
mov dword [esp + 0x24], ebp
call fcn.005707e0
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x5c]
shl eax, 2
neg eax
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x34], eax
test ecx, ecx
je 0x45734b
mov eax, edx
mov ebp, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x457369
call fcn.0045ce30
test eax, eax
jne 0x45739e
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x4c]
mov byte [ecx + edx*4], 0x42
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [ecx + edx*4 + 8], esi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
shl eax, 2
neg eax
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x4573c3
mov eax, edx
mov ebp, dword [esp + 0x30]
mov edx, dword [eax + 0xc]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x4573e1
call fcn.0045ce30
test eax, eax
jne 0x457412
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea esi, [esi + esi*4]
mov edx, dword [esp + 0x48]
mov byte [ecx + esi*4], 0x2a
xor eax, eax
mov byte [ecx + esi*4 + 3], al
mov dword [ecx + esi*4 + 4], edx
mov dword [ecx + esi*4 + 8], eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x457434
call fcn.0045ce30
test eax, eax
jne 0x4579b8
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea esi, [esi + esi*4]
mov edx, dword [esp + 0x4c]
mov byte [ecx + esi*4], 0x2a
xor eax, eax
mov byte [ecx + esi*4 + 3], al
mov dword [ecx + esi*4 + 4], edx
mov dword [ecx + esi*4 + 8], eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x4579b8
cmp eax, 1
jne 0x457479
cmp dword [edi + 0x28], 0
je 0x457ad9
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x5c]
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x38], eax
lea edx, [eax + 1]
mov dword [ecx + 0x44], edx
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x28], eax
jl 0x4574ad
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x4574ea
mov eax, esi
mov eax, dword [eax + 0xc]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x58], edi
inc eax
mov edi, dword [esi + 0x14]
mov dword [esi + 0xc], eax
lea edx, [edx + edx*4]
xor eax, eax
mov byte [edi + edx*4], 0x28
mov byte [edi + edx*4 + 3], al
mov dword [edi + edx*4 + 4], ecx
mov dword [edi + edx*4 + 8], eax
mov dword [edi + edx*4 + 0xc], eax
mov dword [edi + edx*4 + 0x10], eax
mov byte [edi + edx*4 + 1], al
mov edi, dword [esp + 0x58]
mov byte [esi + 0x62], al
jmp 0x4574f2
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x38], eax
movzx edx, word [ecx + 6]
or edx, 8
mov word [ecx + 6], dx
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x48]
mov edx, 1
call fcn.0058d110
mov eax, dword [esp + 0x84]
mov edx, ebp
lea ecx, [esp + 0x48]
call fcn.005671b0
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
je 0x457549
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
jmp 0x457a9a
movzx esi, byte [edi + 4]
mov ecx, dword [edi + 0x28]
mov edx, 2
mov eax, 1
cmp esi, 0x72
mov esi, dword [edi + 0x2c]
cmove eax, edx
mov dword [edi + 0x1c], 0
mov edx, edi
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x48]
mov dword [edi + 0x28], 0
mov dword [esp + 0x2c], esi
mov dword [edi + 0x2c], 0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x84]
call fcn.005671b0
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x34], eax
test eax, eax
je 0x45768c
cmp dword [eax], 0
mov edx, dword [eax + 0xc]
jle 0x457670
xor eax, eax
mov dword [esp + 0x58], edi
mov edi, eax
mov esi, edx
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x34]
mov edx, dword [esi]
mov eax, ebp
call fcn.004cdfe0
mov eax, dword [esi + 4]
test ebp, ebp
je 0x457b34
test eax, eax
je 0x457616
cmp eax, dword [ebp + 0xf0]
jb 0x457b2a
cmp eax, dword [ebp + 0xf4]
jae 0x457b2a
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
mov eax, dword [esi + 8]
test ebp, ebp
je 0x457b21
test eax, eax
je 0x457651
cmp eax, dword [ebp + 0xf0]
jb 0x457b17
cmp eax, dword [ebp + 0xf4]
jae 0x457b17
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
dec dword [ebp + 0xe4]
mov dword [ebp + 0xec], eax
inc edi
add esi, 0x14
cmp edi, dword [ebx]
jl 0x4575d2
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x80]
call fcn.004e33d8
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x34]
call fcn.004e33d8
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x28]
mov dword [esp + 0x7c], eax
mov dword [edi + 0x1c], ebp
mov dword [edi + 0x18], 0
test edx, edx
je 0x4576b0
mov eax, dword [esp + 0x80]
call fcn.0044db10
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
mov dword [edi + 0x28], ebp
xor eax, eax
mov dword [edi + 0x2c], esi
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
movzx eax, byte [esp + 0x68]
cmp eax, 1
je 0x4579b8
cmp eax, 5
je 0x457af0
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x2c]
mov edx, edi
call fcn.0045e830
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x457727
call fcn.0045ce30
test eax, eax
jne 0x45775c
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x38]
mov byte [ecx + edx*4], 0x40
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov esi, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 8], esi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x38]
mov esi, dword [ebp + 0xc]
mov ecx, dword [edi]
mov edx, dword [ecx]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
lea ebp, [esp + 0x68]
mov edx, edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
call fcn.005707e0
mov eax, esi
mov edx, dword [esp + 0x5c]
shl eax, 2
neg eax
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x30], eax
test ecx, ecx
je 0x4577d0
mov eax, edx
mov ebp, dword [esp + 0x30]
mov edx, dword [eax + 0xc]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x4577ee
call fcn.0045ce30
test eax, eax
jne 0x457823
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea edx, [esi + esi*4]
mov esi, dword [esp + 0x38]
mov byte [ecx + edx*4], 0x42
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], esi
mov esi, dword [esp + 0x28]
mov dword [ecx + edx*4 + 8], esi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x5c]
shl eax, 2
neg eax
mov ecx, dword [edx + 0x20]
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x457848
mov eax, edx
mov ebp, dword [esp + 0x2c]
mov edx, dword [eax + 0xc]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
cmp edx, dword [eax + 0x10]
mov esi, edx
jl 0x45786a
call fcn.0045ce30
test eax, eax
jne 0x4579b8
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov ebp, eax
inc edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp + 0xc], edx
lea esi, [esi + esi*4]
mov edx, dword [esp + 0x38]
mov byte [ecx + esi*4], 0x2a
xor eax, eax
mov byte [ecx + esi*4 + 3], al
mov dword [ecx + esi*4 + 4], edx
mov dword [ecx + esi*4 + 8], eax
mov dword [ecx + esi*4 + 0xc], eax
mov dword [ecx + esi*4 + 0x10], eax
mov byte [ecx + esi*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x4579b8
mov esi, dword [edi + 0x28]
mov dword [ebp + 0x28], esi
mov edx, ebp
lea ecx, [esp + 0x68]
mov eax, dword [edi + 0x2c]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x84]
call fcn.005671b0
mov dword [esp + 0x78], eax
xor eax, eax
cmp dword [esp + 0x78], 0
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
je 0x4578e4
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
jmp 0x457a9a
mov dword [edi + 0x1c], 0
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x2c], edx
mov dword [edi + 0x30], edx
mov eax, dword [ebp + 0x34]
mov dword [edi + 0x34], eax
test edx, edx
jne 0x457907
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x457972
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 0x10]
mov dword [esp + 0x28], eax
jl 0x457929
mov eax, edx
call fcn.0045ce30
test eax, eax
jne 0x45796a
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x58], edi
inc eax
mov edi, dword [esi + 0x14]
mov dword [esi + 0xc], eax
lea edx, [edx + edx*4]
xor eax, eax
mov byte [edi + edx*4], 0x72
mov byte [edi + edx*4 + 3], al
mov dword [edi + edx*4 + 4], ecx
mov dword [edi + edx*4 + 8], eax
mov dword [edi + edx*4 + 0xc], eax
mov dword [edi + edx*4 + 0x10], eax
mov byte [edi + edx*4 + 1], al
mov edi, dword [esp + 0x58]
mov byte [esi + 0x62], al
jmp 0x457972
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x84]
mov edx, edi
lea ecx, [esp + 0x68]
call fcn.005671b0
mov dword [esp + 0x78], eax
mov eax, dword [edi + 0x1c]
cmp dword [esp + 0x28], 0
mov dword [esp + 0x7c], eax
mov dword [edi + 0x1c], ebp
je 0x4579b8
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [esp + 0x28]
jle 0x4579b8
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x5c]
lea esi, [eax + eax*4]
mov ebp, dword [edx + 0x14]
mov dword [ebp + esi*4 + 8], ecx
test byte [edi + 6], 8
jne 0x457b3d
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x7c], 0
mov edx, dword [esp + 0x74]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
je 0x457a9a
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
call fcn.004ce330
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
call fcn.004e33d8
jmp 0x457a9a
movzx eax, byte [edi + 4]
cmp eax, 0x71
je 0x457a27
cmp eax, 0x73
jne 0x457a15
mov eax, str.INTERSECT
jmp 0x457a2c
mov edx, str.EXCEPT
cmp eax, 0x72
mov eax, str.UNION
cmove eax, edx
jmp 0x457a2c
mov eax, str.UNION_ALL
push eax
push str.LIMIT_clause_should_come_after__s_not_before
push dword [esp + 0x8c]
call fcn.005860f0
add esp, 0xc
jmp 0x457a84
movzx eax, byte [edi + 4]
cmp eax, 0x71
je 0x457a6a
cmp eax, 0x73
jne 0x457a58
mov eax, str.INTERSECT
jmp 0x457a6f
mov edx, str.EXCEPT
cmp eax, 0x72
mov eax, str.UNION
cmove eax, edx
jmp 0x457a6f
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
push dword [esp + 0x8c]
call fcn.005860f0
add esp, 0xc
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edx
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0x78]
add esp, 0x88
pop ebx
pop ebp
pop esi
pop edi
ret
mov byte [ecx + 8], 1
jmp 0x4572e0
mov eax, dword [edi + 0x1c]
mov ecx, edi
test eax, eax
je 0x457ac4
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x457abb
mov eax, dword [esp + 0x84]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0045d610
jmp 0x457104
cmp dword [edi + 0x2c], 0
jne 0x457479
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], eax
jmp 0x457507
mov eax, dword [edi + 0x1c]
mov ecx, edi
test eax, eax
je 0x457b02
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x457af9
mov eax, dword [esp + 0x84]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0045d610
jmp 0x4576dd
call fcn.004c69c4
jmp 0x457651
test eax, eax
jne 0x457b17
jmp 0x457651
call fcn.004c69c4
jmp 0x457616
test eax, eax
jne 0x457b2a
jmp 0x457616
mov ecx, dword [edi]
mov ebp, dword [ecx]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x64], ebp
lea ebp, [ebp + ebp*4 + 0x10]
mov edx, ebp
call fcn.004a76c0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
je 0x457d06
push ebp
push 0
push dword [esp + 0x60]
call fcn.00766740
add esp, 0xc
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x58]
mov esi, dword [ebp + 8]
lea ebp, [ecx + 0xc]
mov eax, dword [esi + 0xc]
movzx edx, byte [eax + 0x49]
mov eax, dword [esp + 0x64]
mov byte [ecx + 4], dl
mov word [ecx + 6], ax
test eax, eax
jle 0x457be9
xor eax, eax
xor esi, esi
mov dword [esp + 0x60], ebx
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x457e08
mov eax, dword [esp + 0x84]
mov ecx, esi
call fcn.0045ce90
mov edx, eax
test edx, edx
je 0x457d13
mov dword [ebp], edx
test edx, edx
jne 0x457bdb
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x2c]
mov dword [ebp], edx
inc esi
add ebp, 4
cmp esi, dword [esp + 0x64]
jl 0x457ba4
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x5c]
xor eax, eax
mov ebp, eax
mov edx, dword [edi + ebp*4 + 0x38]
test edx, edx
jl 0x457cd9
cmp edx, dword [ebx + 0xc]
jge 0x457c14
mov ecx, dword [ebx + 0x14]
lea esi, [edx + edx*4]
mov eax, dword [esp + 0x64]
mov dword [ecx + esi*4 + 8], eax
mov eax, dword [ebx]
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x457cc7
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
jne 0x457cc7
lea ecx, [edx + edx*4]
movsx edx, byte [esi + ecx*4 + 1]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esi + ecx*4 + 0x10]
call fcn.004337c0
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
mov dword [esi + edx*4 + 0x10], 0
movzx eax, word [ecx + 6]
mov dword [esp + 0x34], eax
lea eax, [eax + eax*4 + 0xc]
mov dword [esp + 0x30], eax
call fcn.0041ebd4
mov edx, dword [esp + 0x5c]
mov dword [esi + edx*4 + 0x10], eax
test eax, eax
je 0x457cbc
push dword [esp + 0x30]
push dword [esp + 0x5c]
push eax
mov dword [esp + 0x38], eax
call fcn.007666b0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x457cb1
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], esi
lea esi, [eax + ecx*4 + 0xc]
mov dword [eax + 8], esi
push ecx
push edx
push esi
mov esi, dword [esp + 0x34]
call fcn.007666b0
add esp, 0xc
mov eax, dword [esp + 0x5c]
mov byte [esi + eax*4 + 1], 0xfa
jmp 0x457cc7
mov eax, dword [ebx]
mov byte [eax + 0x1e], 1
mov byte [esi + edx*4 + 1], 0
mov dword [edi + ebp*4 + 0x38], 0xffffffff
inc ebp
cmp ebp, 2
jl 0x457bf5
nop dword [eax]
xor eax, eax
mov edi, dword [edi + 0x1c]
test edi, edi
jne 0x457bf3
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x58]
call fcn.004e33d8
jmp 0x4579c2
mov dword [esp + 0x78], 7
jmp 0x4579c2
mov ecx, dword [edi]
cmp esi, dword [ecx]
jge 0x457bc7
mov ecx, dword [ecx + 0xc]
lea eax, [esi + esi*4]
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x457e04
mov dword [esp + 0x2c], ebp
mov edx, dword [ecx + 0x14]
test edx, edx
jne 0x457d7c
movzx ebp, byte [ecx]
mov ebx, dword [ecx + 0x28]
test ebx, ebx
je 0x457d68
cmp ebp, 0x3c
je 0x457dfe
cmp ebp, 0x84
je 0x457d82
cmp ebp, 0x98
je 0x457d82
cmp ebp, 0x9a
je 0x457d82
cmp ebp, 0x25
je 0x457d75
cmp ebp, 0x9d
jne 0x457d7c
mov ecx, dword [ecx + 8]
test ecx, ecx
jne 0x457d36
mov ebp, dword [esp + 0x2c]
jmp 0x457dde
mov ebp, dword [esp + 0x2c]
movsx ecx, word [ecx + 0x1c]
test ecx, ecx
jl 0x457dde
mov edx, dword [esp + 0x84]
mov eax, dword [edx]
mov dword [esp + 0x28], eax
lea edx, [ecx + ecx*2]
mov ecx, ebx
mov ebx, dword [ecx + 0x10]
mov edx, dword [ebx + edx*8 + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movzx ebx, byte [ecx + 0x49]
test edx, edx
je 0x457dc2
mov eax, dword [esp + 0x28]
xor ecx, ecx
call fcn.0041ed00
jmp 0x457dc9
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x2c]
mov edx, ebx
mov ebx, dword [esp + 0x30]
lea ecx, [edx + edx*4]
lea edx, [eax + ecx*4 - 0x14]
test eax, eax
cmove edx, eax
mov dword [ebx + 0x14], edx
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], edx
call fcn.004384d0
mov edx, dword [esp + 0x34]
xor ecx, ecx
test eax, eax
cmovne edx, ecx
jmp 0x457bc7
mov ebp, dword [esp + 0x2c]
jmp 0x457d86
xor edx, edx
jmp 0x457dde
xor edx, edx
jmp 0x457d13
movzx eax, byte [edi + 4]
cmp eax, 0x71
je 0x457e36
cmp eax, 0x73
jne 0x457e24
mov eax, str.INTERSECT
jmp 0x457e3b
mov edx, str.EXCEPT
cmp eax, 0x72
mov eax, str.UNION
cmove eax, edx
jmp 0x457e3b
mov eax, str.UNION_ALL
push eax
push str.SELECTs_to_the_left_and_right_of__s_do_not_have_the_same_number_of_result_columns
push dword [esp + 0x8c]
call fcn.005860f0
add esp, 0xc
jmp 0x457a84
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x5c]
mov edx, dword [edi]
mov ecx, dword [edx]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0xc]
cmp eax, dword [esi + 0x10]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
jl 0x457e85
mov eax, esi
call fcn.0045ce30
test eax, eax
jne 0x457ec4
mov eax, esi
mov eax, dword [eax + 0xc]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x58], edi
inc eax
mov edi, dword [esp + 0x30]
mov dword [esi + 0xc], eax
lea edx, [edi + edi*4]
mov edi, dword [esp + 0x28]
mov byte [ecx + edx*4], 0x28
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 8], edi
mov edi, dword [esp + 0x58]
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [esi + 0x62], al
mov byte [esp + 0x68], 8
mov eax, 8
jmp 0x456efe
push edi
push esi
push ebp
push ebx
sub esp, 0x88
mov esi, ecx
mov ebx, edx
mov dword [esp + 0x84], eax
mov ebp, dword [eax]
mov dword [esp + 0x80], ebp
mov ebp, dword [ebx + 0x1c]
mov edx, dword [esi]
mov dword [esp + 0x68], edx
mov ecx, dword [esi + 4]
mov dword [esp + 0x6c], ecx
mov edi, dword [esi + 8]
mov dword [esp + 0x70], edi
mov eax, dword [esi + 0xc]
mov dword [esp + 0x74], eax
cmp dword [ebp + 0x18], 0
jne 0x458a93
cmp dword [ebp + 0x28], 0
jne 0x458a4f
mov eax, dword [esp + 0x84]
call fcn.004395a0
mov dword [esp + 0x5c], eax
movzx eax, byte [esp + 0x68]
cmp eax, 9
je 0x458eb9
mov edx, dword [ebx]
mov ecx, dword [edx]
mov edi, dword [ebp]
cmp ecx, dword [edi]
jne 0x458e72
cmp dword [ebx + 0x18], 0
je 0x457f7e
mov eax, dword [esp + 0x84]
mov edx, ebx
mov ecx, esi
call fcn.00458f40
add esp, 0x88
pop ebx
pop ebp
pop esi
pop edi
ret
movzx edx, byte [ebx + 4]
cmp edx, 0x71
je 0x4588ef
cmp edx, 0x72
je 0x4584ba
cmp edx, 0x70
je 0x4584ba
mov edi, dword [esp + 0x84]
mov edx, dword [edi + 0x44]
mov dword [esp + 0x4c], edx
lea eax, [edx + 1]
mov dword [esp + 0x48], eax
lea ecx, [edx + 2]
mov dword [edi + 0x44], ecx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], edx
cmp edx, dword [eax + 0x10]
jl 0x457fd8
call fcn.0045ce30
test eax, eax
jne 0x458017
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x58], ebx
inc edx
mov edi, eax
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x28]
lea edx, [edx + edx*4]
mov ebx, dword [edi + 0x14]
mov byte [ebx + edx*4], 0x28
xor eax, eax
mov byte [ebx + edx*4 + 3], al
mov ecx, dword [esp + 0x4c]
mov dword [ebx + edx*4 + 4], ecx
mov dword [ebx + edx*4 + 8], eax
mov dword [ebx + edx*4 + 0xc], eax
mov dword [ebx + edx*4 + 0x10], eax
mov byte [ebx + edx*4 + 1], al
mov byte [edi + 0x62], al
mov ebx, dword [esp + 0x58]
jmp 0x45801f
mov dword [esp + 0x28], 1
mov edi, dword [esp + 0x28]
mov dword [ebx + 0x38], edi
mov edx, dword [ebx + 0x24]
movzx eax, word [edx + 6]
or eax, 8
mov word [edx + 6], ax
lea eax, [esp + 0x38]
mov edx, 1
mov ecx, dword [esp + 0x4c]
call fcn.0058d110
mov eax, dword [esp + 0x84]
mov edx, ebp
lea ecx, [esp + 0x38]
call fcn.005671b0
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
je 0x458076
mov eax, dword [esp + 0x70]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x74]
mov dword [esi + 0xc], edx
jmp 0x458aeb
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x30], edx
cmp edx, dword [eax + 0x10]
jl 0x458096
call fcn.0045ce30
test eax, eax
jne 0x4580d5
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x58], ebx
inc edx
mov edi, eax
mov dword [edi + 0xc], edx
mov edx, dword [esp + 0x30]
lea edx, [edx + edx*4]
mov ebx, dword [edi + 0x14]
mov byte [ebx + edx*4], 0x28
xor eax, eax
mov byte [ebx + edx*4 + 3], al
mov ecx, dword [esp + 0x48]
mov dword [ebx + edx*4 + 4], ecx
mov dword [ebx + edx*4 + 8], eax
mov dword [ebx + edx*4 + 0xc], eax
mov dword [ebx + edx*4 + 0x10], eax
mov byte [ebx + edx*4 + 1], al
mov byte [edi + 0x62], al
mov ebx, dword [esp + 0x58]
jmp 0x4580dd
mov dword [esp + 0x30], 1
mov edi, dword [esp + 0x30]
mov dword [ebx + 0x3c], edi
xor eax, eax
mov dword [ebx + 0x1c], eax
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x28], edx
mov dword [ebx + 0x28], eax
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x2c], ecx
mov dword [ebx + 0x2c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x84]
mov edx, ebx
lea ecx, [esp + 0x38]
call fcn.005671b0
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x1c], ebp
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x458138
mov eax, dword [esp + 0x80]
call fcn.0044db10
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x28], eax
mov edx, dword [esp + 0x2c]
mov dword [ebx + 0x2c], edx
movzx ecx, byte [esp + 0x68]
cmp ecx, 5
je 0x458b03
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x84]
mov edx, ebx
mov ecx, dword [esp + 0x30]
call fcn.0045e830
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x45819e
call fcn.0045ce30
test eax, eax
jne 0x4581d3
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edx, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edx*4], 0x40
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov edi, dword [esp + 0x4c]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x30]
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + 0x15]
test eax, eax
je 0x4581fa
dec eax
mov edx, dword [esp + 0x84]
mov byte [edx + 0x15], al
movzx eax, al
mov ecx, dword [edx + eax*4 + 0x18]
mov dword [esp + 0x2c], ecx
jmp 0x45820c
mov edx, dword [esp + 0x84]
mov eax, dword [edx + 0x48]
inc eax
mov dword [esp + 0x2c], eax
mov dword [edx + 0x48], eax
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov dword [esp + 0x28], edx
cmp edx, dword [eax + 0x10]
jl 0x45822c
call fcn.0045ce30
test eax, eax
jne 0x458267
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
mov edi, dword [esp + 0x28]
lea edx, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edx*4], 0x3a
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov edi, dword [esp + 0x4c]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x45826f
mov dword [esp + 0x28], 1
mov ebp, dword [esp + 0x34]
mov dword [esp + 0xc], ebp
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x5c]
mov edx, 0x30
mov ecx, dword [esp + 0x48]
call fcn.004dcdf0
mov ebp, eax
mov edx, dword [esp + 0x5c]
mov eax, dword [edx]
mov ecx, dword [edx + 0x14]
test ecx, ecx
je 0x4582d9
movzx edx, byte [eax + 0x1e]
test edx, edx
jne 0x4582d9
test ebp, ebp
jns 0x4582b4
mov edx, dword [esp + 0x5c]
mov ebp, dword [edx + 0xc]
dec ebp
lea ebp, [ebp + ebp*4]
mov edi, ecx
movsx edx, byte [edi + ebp*4 + 1]
mov ecx, dword [edi + ebp*4 + 0x10]
call fcn.004337c0
mov eax, edi
mov dword [eax + ebp*4 + 0x10], 0
mov byte [eax + ebp*4 + 1], 0xf2
jmp 0x4582e5
mov edx, 0xfffffff2
xor ecx, ecx
call fcn.004337c0
cmp dword [esp + 0x2c], 0
je 0x458330
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + 0x15]
cmp eax, 8
jge 0x458330
mov ecx, dword [esp + 0x84]
lea ecx, [ecx + 0x60]
xor edx, edx
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [ecx + 0x10]
je 0x458afa
inc edx
add ecx, 0x18
cmp edx, 0xa
jl 0x45830c
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x84]
mov dword [ecx + eax*4 + 0x18], edx
inc byte [ecx + 0x15]
mov ecx, dword [ebx]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0xc], ebp
mov edi, dword [ecx]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xffffffff
lea eax, [esp + 0x68]
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x34]
mov dword [esp + 0x20], edx
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x84]
mov edx, ebx
call fcn.005707e0
mov eax, dword [esp + 0x34]
shl eax, 2
neg eax
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x45839b
mov eax, edx
mov edx, dword [eax + 0xc]
mov ebp, dword [esp + 0x34]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x4583b9
call fcn.0045ce30
test eax, eax
jne 0x4583ee
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edx, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edx*4], 0x42
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov edi, dword [esp + 0x4c]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x30]
shl eax, 2
neg eax
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x458413
mov eax, edx
mov edx, dword [eax + 0xc]
mov ebp, dword [esp + 0x30]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x458431
call fcn.0045ce30
test eax, eax
jne 0x458462
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edi, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edi*4], 0x2a
xor eax, eax
mov byte [ecx + edi*4 + 3], al
mov edx, dword [esp + 0x48]
mov dword [ecx + edi*4 + 4], edx
mov dword [ecx + edi*4 + 8], eax
mov dword [ecx + edi*4 + 0xc], eax
mov dword [ecx + edi*4 + 0x10], eax
mov byte [ecx + edi*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x458484
call fcn.0045ce30
test eax, eax
jne 0x458a07
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edi, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edi*4], 0x2a
xor eax, eax
mov byte [ecx + edi*4 + 3], al
mov edx, dword [esp + 0x4c]
mov dword [ecx + edi*4 + 4], edx
mov dword [ecx + edi*4 + 8], eax
mov dword [ecx + edi*4 + 0xc], eax
mov dword [ecx + edi*4 + 0x10], eax
mov byte [ecx + edi*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x458a07
cmp eax, 1
jne 0x4584c9
cmp dword [ebx + 0x28], 0
je 0x458b2a
mov ecx, dword [esp + 0x84]
mov eax, dword [ecx + 0x44]
mov dword [esp + 0x38], eax
lea edx, [eax + 1]
mov dword [ecx + 0x44], edx
mov edi, dword [esp + 0x5c]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x28], eax
cmp eax, dword [edi + 0x10]
jl 0x4584fd
mov eax, edi
call fcn.0045ce30
test eax, eax
jne 0x45853a
mov eax, edi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x58], ebx
inc eax
mov dword [edi + 0xc], eax
mov edx, dword [esp + 0x28]
lea edx, [edx + edx*4]
mov ebx, dword [edi + 0x14]
mov byte [ebx + edx*4], 0x28
xor eax, eax
mov byte [ebx + edx*4 + 3], al
mov ecx, dword [esp + 0x38]
mov dword [ebx + edx*4 + 4], ecx
mov dword [ebx + edx*4 + 8], eax
mov dword [ebx + edx*4 + 0xc], eax
mov dword [ebx + edx*4 + 0x10], eax
mov byte [ebx + edx*4 + 1], al
mov byte [edi + 0x62], al
mov ebx, dword [esp + 0x58]
jmp 0x458542
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
mov dword [ebx + 0x38], eax
mov ecx, dword [ebx + 0x24]
movzx edx, word [ecx + 6]
or edx, 8
mov word [ecx + 6], dx
lea eax, [esp + 0x48]
mov edx, 1
mov ecx, dword [esp + 0x38]
call fcn.0058d110
mov eax, dword [esp + 0x84]
mov edx, ebp
lea ecx, [esp + 0x48]
call fcn.005671b0
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
je 0x458599
mov eax, dword [esp + 0x70]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x74]
mov dword [esi + 0xc], edx
jmp 0x458aeb
movzx edi, byte [ebx + 4]
mov eax, 2
cmp edi, 0x72
je 0x4585ac
mov eax, 1
mov dword [ebx + 0x1c], 0
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x30], edx
mov dword [ebx + 0x28], 0
mov ecx, dword [ebx + 0x2c]
mov dword [esp + 0x2c], ecx
mov dword [ebx + 0x2c], 0
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x84]
mov edx, ebx
lea ecx, [esp + 0x48]
call fcn.005671b0
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x34], eax
test eax, eax
je 0x4586db
mov edx, dword [eax + 0xc]
cmp dword [eax], 0
jle 0x4586bf
xor eax, eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x60], esi
mov esi, eax
mov edi, edx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x80]
mov eax, ebp
mov edx, dword [edi]
call fcn.004cdfe0
mov eax, dword [edi + 4]
test ebp, ebp
je 0x458b85
test eax, eax
je 0x458665
cmp eax, dword [ebp + 0xf0]
jb 0x458b7b
cmp eax, dword [ebp + 0xf4]
jae 0x458b7b
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
mov dword [ebp + 0xec], eax
dec dword [ebp + 0xe4]
mov eax, dword [edi + 8]
test ebp, ebp
je 0x458b72
test eax, eax
je 0x4586a0
cmp eax, dword [ebp + 0xf0]
jb 0x458b68
cmp eax, dword [ebp + 0xf4]
jae 0x458b68
mov ecx, dword [ebp + 0xec]
mov dword [eax], ecx
mov dword [ebp + 0xec], eax
dec dword [ebp + 0xe4]
inc esi
add edi, 0x14
cmp esi, dword [ebx]
jl 0x458621
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x80]
call fcn.004e33d8
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x34]
call fcn.004e33d8
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x1c], ebp
mov dword [ebx + 0x18], 0
mov edx, dword [ebx + 0x28]
test edx, edx
je 0x4586ff
mov eax, dword [esp + 0x80]
call fcn.0044db10
mov ebp, dword [esp + 0x30]
mov dword [ebx + 0x28], ebp
mov edi, dword [esp + 0x2c]
mov dword [ebx + 0x2c], edi
xor eax, eax
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], eax
movzx eax, byte [esp + 0x68]
cmp eax, 1
je 0x458a07
cmp eax, 5
je 0x458b41
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x5c]
call fcn.00438100
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
mov edx, ebx
mov ecx, dword [esp + 0x2c]
call fcn.0045e830
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x458776
call fcn.0045ce30
test eax, eax
jne 0x4587ab
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edx, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edx*4], 0x40
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov edi, dword [esp + 0x38]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov ebp, dword [esp + 0x5c]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x28], edi
mov ecx, dword [ebx]
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov edx, dword [ecx]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0xffffffff
lea ebp, [esp + 0x68]
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 0x30]
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x84]
mov edx, ebx
call fcn.005707e0
mov eax, edi
shl eax, 2
neg eax
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x45881f
mov eax, edx
mov edx, dword [eax + 0xc]
mov ebp, dword [esp + 0x30]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x45883d
call fcn.0045ce30
test eax, eax
jne 0x458872
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edx, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edx*4], 0x42
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov edi, dword [esp + 0x38]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x28]
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebp + 0x62], al
mov eax, dword [esp + 0x2c]
shl eax, 2
neg eax
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x5c]
mov ecx, dword [edx + 0x20]
test ecx, ecx
je 0x458897
mov eax, edx
mov edx, dword [eax + 0xc]
mov ebp, dword [esp + 0x2c]
mov dword [ecx + ebp - 4], edx
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
mov edi, edx
cmp edx, dword [eax + 0x10]
jl 0x4588b9
call fcn.0045ce30
test eax, eax
jne 0x458a07
mov eax, dword [esp + 0x5c]
mov edx, dword [eax + 0xc]
inc edx
mov ebp, eax
mov dword [ebp + 0xc], edx
lea edi, [edi + edi*4]
mov ecx, dword [ebp + 0x14]
mov byte [ecx + edi*4], 0x2a
xor eax, eax
mov byte [ecx + edi*4 + 3], al
mov edx, dword [esp + 0x38]
mov dword [ecx + edi*4 + 4], edx
mov dword [ecx + edi*4 + 8], eax
mov dword [ecx + edi*4 + 0xc], eax
mov dword [ecx + edi*4 + 0x10], eax
mov byte [ecx + edi*4 + 1], al
mov byte [ebp + 0x62], al
jmp 0x458a07
mov edi, dword [ebx + 0x28]
mov dword [ebp + 0x28], edi
mov eax, dword [ebx + 0x2c]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x84]
mov edx, ebp
lea ecx, [esp + 0x68]
call fcn.005671b0
mov dword [esp + 0x78], eax
xor eax, eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
cmp dword [esp + 0x78], 0
je 0x458933
mov eax, dword [esp + 0x70]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x74]
mov dword [esi + 0xc], edx
jmp 0x458aeb
mov dword [ebx + 0x1c], 0
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x30], edx
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x34], eax
test edx, edx
jne 0x458956
xor eax, eax
mov dword [esp + 0x28], eax
jmp 0x4589c1
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 0xc]
mov dword [esp + 0x28], eax
cmp eax, dword [edx + 0x10]
jl 0x458978
mov eax, edx
call fcn.0045ce30
test eax, eax
jne 0x4589b9
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x58], ebx
inc eax
mov edi, dword [esp + 0x5c]
mov dword [edi + 0xc], eax
mov edx, dword [esp + 0x28]
lea edx, [edx + edx*4]
mov ebx, dword [edi + 0x14]
mov byte [ebx + edx*4], 0x72
xor eax, eax
mov byte [ebx + edx*4 + 3], al
mov ecx, dword [esp + 0x2c]
mov dword [ebx + edx*4 + 4], ecx
mov dword [ebx + edx*4 + 8], eax
mov dword [ebx + edx*4 + 0xc], eax
mov dword [ebx + edx*4 + 0x10], eax
mov byte [ebx + edx*4 + 1], al
mov byte [edi + 0x62], al
mov ebx, dword [esp + 0x58]
jmp 0x4589c1
mov dword [esp + 0x28], 1
mov eax, dword [esp + 0x84]
mov edx, ebx
lea ecx, [esp + 0x68]
call fcn.005671b0
mov dword [esp + 0x78], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x7c], eax
mov dword [ebx + 0x1c], ebp
cmp dword [esp + 0x28], 0
je 0x458a07
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [esp + 0x28]
jle 0x458a07
mov eax, dword [esp + 0x28]
lea edi, [eax + eax*4]
mov edx, dword [esp + 0x5c]
mov ebp, dword [edx + 0x14]
mov dword [ebp + edi*4 + 8], ecx
test byte [ebx + 6], 8
jne 0x458b8e
mov eax, dword [esp + 0x70]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x74]
mov dword [esi + 0xc], edx
cmp dword [esp + 0x7c], 0
je 0x458aeb
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
call fcn.004ce330
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x7c]
call fcn.004e33d8
jmp 0x458aeb
movzx eax, byte [ebx + 4]
cmp eax, 0x71
je 0x458a77
cmp eax, 0x73
jne 0x458a64
mov eax, str.INTERSECT
jmp 0x458a7c
cmp eax, 0x72
jne 0x458a70
mov eax, str.EXCEPT
jmp 0x458a7c
mov eax, str.UNION
jmp 0x458a7c
mov eax, str.UNION_ALL
push eax
push str.LIMIT_clause_should_come_after__s_not_before
push dword [esp + 0x8c]
call fcn.005860f0
add esp, 0xc
jmp 0x458ad5
movzx eax, byte [ebx + 4]
cmp eax, 0x71
je 0x458abb
cmp eax, 0x73
jne 0x458aa8
mov eax, str.INTERSECT
jmp 0x458ac0
cmp eax, 0x72
jne 0x458ab4
mov eax, str.EXCEPT
jmp 0x458ac0
mov eax, str.UNION
jmp 0x458ac0
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
push dword [esp + 0x8c]
call fcn.005860f0
add esp, 0xc
mov eax, dword [esp + 0x70]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x74]
mov dword [esi + 0xc], edx
mov dword [esp + 0x78], 1
mov eax, dword [esp + 0x78]
add esp, 0x88
pop ebx
pop ebp
pop esi
pop edi
ret
mov byte [ecx + 8], 1
jmp 0x458330
mov ecx, ebx
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x458b15
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x458b0c
mov eax, dword [esp + 0x84]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0045d610
jmp 0x458154
cmp dword [ebx + 0x2c], 0
jne 0x4584c9
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], eax
jmp 0x458557
mov ecx, ebx
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x458b53
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x458b4a
mov eax, dword [esp + 0x84]
xor edx, edx
mov ecx, dword [ecx]
call fcn.0045d610
jmp 0x45872c
call fcn.004c69c4
jmp 0x4586a0
test eax, eax
jne 0x458b68
jmp 0x4586a0
call fcn.004c69c4
jmp 0x458665
test eax, eax
jne 0x458b7b
jmp 0x458665
mov ecx, dword [ebx]
mov ebp, dword [ecx]
mov dword [esp + 0x64], ebp
lea ebp, [ebp + ebp*4 + 0x10]
mov eax, dword [esp + 0x80]
mov edx, ebp
call fcn.004a76c0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
je 0x458d59
push ebp
push 0
push dword [esp + 0x60]
call fcn.00766740
add esp, 0xc
mov ebp, dword [esp + 0x80]
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
movzx edx, byte [eax + 0x49]
mov ecx, dword [esp + 0x58]
mov byte [ecx + 4], dl
mov eax, dword [esp + 0x64]
mov word [ecx + 6], ax
lea ebp, [ecx + 0xc]
test eax, eax
jle 0x458c3a
xor eax, eax
xor edi, edi
mov dword [esp + 0x60], esi
mov edx, dword [ebx + 0x1c]
test edx, edx
je 0x458e69
mov eax, dword [esp + 0x84]
mov ecx, edi
call fcn.0045ce90
mov esi, eax
test esi, esi
je 0x458d66
mov dword [ebp], esi
test esi, esi
jne 0x458c2c
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 0x2c]
mov dword [ebp], edx
inc edi
add ebp, 4
cmp edi, dword [esp + 0x64]
jl 0x458bf5
mov esi, dword [esp + 0x60]
mov dword [esp + 0x60], esi
xor eax, eax
mov ebp, dword [esp + 0x5c]
mov esi, eax
mov edx, dword [ebx + esi*4 + 0x38]
test edx, edx
jl 0x458d2c
cmp edx, dword [ebp + 0xc]
jge 0x458c65
lea edi, [edx + edx*4]
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x64]
mov dword [ecx + edi*4 + 8], eax
mov eax, dword [ebp]
mov edi, dword [ebp + 0x14]
test edi, edi
je 0x458d1a
movzx ecx, byte [eax + 0x1e]
test ecx, ecx
jne 0x458d1a
lea ecx, [edx + edx*4]
mov dword [esp + 0x5c], ecx
movsx edx, byte [edi + ecx*4 + 1]
mov ecx, dword [edi + ecx*4 + 0x10]
call fcn.004337c0
mov edx, dword [esp + 0x5c]
mov dword [edi + edx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
movzx eax, word [ecx + 6]
mov dword [esp + 0x34], eax
lea eax, [eax + eax*4 + 0xc]
mov dword [esp + 0x30], eax
call fcn.0041ebd4
mov edx, dword [esp + 0x5c]
mov dword [edi + edx*4 + 0x10], eax
test eax, eax
je 0x458d0e
push dword [esp + 0x30]
push dword [esp + 0x5c]
push eax
mov dword [esp + 0x38], eax
call fcn.007666b0
mov eax, dword [esp + 0x38]
add esp, 0xc
mov edx, dword [eax + 8]
test edx, edx
je 0x458d03
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x34]
lea edi, [eax + ecx*4 + 0xc]
mov dword [eax + 8], edi
push ecx
push edx
push edi
mov edi, dword [esp + 0x34]
call fcn.007666b0
add esp, 0xc
mov eax, dword [esp + 0x5c]
mov byte [edi + eax*4 + 1], 0xfa
jmp 0x458d1a
mov eax, dword [ebp]
mov byte [eax + 0x1e], 1
mov byte [edi + edx*4 + 1], 0
mov dword [ebx + esi*4 + 0x38], 0xffffffff
inc esi
cmp esi, 2
jl 0x458c46
lea esi, [esi]
xor eax, eax
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
jne 0x458c44
mov esi, dword [esp + 0x60]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x58]
call fcn.004e33d8
jmp 0x458a11
mov dword [esp + 0x78], 7
jmp 0x458a11
mov edx, dword [ebx]
cmp edi, dword [edx]
jge 0x458c18
lea eax, [edi + edi*4]
mov edx, dword [edx + 0xc]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x34], eax
test eax, eax
je 0x458e63
mov dword [esp + 0x30], ebp
mov esi, dword [eax + 0x14]
test esi, esi
jne 0x458dcf
movzx ecx, byte [eax]
mov edx, dword [eax + 0x28]
test edx, edx
je 0x458dbb
cmp ecx, 0x3c
je 0x458e56
cmp ecx, 0x84
je 0x458dd5
cmp ecx, 0x98
je 0x458dd5
cmp ecx, 0x9a
je 0x458dd5
cmp ecx, 0x25
je 0x458dc8
cmp ecx, 0x9d
jne 0x458dcf
mov eax, dword [eax + 8]
test eax, eax
jne 0x458d89
mov ebp, dword [esp + 0x30]
jmp 0x458e36
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x30]
movsx ecx, word [eax + 0x1c]
test ecx, ecx
jl 0x458e36
mov edx, dword [esp + 0x84]
mov eax, dword [edx]
mov dword [esp + 0x2c], eax
lea edx, [ecx + ecx*2]
mov ecx, dword [esp + 0x28]
mov esi, dword [ecx + 0x10]
mov edx, dword [esi + edx*8 + 0x10]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc]
movzx esi, byte [ecx + 0x49]
test edx, edx
je 0x458e1b
mov eax, dword [esp + 0x2c]
xor ecx, ecx
call fcn.0041ed00
jmp 0x458e22
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x2c]
lea edx, [esi + esi*4]
lea esi, [eax + edx*4 - 0x14]
test eax, eax
jne 0x458e2f
mov esi, eax
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0x14], esi
mov eax, dword [esp + 0x84]
mov edx, esi
call fcn.004384d0
test eax, eax
je 0x458c18
mov esi, 0
jmp 0x458c18
mov dword [esp + 0x28], edx
mov ebp, dword [esp + 0x30]
jmp 0x458ddd
xor eax, eax
xor esi, esi
jmp 0x458e36
xor eax, eax
xor esi, esi
jmp 0x458d66
movzx eax, byte [ebx + 4]
cmp eax, 0x71
je 0x458e9a
cmp eax, 0x73
jne 0x458e87
mov eax, str.INTERSECT
jmp 0x458e9f
cmp eax, 0x72
jne 0x458e93
mov eax, str.EXCEPT
jmp 0x458e9f
mov eax, str.UNION
jmp 0x458e9f
mov eax, str.UNION_ALL
push eax
push str.SELECTs_to_the_left_and_right_of__s_do_not_have_the_same_number_of_result_columns
push dword [esp + 0x8c]
call fcn.005860f0
add esp, 0xc
jmp 0x458ad5
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x28], eax
mov edx, dword [ebx]
mov ecx, dword [edx]
mov dword [esp + 0x2c], ecx
mov edi, dword [esp + 0x5c]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x30], eax
cmp eax, dword [edi + 0x10]
jl 0x458ee9
mov eax, edi
call fcn.0045ce30
test eax, eax
jne 0x458f2a
mov eax, edi
mov eax, dword [eax + 0xc]
mov dword [esp + 0x58], ebx
inc eax
mov ebx, edi
mov dword [ebx + 0xc], eax
mov edi, dword [esp + 0x30]
lea edx, [edi + edi*4]
mov ecx, dword [ebx + 0x14]
mov byte [ecx + edx*4], 0x28
xor eax, eax
mov byte [ecx + edx*4 + 3], al
mov edi, dword [esp + 0x28]
mov dword [ecx + edx*4 + 4], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + edx*4 + 8], edi
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], eax
mov byte [ecx + edx*4 + 1], al
mov byte [ebx + 0x62], al
mov ebx, dword [esp + 0x58]
mov byte [esp + 0x68], 8
mov eax, 8
jmp 0x457f4e