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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xec
mov eax, dword [0x100d20c0]
xor eax, esp
mov dword [esp + 0xe8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [esp + 0x40], eax
push esi
xor eax, eax
mov dword [esp + 0x28], ebx
push edi
mov edi, dword [ebx]
mov esi, edx
mov dword [esp + 0x4c], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], edi
call fcn.1007a299
mov dword [esp + 0x14], eax
test esi, esi
je 0x1007ef82
cmp byte [edi + 0x51], 0
jne 0x1007ef82
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x1007ef82
push eax
push eax
push eax
push 0x15
pop edx
mov ecx, ebx
call fcn.10067245
test eax, eax
jne 0x1007ef82
mov eax, dword [esp + 0x48]
cmp byte [eax], 6
ja 0x1007d9b6
mov edx, dword [esi + 0x30]
test edx, edx
je 0x1007d9a3
mov ecx, edi
call fcn.1005fa8a
xor eax, eax
mov dword [esi + 0x30], eax
mov eax, dword [esi + 4]
and eax, 0xfffffffe
or eax, 0x400000
mov dword [esi + 4], eax
xor eax, eax
mov edx, esi
push eax
mov ecx, ebx
call fcn.1007d3db
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x1007ef72
cmp byte [edi + 0x51], al
jne 0x1007ef72
test dword [esi + 4], 0x800000
je 0x1007da49
mov ecx, dword [esi + 0x20]
inc eax
mov edi, eax
mov dword [esp + 0x40], edi
mov edx, dword [ecx]
cmp edx, eax
jle 0x1007da49
lea eax, [ecx + 0x5c]
mov dword [esp + 0x58], eax
mov ebx, dword [ecx + 0x18]
cmp ebx, dword [eax + 4]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
jne 0x1007da39
mov edi, dword [ecx + 0x14]
mov eax, dword [eax]
test edi, edi
jne 0x1007da15
neg eax
sbb eax, eax
jmp 0x1007da29
test eax, eax
je 0x1007da31
mov edx, eax
mov ecx, edi
call fcn.10038cf4
mov ecx, dword [esi + 0x20]
mov edx, dword [esp + 0x24]
test eax, eax
je 0x1007dbe7
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
inc edi
add eax, 0x48
mov dword [esp + 0x40], edi
mov dword [esp + 0x58], eax
cmp edi, edx
jl 0x1007d9f6
mov eax, dword [esp + 0x48]
cmp byte [eax], 9
jne 0x1007da5b
mov edx, esi
mov ecx, ebx
call fcn.10079d29
mov edx, esi
mov ecx, ebx
call fcn.1008e8c4
mov edi, eax
mov dword [esp + 0x34], edi
test edi, edi
jne 0x1007ef79
mov eax, dword [esi + 4]
lea edi, [esp + 0x80]
mov edx, dword [esi + 0x20]
shr eax, 3
and eax, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], eax
xor eax, eax
push 0xa
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x30]
xor edi, edi
mov dword [esp + 0x80], eax
mov ecx, edi
mov eax, dword [esi + 0x34]
mov dword [esp + 0xc], edi
test eax, eax
jne 0x1007dbc3
cmp ecx, dword [edx]
jge 0x1007dbbd
imul edi, ecx, 0x48
test byte [edi + edx + 0x2c], 8
mov eax, dword [edi + edx + 0x1c]
mov dword [esp + 0x24], eax
mov eax, dword [edi + edx + 0x18]
mov dword [esp + 0x18], eax
je 0x1007db0f
mov edx, dword [edi + edx + 0x34]
mov ecx, dword [esi + 0x24]
call fcn.1006348a
test eax, eax
je 0x1007db07
mov eax, dword [esp + 0x1c]
mov ecx, 0x2000
test word [eax + 0x4c], cx
jne 0x1007db07
mov eax, dword [esp + 0x20]
and byte [edi + eax + 0x2c], 0xd7
mov edx, dword [edi + eax + 0x34]
mov ecx, dword [esi + 0x24]
call fcn.10078986
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x24]
test edi, edi
je 0x1007dbad
mov eax, dword [edi + 0x1c]
mov ebx, dword [esp + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
movsx eax, word [ebx + 0x2a]
mov ebx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x10]
jne 0x1007dc08
test byte [edi + 4], 8
jne 0x1007dbad
xor eax, eax
cmp dword [edi + 0x30], eax
je 0x1007db5f
test ecx, ecx
jne 0x1007db5f
test dword [esi + 4], 0x40000
je 0x1007db5f
cmp dword [edx], 1
je 0x1007dbad
test byte [edx + 0x74], 0xa
jne 0x1007dbad
push dword [esp + 0x3c]
mov edx, esi
push ecx
mov ecx, ebx
call fcn.1007bcb3
test eax, eax
je 0x1007db81
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x1007dc21
or dword [esp + 0xc], 0xffffffff
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x20]
mov dword [esp + 0x20], edx
cmp byte [eax + 0x51], 0
jne 0x1007dc25
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xc]
cmp byte [eax], 8
jbe 0x1007dbad
mov eax, dword [esi + 0x30]
mov dword [esp + 0x80], eax
mov eax, dword [esi + 0x34]
inc ecx
mov dword [esp + 0xc], ecx
test eax, eax
je 0x1007dab1
xor edi, edi
test eax, eax
je 0x1007dc3c
push dword [esp + 0x48]
mov edx, esi
mov ecx, ebx
call fcn.1007a859
mov edi, eax
xor eax, eax
cmp dword [esi + 0x38], eax
jne 0x1007dbe0
mov ecx, ebx
call fcn.1004e84e
mov eax, edi
jmp 0x1007ef85
test edi, edi
jne 0x1007dbf0
mov eax, dword [ecx + 0x18]
mov edi, dword [eax]
push edi
push str.target_object_alias_may_not_appear_in_FROM_clause:__s
push ebx
call fcn.10038bfe
mov eax, dword [esp + 0x28]
add esp, 0xc
xor edi, edi
inc edi
jmp 0x1007dc29
push dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
push dword [ecx]
push eax
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.10038bfe
add esp, 0x14
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x1007dbd9
mov edx, ecx
mov ecx, eax
call fcn.1005fa8a
jmp 0x1007dbd9
cmp dword [edx], 1
jle 0x1007dc58
mov eax, dword [esp + 0x1c]
cmp word [eax + 0x4c], di
jl 0x1007dc58
mov edx, esi
mov ecx, ebx
call fcn.1007c43d
mov edx, dword [esp + 0x20]
mov eax, edi
mov dword [esp + 0x40], edi
mov ecx, 0x100b3a5d
cmp dword [edx], edi
jle 0x1007df5f
imul edi, eax, 0x48
add edi, 8
add edi, edx
mov dword [esp + 0x18], edi
mov eax, dword [edi + 0x38]
or eax, dword [edi + 0x3c]
jne 0x1007dc99
cmp dword [edi + 8], eax
je 0x1007dc99
push dword [edi + 4]
push ecx
push dword [edi + 8]
mov ecx, ebx
push 0x14
pop edx
call fcn.10067245
mov edx, dword [esp + 0x20]
mov eax, dword [edi + 0x14]
mov dword [esp + 0xc], eax
test eax, eax
je 0x1007df49
xor eax, eax
lea edx, [esp + 0x10]
mov ecx, esi
mov dword [esp + 0x10], eax
call fcn.1005e8c8
mov eax, dword [esp + 0x10]
mov ecx, 0x1000
add dword [ebx + 0xd4], eax
mov eax, dword [esp + 0x1c]
test word [eax + 0x4c], cx
jne 0x1007dcee
movzx eax, byte [edi + 0x24]
mov ecx, ebx
mov edx, dword [esp + 0xc]
shr eax, 5
and eax, 1
push eax
push dword [edi + 0x2c]
push dword [esi + 0x24]
call fcn.1007c4c3
cmp dword [esp + 0x40], 0
mov eax, dword [ebx + 0xf4]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 8]
mov dword [ebx + 0xf4], eax
jne 0x1007dde6
mov eax, dword [esp + 0x20]
cmp dword [eax], 1
je 0x1007dd1f
test byte [eax + 0x74], 0xa
je 0x1007dde6
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [ecx + 0x6c]
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [edx + 0x1c], eax
lea esi, [edi + 1]
push esi
push 0
push eax
push 0xd
pop edx
call fcn.1004e5e4
mov eax, dword [esp + 0x18]
mov byte [esp + 0xa8], 0xd
mov dword [eax + 0x18], esi
mov esi, eax
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc]
push dword [eax + 0x10]
push str.CO_ROUTINE__u
push 1
push ebx
call fcn.1004e7ee
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xb8]
add esp, 0x10
mov ecx, ebx
push eax
call fcn.1007d911
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x2e], ax
mov eax, dword [esp + 0xb4]
mov edx, dword [esi + 0x1c]
mov ecx, dword [esp + 0x14]
or dword [esi + 0x28], 0x10
mov dword [esi + 0x20], eax
call fcn.1004e8f6
mov edx, edi
mov edi, dword [esp + 0x14]
mov ecx, edi
call fcn.1004edea
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x1007df09
mov eax, dword [ebx + 0x2c]
xor ecx, ecx
push ecx
inc eax
mov dword [esp + 0x14], ecx
push eax
push ecx
mov dword [ebx + 0x2c], eax
mov dword [edi + 0x1c], eax
mov edi, dword [esp + 0x20]
mov ecx, edi
push 0x45
pop edx
call fcn.1004e5e4
mov esi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
lea ecx, [eax + 1]
test byte [esi + 0x28], 8
mov dword [esi + 0x18], ecx
jne 0x1007de2e
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push 0x11
pop edx
call fcn.1004e5e4
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.1007d880
mov dword [esp + 0x24], eax
test eax, eax
je 0x1007de68
push 0
push dword [eax + 0x2c]
mov ecx, edi
push dword [esi + 0x2c]
push 0x62
pop edx
call fcn.1004e5e4
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x14]
mov ecx, dword [esp + 0xc]
mov ax, word [eax + 2]
mov word [ecx + 2], ax
jmp 0x1007dec2
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xac], eax
xor eax, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xc]
mov byte [esp + 0xa8], 0xc
push dword [eax + 0x10]
push str.MATERIALIZE__u
push 1
push ebx
call fcn.1004e7ee
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xb8]
add esp, 0x10
mov ecx, ebx
push eax
call fcn.1007d911
mov eax, dword [esp + 0xc]
mov ecx, dword [esi + 0x10]
mov ax, word [eax + 2]
mov word [ecx + 0x2e], ax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x1007dee8
mov edx, eax
mov ecx, edi
call fcn.1004edea
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esi + 0x1c]
push 0x41
pop edx
call fcn.1004e5e4
mov edx, dword [esp + 0x30]
mov ecx, edi
mov esi, eax
call fcn.1004edea
mov dword [eax + 4], esi
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov byte [ebx + 0x13], cl
mov dword [ebx + 0x1c], ecx
cmp byte [eax + 0x51], cl
jne 0x1007dc25
mov esi, dword [esp + 0x4c]
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ecx
mov ecx, esi
call fcn.1005e8c8
mov eax, dword [esp + 0x10]
sub dword [ebx + 0xd4], eax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x20]
mov dword [ebx + 0xf4], eax
mov eax, dword [esp + 0x40]
mov ecx, 0x100b3a5d
inc eax
mov dword [esp + 0x40], eax
cmp eax, dword [edx]
jl 0x1007dc6b
mov eax, dword [esi + 0x24]
xor ecx, ecx
mov edi, dword [esi + 0x1c]
inc ecx
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x58], eax
mov al, byte [esi + 4]
and al, cl
mov dword [esp + 0x40], edi
mov byte [esp + 0xe8], al
mov eax, dword [esi + 4]
and al, 9
cmp al, cl
jne 0x1007dfc7
mov ecx, dword [esp + 0x80]
mov edx, edi
push 0xffffffffffffffff
call fcn.100630fb
test eax, eax
jne 0x1007dfc7
cmp dword [esi + 0x44], eax
jne 0x1007dfc9
mov ecx, dword [esp + 0x1c]
mov edx, edi
and dword [esi + 4], 0xfffffffe
push eax
call fcn.1005f32c
or dword [esi + 4], 8
mov dword [esp + 0xc], eax
mov dword [esi + 0x28], eax
xor eax, eax
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1007e032
push dword [edi]
mov ecx, ebx
push eax
call fcn.1007979f
mov esi, dword [ebx + 0x28]
mov edi, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x88], esi
lea ecx, [esi + 1]
mov dword [ebx + 0x28], ecx
mov ecx, dword [esp + 0x80]
mov edx, dword [eax]
xor eax, eax
inc edx
push eax
mov ecx, dword [ecx]
add ecx, edx
push ecx
mov ecx, dword [esp + 0x1c]
push esi
push 0x64
pop edx
call fcn.1004e5e4
push 0xfffffffffffffff7
mov esi, eax
push edi
mov edi, dword [esp + 0x1c]
mov edx, esi
mov ecx, edi
call fcn.1004ed2c
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x4c]
jmp 0x1007e03e
or dword [esp + 0x94], 0xffffffff
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
cmp byte [eax], 0xc
jne 0x1007e05c
mov ecx, dword [esp + 0x40]
push 0
push dword [ecx]
mov ecx, edi
push dword [eax + 4]
push 0x64
pop edx
call fcn.1004e5e4
dec dword [ebx + 0x38]
mov ecx, 0x4000
mov eax, dword [ebx + 0x38]
mov dword [esp + 0xc4], eax
test dword [esi + 4], ecx
jne 0x1007e07c
mov ecx, 0x140
mov word [esi + 2], cx
push eax
mov edx, esi
mov ecx, ebx
call fcn.1007a2b9
xor eax, eax
cmp dword [esi + 8], eax
jne 0x1007e0ac
mov edx, dword [esp + 0x94]
test edx, edx
js 0x1007e0ac
mov ecx, edi
call fcn.1004edea
mov byte [eax], 0x6f
or byte [esp + 0xa0], 1
xor eax, eax
test byte [esi + 4], 1
je 0x1007e11a
mov eax, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0xec], eax
inc eax
mov dword [ebx + 0x28], eax
xor eax, eax
mov edx, dword [esi + 0x1c]
push eax
push eax
call fcn.1007979f
mov ecx, dword [esp + 0x14]
mov edi, eax
xor eax, eax
push eax
push eax
push dword [esp + 0xf4]
push 0x64
pop edx
call fcn.1004e5e4
push 0xfffffffffffffff7
mov esi, eax
push edi
mov edi, dword [esp + 0x1c]
mov edx, esi
mov ecx, edi
call fcn.1004ed2c
push 8
pop edx
mov ecx, edi
mov dword [esp + 0xf0], esi
call fcn.1004eb34
mov esi, dword [esp + 0x4c]
xor eax, eax
mov byte [esp + 0xe9], 3
jmp 0x1007e121
mov byte [esp + 0xe9], al
cmp dword [esp + 0x3c], 0
mov ecx, dword [esp + 0xc]
jne 0x1007e328
test ecx, ecx
jne 0x1007e328
mov cx, word [esi + 4]
mov eax, 0x4000
and cx, ax
mov edx, 0x100
xor eax, eax
cmp byte [esp + 0xe8], al
cmovne eax, edx
or cx, ax
movzx eax, cx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x30], eax
test eax, eax
je 0x1007e173
mov edx, esi
mov ecx, ebx
call fcn.1008f0d8
movsx eax, word [esi + 2]
mov ecx, ebx
mov edx, dword [esp + 0x20]
push eax
push dword [esp + 0x28]
push dword [esi + 0x1c]
push dword [esp + 0x8c]
push dword [esp + 0x64]
call fcn.1008ce18
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
je 0x1007dc21
movzx eax, word [ecx + 0x34]
cmp ax, word [esi + 2]
jge 0x1007e1b1
mov word [esi + 2], ax
cmp byte [esp + 0xe8], 0
je 0x1007e1d9
mov cl, byte [ecx + 0x2f]
movzx edx, byte [esp + 0xe9]
test cl, cl
movzx eax, cl
mov ecx, dword [esp + 0x18]
cmovne edx, eax
mov byte [esp + 0xe9], dl
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1007e224
movsx eax, byte [ecx + 0x2d]
mov dword [esp + 0x84], eax
test byte [ecx + 0x30], 4
jne 0x1007e1fa
mov eax, dword [ecx + 0x1c]
jmp 0x1007e208
movzx eax, byte [ecx + 0x2c]
imul eax, eax, 0x58
mov eax, dword [eax + ecx + 0x2a8]
mov dword [esp + 0x9c], eax
xor ecx, ecx
mov eax, dword [esp + 0x84]
cmp eax, dword [edx]
cmove edx, ecx
mov dword [esp + 0x80], edx
cmp dword [esp + 0x94], 0
jl 0x1007e240
test edx, edx
jne 0x1007e240
mov edx, dword [esp + 0x94]
mov ecx, edi
call fcn.1004ec90
cmp dword [esp + 0x30], 0
je 0x1007e2f1
mov esi, dword [ebx + 0x38]
mov ecx, dword [esp + 0x2c]
dec esi
mov edx, dword [esp + 0x4c]
push esi
inc dword [ecx + 0x2c]
lea ebx, [esi - 1]
mov edi, dword [ecx + 0x2c]
lea eax, [ebx - 1]
push edi
push dword [esp + 0x20]
mov dword [ecx + 0x38], eax
call fcn.10090449
xor ecx, ecx
lea eax, [ebx - 1]
push ecx
push eax
push ecx
mov ecx, dword [esp + 0x20]
push 0xb
pop edx
call fcn.1004e5e4
mov ecx, dword [esp + 0x14]
mov edx, esi
call fcn.1004e95b
mov edx, dword [esp + 0x4c]
lea esi, [ebx - 1]
mov ecx, dword [esp + 0x2c]
xor eax, eax
push esi
push ebx
push dword [esp + 0x50]
mov dword [esp + 0xa8], eax
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x90]
push eax
push 0xffffffffffffffff
call fcn.10078ffa
mov ecx, dword [esp + 0x14]
mov edx, ebx
call fcn.1004e95b
xor eax, eax
push eax
push eax
push edi
mov edi, dword [esp + 0x20]
mov ecx, edi
push 0x41
pop edx
call fcn.1004e5e4
mov edx, esi
mov ecx, edi
call fcn.1004e95b
mov ebx, dword [esp + 0x2c]
jmp 0x1007eee7
mov eax, dword [esp + 0x18]
mov edx, esi
mov ecx, ebx
push dword [eax + 0x20]
push dword [eax + 0x1c]
lea eax, [esp + 0xf0]
push dword [esp + 0x50]
push eax
lea eax, [esp + 0x90]
push eax
push 0xffffffffffffffff
call fcn.10078ffa
mov ecx, dword [esp + 0x18]
call fcn.1008d80f
jmp 0x1007eee7
mov dword [esp + 0x50], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], eax
test ecx, ecx
je 0x1007e3d8
mov edx, dword [esi + 0x1c]
mov eax, dword [edx]
test eax, eax
jle 0x1007e359
add edx, 0x16
xor edi, edi
dec eax
mov word [edx], di
lea edx, [edx + 0x14]
test eax, eax
jg 0x1007e348
mov edi, dword [esp + 0x14]
mov eax, dword [ecx]
test eax, eax
jle 0x1007e373
lea edx, [ecx + 0x16]
xor ebx, ebx
dec eax
mov word [edx], bx
lea edx, [edx + 0x14]
test eax, eax
jg 0x1007e362
mov ebx, dword [esp + 0x2c]
push 0x42
pop eax
cmp word [esi + 2], ax
jle 0x1007e380
mov word [esi + 2], ax
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1007e3de
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1007e3de
and dword [esp + 0x24], 0
test eax, eax
jle 0x1007e3c3
mov ebx, dword [esp + 0x24]
xor eax, eax
mov edi, eax
mov al, byte [edi + edx + 0xc]
lea edi, [edi + 0x14]
and al, 1
inc ebx
mov byte [ecx + edi - 8], al
mov edx, dword [esp + 0x80]
cmp ebx, dword [ecx]
jl 0x1007e3a2
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
push 0xffffffffffffffff
call fcn.100630fb
test eax, eax
jne 0x1007e3de
mov dword [esp + 0x60], 1
jmp 0x1007e3de
xor eax, eax
mov word [esi + 2], ax
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x1c]
dec eax
mov dword [esp + 0x18], eax
mov dword [ebx + 0x38], eax
xor eax, eax
push eax
push 0x38
call fcn.100366b2
mov edx, eax
mov dword [esp + 0x28], edx
test edx, edx
je 0x1007dc21
mov ecx, dword [ebx + 0x80]
xor eax, eax
mov dword [edx + 0x34], ecx
xorps xmm0, xmm0
mov dword [ebx + 0x80], edx
mov ecx, dword [esi + 0x10]
mov dword [edx + 0x30], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xe4], eax
mov eax, dword [ebx + 0x2c]
inc eax
movlpd qword [esp + 0xd4], xmm0
movlpd qword [esp + 0xdc], xmm0
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], edx
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0xc]
test eax, eax
je 0x1007e464
mov ecx, dword [eax]
jmp 0x1007e466
xor ecx, ecx
mov dword [edx + 0xc], ecx
lea ecx, [esp + 0xc8]
mov dword [edx + 0x18], eax
mov edx, dword [esp + 0x40]
call fcn.10063991
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xc8]
call fcn.10063991
mov eax, dword [esp + 0x58]
test eax, eax
je 0x1007e4f8
cmp dword [esp + 0xc], 0
je 0x1007e4ea
mov edx, dword [esi + 0x2c]
xorps xmm0, xmm0
movlpd qword [esp + 0xb0], xmm0
movlpd qword [esp + 0xb8], xmm0
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], 0x1007d7ca
mov dword [esp + 0xc0], esi
test edx, edx
je 0x1007e4df
lea ecx, [esp + 0xa8]
call fcn.1005be9c
mov eax, dword [esi + 0x24]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x58]
mov edx, eax
lea ecx, [esp + 0xc8]
call fcn.1006395d
mov ecx, dword [esp + 0x28]
xor edx, edx
mov eax, dword [ecx + 0x20]
mov dword [ecx + 0x24], eax
cmp dword [esi + 0x28], edx
jne 0x1007e53b
cmp dword [esi + 0x2c], edx
jne 0x1007e53b
cmp dword [ecx + 0x2c], 1
jne 0x1007e53b
mov edx, dword [ecx + 0x28]
lea eax, [esp + 0x5c]
mov ecx, dword [esp + 0x1c]
push eax
mov edx, dword [edx]
call fcn.1007c5dd
mov ecx, dword [esp + 0x28]
xor edx, edx
mov byte [esp + 0x47], al
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x70], eax
jmp 0x1007e53f
mov byte [esp + 0x47], dl
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x10], edx
test eax, eax
jle 0x1007e5c9
mov ecx, dword [esp + 0xe0]
mov ebx, edx
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0x28]
or ecx, 0x20000
mov esi, dword [ebx + eax]
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0xc8]
mov edx, dword [esi + 0x14]
call fcn.10063991
test dword [esi + 4], 0x1000000
je 0x1007e594
mov edx, dword [esi + 0x2c]
lea ecx, [esp + 0xc8]
mov edx, dword [edx + 0x28]
call fcn.1006395d
mov ecx, dword [esp + 0xe0]
add ebx, 0x10
mov eax, dword [esp + 0x10]
and ecx, 0xfffdffff
inc eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x10], eax
cmp eax, dword [edi + 0x2c]
jl 0x1007e557
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x2c]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x51], 0
jne 0x1007dc25
mov edx, dword [esp + 0xc]
test edx, edx
je 0x1007eb7a
mov eax, dword [ebx + 0x28]
mov dword [ecx + 4], eax
xor eax, eax
inc dword [ebx + 0x28]
push dword [ecx + 0x20]
mov ecx, ebx
push eax
call fcn.1007979f
mov dword [esp + 0x24], eax
mov ecx, edi
xor eax, eax
push eax
mov eax, dword [esp + 0x2c]
push dword [eax + 0xc]
push dword [eax + 4]
push 0x6f
pop edx
call fcn.1004e5e4
push 0xfffffffffffffff7
push dword [esp + 0x28]
mov edx, eax
mov dword [esp + 0x70], eax
mov ecx, edi
call fcn.1004ed2c
mov eax, dword [ebx + 0x2c]
mov edx, dword [esp + 0xc]
inc eax
mov dword [esp + 0x6c], eax
inc eax
mov dword [esp + 0x38], eax
lea ecx, [eax + 2]
mov eax, dword [ebx + 0x38]
dec eax
mov dword [ebx + 0x2c], ecx
mov dword [esp + 0x5c], eax
dec eax
mov dword [ebx + 0x38], eax
mov dword [esp + 0x3c], eax
lea eax, [ecx + 1]
mov dword [esp + 0x10], ecx
add ecx, dword [edx]
mov dword [esp + 0x74], eax
mov dword [ebx + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x78], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, edi
mov dword [ebx + 0x2c], eax
xor eax, eax
push eax
push dword [esp + 0x3c]
push eax
push 0x45
pop edx
call fcn.1004e5e4
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x74]
dec eax
add eax, ecx
push eax
push ecx
xor eax, eax
mov ecx, edi
push eax
push 0x48
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x40]
push dword [esp + 0x18]
push 0xc
pop edx
call fcn.1004e5e4
xor edx, edx
push edx
push 0x40
pop eax
cmp dword [esp + 0x64], edx
mov ecx, 0x240
cmovne eax, ecx
mov ecx, ebx
movzx eax, ax
push eax
push edx
push dword [esp + 0x18]
mov edx, dword [esp + 0x30]
push dword [esp + 0x64]
call fcn.1008ce18
mov edx, eax
mov dword [esp + 0x64], edx
test edx, edx
je 0x1007dc21
mov eax, dword [esp + 0xc]
movsx ecx, byte [edx + 0x2d]
cmp ecx, dword [eax]
jne 0x1007e708
mov esi, dword [esp + 0x28]
xor eax, eax
mov dword [esp + 0x20], eax
jmp 0x1007e8a6
cmp byte [esp + 0xe8], 0
je 0x1007e71d
test byte [esi + 4], 1
mov eax, str.DISTINCT
je 0x1007e722
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
xor eax, eax
push eax
push ebx
call fcn.1004e7ee
mov eax, dword [esp + 0x1c]
add esp, 0x10
mov esi, dword [esp + 0x28]
mov dword [esp + 0x20], 1
mov eax, dword [eax]
mov edx, eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x50], eax
test eax, eax
jle 0x1007e796
mov edi, dword [esi + 0x1c]
mov ebx, edx
add edi, 0x12
mov esi, eax
movsx ecx, word [edi]
lea eax, [edx + 1]
cmp ecx, ebx
lea edi, [edi + 0x14]
cmovl eax, edx
mov edx, eax
lea eax, [ebx + 1]
cmovl eax, ebx
mov ebx, eax
sub esi, 1
jne 0x1007e769
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x34], edx
mov ecx, ebx
call fcn.100639fd
mov edx, dword [esp + 0xc]
xor ecx, ecx
push ecx
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0x60], eax
call fcn.1006255d
xor eax, eax
mov ecx, eax
mov dword [esp + 0x50], ecx
cmp dword [esi + 0x20], eax
jle 0x1007e809
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x30], eax
mov edx, dword [esi + 0x1c]
add edx, eax
movsx eax, word [edx + 0x12]
cmp eax, ebx
jl 0x1007e7f0
mov eax, dword [esp + 0x54]
mov ecx, edi
add eax, ebx
push eax
movsx eax, word [edx + 0x10]
push eax
push dword [edx + 8]
mov edx, dword [edx]
call fcn.10061222
mov ecx, dword [esp + 0x50]
inc ebx
mov eax, dword [esp + 0x30]
inc ecx
add eax, 0x14
mov dword [esp + 0x50], ecx
mov dword [esp + 0x30], eax
cmp ecx, dword [esi + 0x20]
jl 0x1007e7c6
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.100639c5
mov esi, eax
mov ecx, edi
push esi
push dword [esp + 0x38]
push dword [esp + 0x5c]
push 0x5b
pop edx
call fcn.1004e5e4
mov edx, dword [esp + 0x28]
xor eax, eax
push eax
push esi
mov ecx, edi
push dword [edx + 4]
mov edx, 0x84
call fcn.1004e5e4
mov edx, esi
mov ecx, ebx
call fcn.100639e4
push dword [esp + 0x34]
mov edx, dword [esp + 0x58]
call fcn.10063a30
mov ecx, dword [esp + 0x64]
call fcn.1008d80f
mov esi, dword [esp + 0x28]
mov ecx, ebx
mov edx, dword [ebx + 0x28]
mov dword [esp + 0x50], edx
mov dword [esi + 8], edx
inc dword [ebx + 0x28]
call fcn.100639c5
push dword [esp + 0x34]
mov ecx, edi
mov dword [esp + 0x34], eax
push eax
push edx
push 0x72
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x1c]
push dword [esi + 4]
push 0x23
pop edx
call fcn.1004e5e4
mov edx, dword [esp + 0x64]
xor eax, eax
mov byte [esi + 1], 1
inc eax
cmp dword [esp + 0x60], 0
je 0x1007e8d8
mov ecx, dword [esp + 0x1c]
test byte [ecx + 0x4c], 4
jne 0x1007e8d8
test eax, eax
jne 0x1007e8c1
test byte [edx + 0x30], 8
je 0x1007e8d8
mov edx, dword [esp + 0x94]
xor eax, eax
mov ecx, edi
mov dword [esp + 0x80], eax
call fcn.1004ec90
cmp dword [esp + 0x20], 0
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x7c], eax
je 0x1007e8fb
push dword [esp + 0x50]
mov ecx, edi
push dword [esp + 0x34]
push dword [esi + 4]
push 0x7e
pop edx
call fcn.1004e5e4
mov eax, dword [esp + 0xc]
xor edx, edx
mov ecx, edx
mov dword [esp + 0x30], edx
cmp dword [eax], edx
jle 0x1007e959
lea edx, [eax + 4]
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x78]
add eax, ecx
cmp dword [esp + 0x20], 0
push eax
je 0x1007e931
push ecx
push dword [esp + 0x58]
mov ecx, edi
push 0x59
pop edx
call fcn.1004e5e4
jmp 0x1007e93d
mov byte [esi], 1
mov ecx, ebx
mov edx, dword [edx]
call fcn.1006248c
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xc]
inc ecx
mov edx, dword [esp + 0x60]
add edx, 0x14
mov dword [esp + 0x30], ecx
mov dword [esp + 0x60], edx
cmp ecx, dword [eax]
jl 0x1007e912
mov esi, dword [esp + 0x24]
test esi, esi
je 0x1007e963
inc dword [esi]
push dword [eax]
mov ecx, edi
push dword [esp + 0x7c]
push dword [esp + 0x7c]
push 0x56
pop edx
call fcn.1004e5e4
push 0xfffffffffffffff7
push esi
mov edx, eax
mov ecx, edi
call fcn.1004ed2c
mov esi, dword [edi + 0x6c]
mov ecx, edi
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x10
pop edx
call fcn.1004e5e4
mov eax, dword [esp + 0xc]
mov ecx, dword [ebx + 8]
push dword [eax]
push dword [esp + 0x78]
push dword [esp + 0x80]
push 0x4c
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x60]
mov eax, dword [esp + 0x40]
inc eax
push eax
push 0xc
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x1c]
push dword [esp + 0x40]
push 0x30
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x40]
push dword [esp + 0x18]
push 0xc
pop edx
call fcn.1004e5e4
mov edx, esi
mov ecx, edi
call fcn.1004edea
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x6c]
mov dword [eax + 8], ecx
mov ecx, ebx
push esi
call fcn.1007d561
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x70]
push 1
push 0x45
pop edx
call fcn.1004e5e4
cmp dword [esp + 0x20], 0
je 0x1007ea46
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x80]
push dword [esi + 4]
push 3
pop edx
call fcn.1004e5e4
jmp 0x1007ea5a
mov ecx, dword [esp + 0x64]
call fcn.1008d80f
mov edx, dword [esp + 0x68]
mov ecx, edi
call fcn.1004ec90
mov esi, dword [esp + 0x38]
xor eax, eax
push eax
push dword [esp + 0x60]
mov ecx, edi
lea eax, [esi + 1]
push eax
push 0xc
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x1c]
push eax
push 0xb
pop edx
call fcn.1004e5e4
mov edi, dword [edi + 0x6c]
xor eax, eax
push eax
push esi
mov esi, dword [esp + 0x1c]
mov ecx, esi
push 1
push 0x45
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, esi
push eax
push eax
mov eax, dword [esp + 0x40]
inc eax
push eax
push 0x41
pop edx
call fcn.1004e5e4
mov edx, dword [esp + 0x5c]
mov ecx, esi
call fcn.1004e95b
mov esi, dword [esi + 0x6c]
xor eax, eax
mov ecx, dword [esp + 0x14]
push eax
lea eax, [esi + 2]
push eax
push dword [esp + 0x74]
push 0x30
pop edx
call fcn.1004e5e4
mov ecx, dword [esp + 0x14]
xor eax, eax
push eax
push eax
mov eax, dword [esp + 0x40]
inc eax
push eax
push 0x41
pop edx
call fcn.1004e5e4
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.1007d50b
push 0x10
inc esi
push esi
push dword [esp + 0x60]
push ebx
call fcn.10062aac
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0xe8]
push edi
push esi
push dword [esp + 0x50]
mov ecx, ebx
push eax
lea eax, [esp + 0x90]
push eax
push 0xffffffffffffffff
call fcn.10078ffa
mov eax, dword [esp + 0x38]
xor esi, esi
mov edi, dword [esp + 0x14]
inc eax
push esi
push esi
push eax
push 0x41
pop edx
mov ecx, edi
call fcn.1004e5e4
mov edx, dword [esp + 0x3c]
mov ecx, edi
call fcn.1004e95b
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.1007d44a
push esi
push dword [esp + 0x70]
mov ecx, edi
push esi
push 0x45
pop edx
call fcn.1004e5e4
push esi
push esi
push dword [esp + 0x18]
mov ecx, edi
push 0x41
pop edx
call fcn.1004e5e4
jmp 0x1007eedc
cmp dword [esi + 0x24], 0
jne 0x1007ec3d
mov edx, dword [esi + 0x1c]
xor eax, eax
inc eax
cmp dword [edx], eax
jne 0x1007ec3d
mov edx, dword [esi + 0x20]
cmp dword [edx], eax
jne 0x1007ec3d
cmp dword [edx + 0x1c], 0
jne 0x1007ec3d
mov edx, dword [edx + 0x18]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x38], edx
cmp dword [edx + 0x38], 0
mov eax, dword [eax + 4]
mov dword [esp + 0x68], eax
jne 0x1007ebe6
cmp byte [eax], 0xa5
mov eax, dword [ecx + 0x2c]
jne 0x1007ebe9
test eax, eax
je 0x1007ebe9
mov eax, dword [ecx + 0x28]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x1007ebe6
mov eax, dword [esp + 0x68]
test dword [eax + 4], 0x1000002
je 0x1007ec43
mov eax, dword [ecx + 0x2c]
xor edx, edx
mov dword [esp + 0x3c], edx
cmp dword [ecx + 0x24], edx
je 0x1007ee0d
mov dword [esp + 0x10], edx
test eax, eax
jle 0x1007edeb
mov edx, dword [ecx + 0x28]
mov esi, dword [esp + 0x10]
mov edi, dword [ecx + 0x2c]
mov eax, dword [edx]
test dword [eax + 4], 0x1000000
jne 0x1007ec2a
mov eax, dword [edx + 4]
mov dword [esp + 0x68], edi
test byte [eax + 4], 0x20
jne 0x1007eddb
inc esi
add edx, 0x10
mov dword [esp + 0x10], esi
mov eax, edi
cmp esi, edi
jl 0x1007ec0e
jmp 0x1007eddf
xor edx, edx
mov dword [esp + 0x38], edx
test edx, edx
je 0x1007ebe6
mov edx, dword [edx + 0x48]
mov ecx, dword [ebx]
call fcn.10077f12
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x3c], eax
lea ecx, [eax + 1]
mov dword [ebx + 0x28], ecx
xor ecx, ecx
cmp dword [ebx + 0x74], 0
mov eax, dword [edx + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], ecx
mov ecx, ebx
cmovne ecx, dword [ebx + 0x74]
mov dword [esp + 0x24], eax
call fcn.1006c112
mov eax, dword [esp + 0x38]
mov ecx, ebx
mov edx, dword [esp + 0x10]
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.100672c8
mov eax, dword [esp + 0x38]
test byte [eax + 0x24], 0x80
je 0x1007ecbd
mov ecx, eax
call fcn.1006805a
mov edx, eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
jmp 0x1007ecc1
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x20]
test byte [ecx + 0x30], 1
jne 0x1007ed02
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1007ed02
test byte [ecx + 0x38], 4
jne 0x1007ecf3
movzx edi, word [ecx + 0x30]
cmp di, word [eax + 0x30]
jge 0x1007ecf3
cmp dword [ecx + 0x24], 0
jne 0x1007ecf3
test edx, edx
je 0x1007ecf1
cmp di, word [edx + 0x30]
jge 0x1007ecf3
mov edx, ecx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x1007ecd1
mov edi, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
test edx, edx
je 0x1007ed18
mov eax, dword [edx + 0x2c]
mov ecx, ebx
mov dword [esp + 0x24], eax
call fcn.1006c5af
mov dword [esp + 0x30], eax
push 1
push dword [esp + 0x14]
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x48]
push 0x60
pop edx
call fcn.1004e8c5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x1007ed45
push 0xfffffffffffffff7
push eax
or edx, 0xffffffff
mov ecx, edi
call fcn.1004ed2c
xor eax, eax
mov ecx, edi
push eax
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x28]
push dword [eax + 8]
push dword [esp + 0x44]
push 0x5c
pop edx
call fcn.1004e5e4
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esp + 0x44]
push 0x74
pop edx
call fcn.1004e5e4
cmp byte [ebx + 0xcb], 2
jne 0x1007eeaa
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x38]
test eax, eax
je 0x1007eda3
test byte [edx + 0x24], 0x80
je 0x1007ed9e
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
mov eax, dword [esp + 0x2c]
je 0x1007eda3
xor ecx, ecx
inc ecx
jmp 0x1007eda5
xor ecx, ecx
test ecx, ecx
je 0x1007edad
mov eax, dword [eax]
jmp 0x1007edb2
mov eax, 0x100b3a5d
push eax
test ecx, ecx
mov eax, str._USING_COVERING_INDEX
mov ecx, 0x100b3a5d
cmove eax, ecx
push eax
push dword [edx]
xor eax, eax
push str.SCAN_TABLE__s_s_s
push eax
push ebx
call fcn.1004e7ee
add esp, 0x18
jmp 0x1007eeaa
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
cmp edx, eax
jne 0x1007ee0d
mov eax, dword [ebx + 0x2c]
xor ecx, ecx
push ecx
inc eax
push eax
push ecx
push 0x45
pop edx
mov ecx, edi
mov dword [esp + 0x48], eax
mov dword [ebx + 0x2c], eax
call fcn.1004e5e4
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov ecx, ebx
call fcn.1007d44a
movzx eax, byte [esp + 0x47]
xor ecx, ecx
mov edx, dword [esp + 0x20]
push ecx
push eax
push ecx
push dword [esp + 0x7c]
mov ecx, ebx
push dword [esp + 0x64]
call fcn.1008ce18
mov dword [esp + 0x24], eax
test eax, eax
je 0x1007dc21
push dword [esp + 0x28]
mov edx, dword [esp + 0x40]
mov ecx, ebx
call fcn.1007d561
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x1007ee65
push 0
push eax
push 1
push 0x45
pop edx
mov ecx, edi
call fcn.1004e5e4
mov ecx, dword [esp + 0x24]
test byte [ecx + 0x30], 4
jne 0x1007ee74
mov eax, dword [ecx + 0x1c]
jmp 0x1007ee82
movzx eax, byte [ecx + 0x2c]
imul eax, eax, 0x58
mov eax, dword [eax + ecx + 0x2a8]
cmp eax, dword [ecx + 0x1c]
je 0x1007ee9a
xor ecx, ecx
push ecx
push eax
push ecx
push 0xb
pop edx
mov ecx, edi
call fcn.1004e5e4
mov ecx, dword [esp + 0x24]
call fcn.1008d80f
mov edx, dword [esp + 0x28]
mov ecx, ebx
call fcn.1007d50b
push 0x10
push dword [esp + 0x1c]
xor eax, eax
push dword [esp + 0x60]
mov dword [esp + 0x8c], eax
push ebx
call fcn.10062aac
mov eax, dword [esp + 0x18]
mov edx, esi
push eax
push eax
push dword [esp + 0x50]
xor eax, eax
mov ecx, ebx
push eax
push eax
push 0xffffffffffffffff
call fcn.10078ffa
mov edx, dword [esp + 0x18]
mov ecx, edi
call fcn.1004e95b
xor esi, esi
cmp byte [esp + 0xe9], 3
jne 0x1007ef07
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push esi
push ebx
call fcn.1004e7ee
add esp, 0x10
cmp dword [esp + 0x80], 0
je 0x1007ef53
cmp dword [esp + 0x84], 0
mov ecx, str.ORDER_BY
mov eax, str.RIGHT_PART_OF_ORDER_BY
cmovle eax, ecx
push eax
push str.USE_TEMP_B_TREE_FOR__s
push esi
push ebx
call fcn.1004e7ee
mov eax, dword [esp + 0x50]
add esp, 0x10
mov edx, dword [esp + 0x4c]
mov ecx, ebx
push dword [esp + 0x48]
push dword [eax]
lea eax, [esp + 0x88]
push eax
call fcn.10079859
mov edx, dword [esp + 0xc4]
mov ecx, edi
call fcn.1004e95b
xor ecx, ecx
cmp dword [ebx + 0x24], esi
setg cl
mov dword [esp + 0x34], ecx
jmp 0x1007dc21
mov eax, edi
jmp 0x1007dc03
mov eax, dword [esp + 0x1c]
jmp 0x1007dc29
xor eax, eax
inc eax
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100a9985
mov esp, ebp
pop ebp
ret 4