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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov eax, dword [ebp + 8]
pcmpeqd xmm0, xmm0
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x80], 0xffffffff
mov ebx, edx
movdqa xmmword [esp + 0x70], xmm0
mov edx, dword [ecx]
mov esi, dword [ebx + 0x34]
movsd xmm0, qword [eax + 0x10]
mov dword [esp + 0x20], edx
movsd qword [esp + 0x80], xmm0
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, str.ORDER_BY
movq qword [esp + 0x78], xmm1
movq qword [esp + 0x70], xmm0
cmp dword [esi + 0x30], 0
jne 0x49d546
cmp dword [esi + 0x3c], 0
mov eax, str.LIMIT
je 0x49d5a9
mov dl, byte [ebx]
mov esi, str.UNION
add dl, 0x7b
cmp dl, 2
ja 0x49d55f
movsx edx, dl
mov esi, dword [edx*4 + 0x519264]
push esi
push eax
push str._s_clause_should_come_after__s_not_before
push ecx
call fcn.0042af90
add esp, 0x10
mov eax, 1
xor ecx, ecx
mov edx, dword [esp + 0x78]
mov edi, dword [ebp + 8]
mov esi, ecx
test esi, esi
mov dword [edi + 8], edx
mov edx, dword [esp + 0x7c]
mov dword [edi + 0xc], edx
je 0x49d5a1
mov ecx, dword [esp + 0x20]
mov edx, esi
mov esi, eax
push 1
call fcn.00469ca0
mov eax, esi
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], ecx
call fcn.00485cb0
mov dword [esp + 0x18], eax
mov al, byte [esp + 0x70]
cmp al, 0xc
jne 0x49d622
mov ecx, dword [ebx + 0x1c]
mov eax, dword [esp + 0x74]
mov edi, dword [ecx]
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x6c]
cmp dword [ecx + 0x70], eax
jle 0x49d607
lea edx, [eax + 1]
mov dword [ecx + 0x6c], edx
mov edx, dword [ecx + 0x68]
lea ecx, [eax + eax*4]
mov eax, dword [esp + 8]
mov dword [edx + ecx*4], 0x64
mov dword [edx + ecx*4 + 4], eax
mov dword [edx + ecx*4 + 8], edi
mov dword [edx + ecx*4 + 0xc], 0
mov dword [edx + ecx*4 + 0x10], 0
jmp 0x49d61b
mov edx, 0x64
push 0
push edi
push dword [esp + 0x10]
call fcn.0046c600
add esp, 0xc
mov al, 0xe
mov byte [esp + 0x70], 0xe
mov byte [esp + 0x14], al
mov eax, dword [ebx + 4]
mov dword [esp + 4], ebx
test eax, 0x400
je 0x49d675
mov edi, dword [esp + 4]
xor ecx, ecx
mov edx, dword [edi + 0x3c]
test edx, edx
mov dword [esp + 8], edx
sete dl
cmp dword [edi + 0x44], 0
jne 0x49d675
mov ebx, dword [esp + 4]
mov cl, dl
mov edi, 1
nop word [eax + eax]
mov edx, dword [ebx + 0x34]
test edx, edx
je 0x49d935
add edi, ecx
cmp dword [edx + 0x44], 0
mov ebx, edx
je 0x49d660
test eax, 0x2000
jne 0x49d766
mov ebx, dword [esp + 4]
cmp dword [ebx + 0x30], 0
je 0x49d7b2
mov eax, dword [esp]
pcmpeqd xmm0, xmm0
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
mov dword [esp + 0xb4], 0xffffffff
mov dword [esp + 0xb0], 0xffffffff
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0xa0], xmm0
mov edx, dword [eax + 8]
mov ecx, dword [eax]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x38]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], edx
lea edx, [edx - 2]
mov dword [eax + 0x38], edx
mov dword [esp + 0x38], edx
mov edx, dword [ebx + 0x34]
mov esi, dword [ebx + 0x30]
mov al, byte [ebx]
mov dword [esp + 8], edx
mov edx, dword [esi]
cmp al, 0x85
mov byte [esp + 0x14], al
je 0x49d708
cmp byte [ecx + 0x51], 0
je 0x49d9c8
mov dword [esp + 0x30], edx
lea edx, [edx*4 + 4]
push 0
call fcn.00435490
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
mov eax, 0
mov dword [esp + 0x60], 0
je 0x49dbcd
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
test eax, eax
mov dword [ecx], eax
jle 0x49dbbf
mov edx, dword [esp + 0x30]
lea eax, [esi + 4]
mov ecx, 1
cmp edx, 9
jae 0x49dadb
mov ebx, dword [esp + 0x34]
jmp 0x49dba7
mov ebx, dword [esp + 4]
pcmpeqd xmm0, xmm0
mov eax, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x20]
mov edx, dword [ebx + 0x34]
mov edi, dword [eax]
mov eax, dword [esp]
mov ecx, dword [eax + 8]
movdqa xmmword [esp + 0x40], xmm0
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
cmp dword [ebx + 0x44], 0
je 0x49d88c
push str.cannot_use_window_functions_in_recursive_queries
push eax
call fcn.0042af90
add esp, 8
jmp 0x49ee6f
cmp dword [esi + 0x34], 0
mov edi, dword [esp]
jne 0x49d7db
push str.COMPOUND_QUERY
push 1
push edi
call fcn.0048df30
add esp, 0xc
push str.LEFT_MOST_SUBQUERY
push 1
push edi
call fcn.0048df30
add esp, 0xc
mov al, byte [ebx]
cmp al, 0x84
je 0x49d99a
cmp al, 0x86
je 0x49d99a
cmp al, 0x85
jne 0x49e777
mov dword [esp + 0x40], 0xffffffff
mov ecx, dword [esp]
mov edx, esi
mov eax, dword [ebx + 8]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebx + 0x3c]
mov dword [esi + 0x3c], eax
lea eax, [esp + 0x70]
push eax
call fcn.00475c40
add esp, 4
test eax, eax
mov dword [ebx + 0x3c], 0
jne 0x49d574
mov dword [ebx + 0x34], 0
mov eax, dword [esi + 8]
mov dword [ebx + 8], eax
test eax, eax
mov ecx, dword [esi + 0xc]
mov dword [ebx + 0xc], ecx
je 0x49f065
mov edi, dword [esp + 0x18]
mov edx, 0x14
mov ecx, edi
push 0
push 0
push eax
call fcn.0046c5a0
add esp, 0xc
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x49f06d
mov ecx, edi
mov edx, 0x98
push eax
inc eax
push eax
push dword [ebx + 8]
call fcn.0046c5a0
add esp, 0xc
jmp 0x49f06d
mov eax, dword [eax]
mov dword [esp + 0x3c], edi
mov dword [esp + 8], ecx
mov dword [esp + 0x1c], edx
cmp byte [eax + 0xa5], 0
jne 0x49d8b3
mov ecx, dword [esp]
cmp byte [ecx + 0xc8], 0
je 0x49ed05
mov ecx, dword [esp]
mov edx, ebx
mov eax, dword [ecx + 0x38]
dec eax
mov dword [ecx + 0x38], eax
mov word [ebx + 2], 0x140
mov dword [esp + 0x24], eax
push eax
call fcn.0049f720
add esp, 4
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x3c]
mov edi, dword [ebx + 0xc]
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [esp + 0x10], 0
mov edx, dword [ebx + 0x30]
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edi
test eax, eax
jle 0x49e5bf
add esi, 0x30
nop word cs:[eax + eax]
nop
test byte [esi - 3], 0x20
jne 0x49e5b9
add esi, 0x48
dec eax
jne 0x49d920
jmp 0x49e5bf
cmp edi, 1
mov eax, 0x50ce6c
mov ecx, 0x514b20
cmove ecx, eax
push ecx
push edi
push str.SCAN__d_CONSTANT_ROW_s
push 0
push dword [esp + 0x10]
call fcn.0048df30
add esp, 0x14
lea esi, [esp + 0x70]
nop
mov ecx, dword [esp]
mov edx, ebx
push 1
push 1
push esi
push 0
push 0
push 0xffffffffffffffff
call fcn.004a36f0
add esp, 0x18
cmp dword [esp + 8], 0
jne 0x49e76e
mov word [ebx + 2], di
xor ecx, ecx
mov eax, 0
mov ebx, dword [ebx + 0x38]
test ebx, ebx
jne 0x49d960
jmp 0x49d576
cmp byte [esp + 0x14], 1
pcmpeqd xmm0, xmm0
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
movdqa xmmword [esp + 0x40], xmm0
jne 0x49e920
mov ebx, dword [esp + 0x74]
jmp 0x49e953
mov edi, 1
jmp 0x49d9ef
lea eax, [ebx + 1]
shl ebx, 4
mov edx, eax
mov word [esi + ebx + 0x10], di
mov ecx, dword [esp + 0x18]
inc edi
cmp byte [ecx + 0x51], 0
mov ebx, dword [esp + 4]
jne 0x49d708
mov eax, dword [ebx + 0x1c]
cmp edi, dword [eax]
jg 0x49d708
test edx, edx
jle 0x49da25
lea ecx, [esi + 0x10]
xor eax, eax
nop word cs:[eax + eax]
nop dword [eax]
mov ebx, edx
movzx edx, word [ecx]
cmp edi, edx
je 0x49da29
inc eax
add ecx, 0x10
mov edx, ebx
cmp ebx, eax
jne 0x49da10
jmp 0x49da2f
xor eax, eax
jmp 0x49da2b
mov edx, ebx
cmp eax, edx
jne 0x49d9dc
mov ecx, dword [esp + 0x18]
mov ebx, edx
mov edx, 0x35
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x49f032
mov ecx, dword [esp]
mov dword [eax], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x30], 0
mov byte [eax], 0x98
mov word [eax + 0x22], 0xffff
mov byte [eax + 0x34], 0
mov dword [eax + 0x18], 1
mov dword [eax + 4], 0x400
mov dword [eax + 8], edi
mov edx, esi
push eax
call fcn.00477e20
add esp, 4
mov ecx, dword [esp + 4]
mov esi, eax
test esi, esi
mov dword [ecx + 0x30], esi
jne 0x49d9cf
mov ecx, dword [esp + 0x18]
xor esi, esi
mov edx, ebx
jmp 0x49d9e0
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
shl edi, 4
lea edx, [ebx + 4]
lea edi, [esi + edi + 2]
cmp edx, edi
mov edx, dword [esp + 0x30]
jae 0x49db0c
mov edx, dword [esp + 0x30]
lea edi, [esi + 0x10]
lea edx, [ebx + edx*4 + 4]
cmp edx, edi
mov edx, dword [esp + 0x30]
ja 0x49dba7
mov eax, edx
mov ecx, 8
mov edi, edx
pxor xmm0, xmm0
pcmpeqd xmm1, xmm1
and eax, 7
cmovne ecx, eax
sub edx, ecx
neg ecx
mov eax, edx
lea ecx, [edi + ecx + 1]
mov edi, 0x14
shl eax, 4
lea eax, [esi + eax + 4]
movdqu xmm2, xmmword [esi + edi*4 - 0x40]
movdqu xmm3, xmmword [esi + edi*4 - 0x30]
movdqu xmm4, xmmword [esi + edi*4 - 0x20]
movdqu xmm7, xmmword [esi + edi*4]
movdqu xmm6, xmmword [esi + edi*4 + 0x30]
movdqu xmm5, xmmword [esi + edi*4 + 0x20]
punpcklwd xmm2, xmm3
movdqu xmm3, xmmword [esi + edi*4 - 0x10]
punpcklwd xmm5, xmm6
punpcklwd xmm4, xmm3
movdqu xmm3, xmmword [esi + edi*4 + 0x10]
punpckldq xmm2, xmm4
punpcklwd xmm2, xmm0
paddd xmm2, xmm1
punpcklwd xmm7, xmm3
movdqu xmmword [ebx + edi - 0x10], xmm2
punpckldq xmm7, xmm5
punpcklwd xmm7, xmm0
paddd xmm7, xmm1
movdqu xmmword [ebx + edi], xmm7
add edi, 0x20
add edx, 0xfffffff8
jne 0x49db39
mov edx, dword [esp + 0x30]
sub edx, ecx
lea ecx, [ebx + ecx*4]
xor edi, edi
inc edx
nop
movzx ebx, word [eax + edi*4 + 0xc]
dec ebx
mov dword [ecx + edi], ebx
add edi, 4
dec edx
jne 0x49dbb0
mov ebx, dword [esp + 4]
mov ecx, dword [esp]
mov edx, ebx
call fcn.004a7ab0
mov edi, dword [esp]
mov dword [ebx + 0x30], esi
mov dword [esp + 0x9c], eax
mov edx, esi
mov ecx, dword [edi]
push 0
call fcn.00490140
add esp, 4
cmp byte [esp + 0x14], 0x85
mov ecx, dword [esp + 8]
mov dword [ecx + 0x30], eax
jne 0x49dc06
mov dword [esp + 0x98], 0
jmp 0x49dc8b
mov eax, dword [ebx + 0x1c]
mov esi, dword [edi + 0x2c]
mov ecx, dword [esp + 0x20]
mov edx, 0x45
mov eax, dword [eax]
mov dword [esp + 0x10], eax
lea eax, [esi + eax + 1]
inc esi
mov dword [edi + 0x2c], eax
push 0
push esi
push 0
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
push 1
call fcn.00486790
add esp, 4
test eax, eax
mov dword [esp + 0x98], esi
je 0x49dc88
mov esi, dword [esp + 0x10]
mov edi, eax
test esi, esi
jle 0x49dc84
xor ebx, ebx
nop dword [eax]
mov ecx, dword [esp]
mov edx, dword [esp + 4]
push ebx
call fcn.004a7a70
add esp, 4
mov dword [edi + ebx*4 + 0x14], eax
mov eax, dword [edi + 0x10]
mov byte [eax + ebx], 0
inc ebx
cmp esi, ebx
jne 0x49dc60
mov ebx, dword [esp + 4]
mov dword [esp + 0x60], edi
mov edi, dword [esp]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 8]
mov dword [ebx + 0x34], 0
mov ecx, edi
mov edx, ebx
lea eax, [eax - 1]
mov dword [esi + 0x38], 0
mov dword [esp + 0xc], eax
push str.ORDER
push dword [ebx + 0x30]
call fcn.00499710
add esp, 8
cmp dword [esi + 0x34], 0
jne 0x49dcd8
mov edx, dword [esp + 8]
mov ecx, edi
push str.ORDER
push dword [edx + 0x30]
call fcn.00499710
add esp, 8
mov eax, dword [esp + 0xc]
mov ecx, edi
mov edx, ebx
push eax
call fcn.0049f720
add esp, 4
cmp byte [esp + 0x14], 0x85
mov dword [esp + 0x28], 0
jne 0x49dd27
cmp dword [ebx + 8], 0
mov dword [esp + 0x2c], 0
je 0x49dd65
mov eax, dword [esp]
mov ecx, dword [eax + 0x2c]
lea edx, [ecx + 1]
add ecx, 2
mov dword [eax + 0x2c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x49dd31
inc eax
jmp 0x49dd34
mov dword [esp + 0x2c], 0
jmp 0x49dd65
mov eax, dword [ebx + 8]
mov esi, dword [esp + 0x20]
mov edx, 0x4d
mov ecx, esi
push 0
mov edi, dword [esp + 0x2c]
push edi
push eax
call fcn.0046c5a0
add esp, 0xc
mov ecx, esi
mov edx, 0x4d
push 0
push dword [esp + 0x30]
push edi
call fcn.0046c5a0
add esp, 0xc
mov edx, dword [ebx + 0x3c]
test edx, edx
je 0x49dd75
mov ecx, dword [esp + 0x18]
call fcn.00469b50
mov eax, dword [esp]
mov dword [ebx + 0x3c], 0
mov esi, dword [eax + 0x2c]
lea edx, [esi + 1]
lea ecx, [esi + 2]
mov dword [esp + 0x24], esi
lea esi, [esi + 4]
mov dword [eax + 0x2c], esi
mov byte [esp + 0x40], 0xd
mov dword [esp + 0x44], edx
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov byte [esp + 0xa0], 0xd
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0x1c], ecx
mov ecx, str.UNION
mov dword [esp + 0x6c], esi
mov dword [esp + 0x10], edx
mov al, byte [ebx]
add al, 0x7b
cmp al, 2
ja 0x49de06
movsx eax, al
mov ecx, dword [eax*4 + 0x519264]
push ecx
push str.MERGE___s_
push 1
push dword [esp + 0xc]
call fcn.0048df30
add esp, 0x10
mov esi, dword [esp + 0x20]
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
lea eax, [edx + 1]
jle 0x49de5b
mov dword [esi + 0x6c], eax
mov edi, dword [esp + 0x10]
mov dword [esp + 0x5c], edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x68]
mov dword [ecx + edx*4], 0xd
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], 0
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x49de75
mov ecx, esi
mov edx, 0xd
push eax
push 0
push dword [esp + 0x18]
call fcn.0046c600
add esp, 0xc
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 8]
mov dword [ecx + 8], eax
push str.LEFT
push 1
mov edi, dword [esp + 8]
push edi
call fcn.0048df30
add esp, 0xc
mov edx, dword [esp + 8]
lea eax, [esp + 0x40]
mov ecx, edi
push eax
call fcn.00475c40
add esp, 4
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x49dee4
lea ecx, [eax + 1]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0x42
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], 0
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49defb
mov ecx, esi
mov edx, 0x42
push 0
push 0
push dword [esp + 0x18]
call fcn.0046c600
add esp, 0xc
mov eax, dword [esi + 0xc]
mov ecx, 0x51ea94
mov byte [eax + 0x13], 0
mov eax, dword [esi + 0xc]
mov dword [eax + 0x1c], 0
mov edx, dword [esi]
mov eax, dword [esi + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x49df31
mov edx, dword [esp + 0x5c]
lea ecx, [eax - 1]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [esi + 0x68]
mov dword [ecx + 8], eax
mov edx, dword [esi + 0x6c]
cmp dword [esi + 0x70], edx
lea eax, [edx + 1]
jle 0x49df74
mov dword [esi + 0x6c], eax
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x94], edx
lea edx, [edx + edx*4]
mov ecx, dword [esi + 0x68]
mov dword [ecx + edx*4], 0xd
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], 0
mov dword [ecx + edx*4 + 0xc], eax
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x49df91
mov ecx, esi
mov edx, 0xd
push eax
push 0
push dword [esp + 0x24]
call fcn.0046c600
add esp, 0xc
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 4]
mov eax, dword [ebx + 8]
mov edx, dword [esp + 4]
add dword [esp + 0x24], 3
mov edi, esi
mov ebx, dword [ecx + 0xc]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
mov dword [edx + 8], ecx
mov ecx, dword [esp + 4]
mov dword [ecx + 0xc], 0
push str.RIGHT
push 1
mov esi, dword [esp + 8]
push esi
call fcn.0048df30
add esp, 0xc
mov edx, dword [esp + 4]
lea eax, [esp + 0xa0]
mov ecx, esi
push eax
call fcn.00475c40
add esp, 4
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov eax, dword [esp + 4]
mov dword [eax + 0xc], ebx
mov ebx, dword [esp + 4]
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e039
lea ecx, [eax + 1]
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0x42
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], 0
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e050
mov ecx, edi
mov edx, 0x42
push 0
push 0
push dword [esp + 0x24]
call fcn.0046c600
add esp, 0xc
mov eax, dword [edi + 0xc]
mov esi, dword [ebp + 8]
mov ecx, dword [esp]
mov edx, ebx
mov byte [eax + 0x13], 0
mov eax, dword [edi + 0xc]
mov dword [eax + 0x1c], 0
push dword [esp + 0xc]
mov edi, dword [esp + 0x64]
push edi
mov ebx, dword [esp + 0xa0]
push ebx
push dword [esp + 0x30]
push esi
lea eax, [esp + 0x54]
push eax
call fcn.004a7d40
add esp, 0x18
mov cl, byte [esp + 0x14]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0
mov eax, ecx
and al, 0xfe
cmp al, 0x84
mov byte [esp + 0x5c], al
jne 0x49e0d2
mov ecx, dword [esp]
mov edx, dword [esp + 4]
push dword [esp + 0xc]
push edi
push ebx
push dword [esp + 0x78]
push esi
lea eax, [esp + 0xb4]
push eax
call fcn.004a7d40
mov cl, byte [esp + 0x2c]
add esp, 0x18
mov dword [esp + 0x68], eax
test edi, edi
je 0x49e0e8
dec dword [edi]
jne 0x49e0e8
mov ecx, dword [edi + 0xc]
mov edx, edi
call fcn.004352c0
mov cl, byte [esp + 0x14]
mov ebx, dword [esp + 0xc]
cmp byte [esp + 0x5c], 0x86
mov dword [esp + 0x2c], ebx
je 0x49e166
mov edi, dword [esp + 0x20]
mov edx, 0xc
mov ecx, edi
push 0
push dword [esp + 0x6c]
push dword [esp + 0x74]
call fcn.0046c5a0
add esp, 0xc
mov ecx, edi
mov esi, eax
mov edx, 0xe
push 0
push dword [esp + 0x10]
push dword [esp + 0x24]
call fcn.0046c5a0
add esp, 0xc
mov ebx, eax
mov ecx, edi
mov edx, 0xb
push 0
mov dword [esp + 0x30], esi
push esi
push 0
call fcn.0046c5a0
add esp, 0xc
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
movsx ecx, word [esi + 2]
movsx edx, word [eax + 2]
call fcn.004a7a20
mov cl, byte [esp + 0x14]
mov word [esi + 2], ax
cmp cl, 0x87
jne 0x49e193
mov eax, dword [esp + 8]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
movzx eax, word [eax + 2]
mov dword [esp + 0x28], ecx
cmp word [edx + 2], ax
jle 0x49e1e3
mov ecx, dword [esp + 0x2c]
mov word [edx + 2], ax
mov dword [esp + 0x28], ecx
jmp 0x49e1e3
mov edi, dword [esp + 0x20]
mov edx, 0xc
mov ecx, edi
push 0
push dword [esp + 0x68]
push dword [esp + 0x2c]
call fcn.0046c5a0
add esp, 0xc
mov esi, eax
mov ecx, edi
mov edx, 0xe
push 0
push dword [esp + 0x10]
push dword [esp + 0x18]
call fcn.0046c5a0
add esp, 0xc
mov ecx, edi
mov edx, 0xb
push 0
mov dword [esp + 0x2c], esi
push esi
push 0
call fcn.0046c5a0
add esp, 0xc
mov edi, dword [esp + 0x20]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jle 0x49e228
lea eax, [ecx + 1]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x64]
mov dword [esp + 0xc], ecx
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xc
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x49e245
mov ecx, edi
mov edx, 0xc
push 0
push dword [esp + 0x68]
push dword [esp + 0x2c]
call fcn.0046c600
add esp, 0xc
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e282
lea ecx, [eax + 1]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x2c]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0xe
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], esi
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e29b
mov ecx, edi
mov edx, 0xe
push 0
push dword [esp + 0x30]
push dword [esp + 0x18]
call fcn.0046c600
add esp, 0xc
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e2d8
lea ecx, [eax + 1]
mov edx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0xb
mov dword [ecx + eax*4 + 4], 0
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e2ef
mov ecx, edi
mov edx, 0xb
push 0
push dword [esp + 0x3c]
push 0
call fcn.0046c600
add esp, 0xc
mov al, byte [esp + 0x14]
cmp al, 0x85
jne 0x49e2fd
mov eax, dword [esp + 0xc]
jmp 0x49e342
cmp al, 0x87
jne 0x49e308
mov eax, dword [esp + 0xc]
inc eax
jmp 0x49e342
mov ecx, edi
mov edx, 0xe
push 0
push dword [esp + 0x30]
push dword [esp + 0x18]
call fcn.0046c5a0
add esp, 0xc
mov esi, eax
mov ecx, edi
mov edx, 0xb
push 0
push dword [esp + 0x3c]
push 0
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], esi
mov dword [esp + 0x24], eax
mov esi, dword [edi + 0x6c]
cmp byte [esp + 0x5c], 0x84
mov eax, esi
jne 0x49e36e
mov ecx, edi
mov edx, 0xc
push 0
push dword [esp + 0x6c]
push dword [esp + 0x74]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e3a8
lea ecx, [eax + 1]
mov edx, dword [esp + 0x1c]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0xe
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0x28]
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e3c1
mov ecx, edi
mov edx, 0xe
push 0
push dword [esp + 0x2c]
push dword [esp + 0x24]
call fcn.0046c600
add esp, 0xc
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e3fe
lea ecx, [eax + 1]
mov edx, dword [esp + 0x38]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0xb
mov dword [ecx + eax*4 + 4], 0
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e415
mov ecx, edi
mov edx, 0xb
push 0
push dword [esp + 0x3c]
push 0
call fcn.0046c600
add esp, 0xc
mov edx, dword [edi]
mov eax, dword [edi + 0x6c]
mov ecx, 0x51ea94
cmp byte [edx + 0x51], 0
jne 0x49e43d
mov edx, dword [esp + 0x94]
lea ecx, [eax - 1]
test edx, edx
cmovns ecx, edx
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e479
lea ecx, [eax + 1]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0xe
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e48f
mov ecx, edi
mov edx, 0xe
push 0
push ebx
push dword [esp + 0x18]
call fcn.0046c600
add esp, 0xc
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e4cc
lea ecx, [eax + 1]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x28]
lea eax, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov dword [ecx + eax*4], 0xe
mov dword [ecx + eax*4 + 4], edx
mov dword [ecx + eax*4 + 8], ebx
mov dword [ecx + eax*4 + 0xc], 0
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49e4e5
mov ecx, edi
mov edx, 0xe
push 0
push dword [esp + 0x2c]
push dword [esp + 0x24]
call fcn.0046c600
add esp, 0xc
mov ecx, dword [edi + 0xc]
mov eax, 1
sub eax, dword [esp + 0x3c]
mov edx, dword [ecx + 0x38]
add edx, dword [ecx + 0x3c]
js 0x49e504
mov edx, dword [edi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + eax*4], edx
jmp 0x49e50f
mov edx, edi
push eax
call fcn.0048f970
add esp, 4
mov eax, dword [edi + 0x6c]
cmp dword [edi + 0x70], eax
jle 0x49e551
lea ecx, [eax + 1]
lea edx, [eax + eax*4]
mov dword [edi + 0x6c], ecx
mov ecx, dword [edi + 0x68]
mov byte [ecx + edx*4], 0x55
mov dword [ecx + edx*4 + 0xd], 0
mov dword [ecx + edx*4 + 5], 0
mov dword [ecx + edx*4 + 1], 0
mov dword [ecx + edx*4 + 9], 0
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x49e566
mov ecx, edi
mov edx, 0x55
push 0
push 0
push 0
call fcn.0046c600
add esp, 0xc
mov ecx, dword [edi]
mov dword [esp + 0x14], esi
cmp byte [ecx + 0x51], 0
je 0x49e588
mov edx, dword [esp + 0x34]
test edx, edx
je 0x49eb3d
call fcn.004352c0
jmp 0x49eb3d
test eax, eax
jns 0x49e590
mov eax, dword [edi + 0x6c]
dec eax
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
je 0x49eb2a
lea edx, [ecx + eax*4]
mov ecx, edi
push 0xfffffffffffffff1
push dword [esp + 0x38]
call fcn.0046c7f0
add esp, 8
jmp 0x49eb3d
mov eax, dword [esi]
mov dword [esp + 0x10], eax
mov edi, dword [esp]
mov eax, dword [esp + 4]
mov dword [esp + 0x14], edx
mov esi, dword [edi + 0x28]
lea ecx, [esi + 1]
mov dword [edi + 0x28], ecx
cmp byte [eax], 0x84
jne 0x49e5ed
test edx, edx
mov dword [esp + 0x2c], ecx
lea ecx, [esi + 2]
setne al
mov dword [edi + 0x28], ecx
add al, al
add al, 6
jmp 0x49e5fe
test edx, edx
mov dword [esp + 0x2c], 0
setne al
add al, al
or al, 5
mov byte [esp + 0x40], al
mov dword [esp + 0x44], esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xc], esi
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x3c]
mov edx, 0x72
mov eax, dword [edi + 0x2c]
mov ecx, esi
inc eax
mov dword [edi + 0x2c], eax
push ebx
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 0x18]
call fcn.0046c5a0
add esp, 0xc
cmp dword [esp + 0x14], 0
je 0x49e692
mov edx, dword [esp + 4]
mov ecx, edi
call fcn.004a7ab0
mov ebx, dword [esp + 0x14]
mov edi, eax
mov ecx, esi
mov edx, 0x64
mov eax, dword [ebx]
add eax, 2
push 0
push eax
push dword [esp + 0x14]
call fcn.0046c5a0
add esp, 0xc
mov ecx, esi
mov edx, eax
push 0xfffffffffffffff7
push edi
call fcn.0042b420
add esp, 8
mov dword [esp + 0x54], ebx
jmp 0x49e6a8
mov ecx, esi
mov edx, 0x64
push 0
push ebx
push dword [esp + 0x14]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 4]
test eax, eax
je 0x49e6d1
mov ecx, dword [esp + 8]
mov edx, 0x64
push 0
push 0
push eax
call fcn.0046c5a0
add esp, 0xc
mov dword [edi + 0x14], eax
or byte [edi + 4], 0x20
mov esi, dword [esp + 0x1c]
mov dword [edi + 0x30], 0
mov dword [esi + 0x38], 0
push str.SETUP
push 1
mov ebx, dword [esp + 8]
push ebx
call fcn.0048df30
add esp, 0xc
lea eax, [esp + 0x40]
mov ecx, ebx
mov edx, esi
push eax
call fcn.00475c40
add esp, 4
test eax, eax
mov ebx, edi
mov dword [esi + 0x38], edi
jne 0x49ee50
mov edi, dword [esp + 8]
mov edx, 0x25
mov ecx, edi
push 0
push dword [esp + 0x28]
mov esi, dword [esp + 0x14]
push esi
call fcn.0046c5a0
add esp, 0xc
mov dword [esp + 0x3c], eax
mov ecx, edi
mov edx, pe_nt_image_headers32
push 0
push 0
push dword [esp + 0x18]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [esp + 0x14]
test eax, eax
je 0x49ed52
mov eax, dword [eax]
mov ecx, edi
mov edx, 0x59
inc eax
push dword [esp + 0x38]
push eax
jmp 0x49ed5f
xor ecx, ecx
xor eax, eax
jmp 0x49d576
mov ecx, dword [esp]
pcmpeqd xmm0, xmm0
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x50], 0xffffffff
mov edi, ebx
mov edx, 0x64
movdqa xmmword [esp + 0x40], xmm0
mov ebx, dword [ecx + 0x28]
lea eax, [ebx + 2]
mov dword [ecx + 0x28], eax
mov ecx, dword [esp + 0x18]
push 0
push 0
push ebx
call fcn.0046c5a0
add esp, 0xc
mov ecx, edi
mov dword [edi + 0x14], eax
mov eax, ecx
mov ecx, dword [ecx + 0x38]
test ecx, ecx
jne 0x49e7ba
or byte [eax + 4], 0x20
lea eax, [esp + 0x40]
mov byte [esp + 0x40], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov edx, esi
mov edi, dword [esp]
mov ecx, edi
push eax
call fcn.00475c40
add esp, 4
test eax, eax
jne 0x49d574
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], ebx
inc ebx
mov edx, 0x64
push 0
push 0
push ebx
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x34], 0
mov eax, dword [ecx + 0x3c]
mov dword [ecx + 0x3c], 0
mov dword [esp + 0x44], ebx
mov cl, byte [ecx]
mov dword [esp + 0x14], eax
mov eax, str.UNION
add cl, 0x7b
cmp cl, 2
ja 0x49e85c
movsx eax, cl
mov eax, dword [eax*4 + 0x519264]
push eax
push str._s_USING_TEMP_B_TREE
push 1
push edi
call fcn.0048df30
add esp, 0x10
mov ecx, edi
mov edi, dword [esp + 4]
lea eax, [esp + 0x40]
mov edx, edi
push eax
call fcn.00475c40
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x34]
mov dword [edi + 0x34], esi
mov dword [esp + 0x10], eax
movzx eax, word [esi + 2]
cmp word [edi + 2], ax
jle 0x49e89e
mov word [edi + 2], ax
mov edx, dword [edi + 0x3c]
test edx, edx
je 0x49e8ae
mov ecx, dword [esp + 0x20]
call fcn.00469b50
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp]
mov dword [eax + 0x3c], ecx
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x49f229
mov eax, dword [edi + 0x38]
mov edx, dword [esp + 4]
mov ecx, edi
lea esi, [eax - 1]
add eax, 0xfffffffe
mov ebx, eax
mov dword [edi + 0x38], eax
push esi
call fcn.0049f720
add esp, 4
mov ecx, dword [esp + 0x18]
mov edx, 0x25
push 0
mov dword [esp + 0x18], esi
push esi
push dword [esp + 0x10]
call fcn.0046c5a0
add esp, 0xc
mov al, byte [edi + 0x13]
test al, al
je 0x49f131
dec al
mov byte [edi + 0x13], al
movzx eax, al
mov edi, dword [edi + eax*4 + 0x94]
jmp 0x49f13a
mov ebx, dword [edi + 0x28]
mov ecx, dword [esp + 0x18]
mov edx, 0x64
lea eax, [ebx + 1]
mov dword [edi + 0x28], eax
push 0
push 0
push ebx
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esp + 4]
mov dword [ecx + 0x14], eax
mov eax, ecx
mov ecx, dword [ecx + 0x38]
test ecx, ecx
jne 0x49e946
or byte [eax + 4], 0x20
mov ecx, dword [esp]
lea edi, [esp + 0x40]
mov byte [esp + 0x40], 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov edx, esi
push edi
call fcn.00475c40
add esp, 4
test eax, eax
jne 0x49d574
mov edx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
mov al, byte [edx]
mov dword [edx + 0x34], 0
mov ebx, dword [edx + 0x3c]
mov dword [edx + 0x3c], 0
cmp al, 0x86
sete cl
add al, 0x7b
mov dword [esp + 8], ebx
inc cl
cmp al, 2
mov byte [esp + 0x40], cl
mov ecx, str.UNION
ja 0x49e9cd
movsx eax, al
mov ecx, dword [eax*4 + 0x519264]
push ecx
push str._s_USING_TEMP_B_TREE
push 1
mov ebx, dword [esp + 0xc]
push ebx
call fcn.0048df30
add esp, 0x10
mov ecx, ebx
mov ebx, dword [esp + 4]
mov edx, ebx
push edi
call fcn.00475c40
add esp, 4
mov edx, dword [ebx + 0x30]
mov dword [esp + 0xc], eax
test edx, edx
je 0x49ea07
mov ecx, dword [esp + 0x20]
call fcn.0046a010
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x34]
mov dword [edi + 0x34], esi
mov dword [edi + 0x30], 0
cmp byte [edi], 0x84
mov dword [esp + 0x10], eax
jne 0x49ea32
movsx ecx, word [edi + 2]
movsx edx, word [esi + 2]
call fcn.004a7a20
mov word [edi + 2], ax
mov edx, dword [edi + 0x3c]
test edx, edx
je 0x49ea42
mov ecx, dword [esp + 0x20]
call fcn.00469b50
cmp byte [esp + 0x14], 1
mov edi, dword [esp]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [eax + 0x3c], ecx
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
je 0x49eb1d
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x51], 0
jne 0x49eb1d
mov esi, dword [edi + 0x38]
mov edx, dword [esp + 4]
mov ecx, edi
lea eax, [esi - 1]
add esi, 0xfffffffe
mov dword [edi + 0x38], esi
push eax
mov edi, eax
mov dword [esp + 0xc], eax
call fcn.0049f720
add esp, 4
mov ebx, dword [esp + 0x18]
mov edx, 0x25
mov ecx, ebx
push 0
push edi
push dword [esp + 0x24]
call fcn.0046c5a0
add esp, 0xc
mov eax, dword [ebx + 0x6c]
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x70]
push edi
push esi
push eax
push 0
push 0
push dword [esp + 0x30]
call fcn.004a36f0
add esp, 0x18
mov ecx, ebx
mov edx, esi
call fcn.0048b2b0
mov ecx, ebx
mov edx, 5
push 0
push dword [esp + 0x18]
mov edi, dword [esp + 8]
mov esi, dword [esp + 0x24]
push esi
call fcn.0046c5a0
add esp, 0xc
mov edx, dword [esp + 8]
mov ecx, ebx
call fcn.0048b2b0
mov ecx, ebx
mov edx, 0x74
push 0
push 0
push esi
call fcn.0046c5a0
add esp, 0xc
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0xc]
jmp 0x49f22d
mov esi, dword [esp + 0x34]
test esi, esi
je 0x49eb3d
lea edx, [ecx + eax*4 + 1]
mov dword [ecx + eax*4 + 0x10], esi
mov byte [edx], 0xf1
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0xa8]
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x49eb81
lea ecx, [eax + 1]
lea edx, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + edx*4], 0x56
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], ebx
mov ebx, dword [esp + 0x30]
mov dword [ecx + edx*4 + 0xc], ebx
mov dword [ecx + edx*4 + 0x10], 0
jmp 0x49eb96
mov ecx, esi
mov edx, 0x56
push dword [esp + 0x30]
push ebx
push edi
call fcn.0046c600
add esp, 0xc
mov ecx, dword [esi]
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x9c]
cmp byte [ecx + 0x51], 0
je 0x49ebc8
test edx, edx
je 0x49ec0c
cmp dword [ecx + 0x1f8], 0
jne 0x49ec0c
dec dword [edx]
jne 0x49ec0c
mov ecx, dword [edx + 0xc]
call fcn.004352c0
jmp 0x49ec0c
test eax, eax
jns 0x49ebd4
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x6c]
dec eax
mov ecx, dword [esp + 0x20]
lea eax, [eax + eax*4]
mov esi, dword [ecx + 0x68]
cmp byte [esi + eax*4 + 1], 0
je 0x49ebfb
lea edx, [esi + eax*4]
push 0xfffffffffffffff7
push dword [esp + 0xa0]
call fcn.0046c7f0
add esp, 8
jmp 0x49ec0c
test edx, edx
je 0x49ec0c
mov ecx, edx
lea edx, [esi + eax*4 + 1]
mov dword [esi + eax*4 + 0x10], ecx
mov byte [edx], 0xf7
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x49ec27
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 1
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x49ec61
lea ecx, [eax + 1]
mov edx, dword [esp + 0x24]
lea eax, [eax + eax*4]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
mov dword [ecx + eax*4], 0x10
mov dword [ecx + eax*4 + 4], edx
mov edx, dword [esp + 0xc]
mov dword [ecx + eax*4 + 8], edx
mov edx, dword [esp + 0x14]
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], 0
jmp 0x49ec7c
mov ecx, esi
mov edx, 0x10
push dword [esp + 0x14]
push dword [esp + 0x10]
push dword [esp + 0x2c]
call fcn.0046c600
add esp, 0xc
mov ecx, dword [esi + 0xc]
neg ebx
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x49ec94
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + ebx*4], eax
jmp 0x49ec9f
mov edx, esi
push ebx
call fcn.0048f970
add esp, 4
mov edx, dword [edi + 0x34]
mov ecx, dword [esp + 0x18]
test edx, edx
je 0x49ecb4
push 1
call fcn.00469ca0
add esp, 4
mov eax, dword [esp + 8]
mov dword [edi + 0x34], eax
mov dword [eax + 0x38], edi
mov edi, dword [esp]
mov ecx, dword [edi + 0xd4]
test ecx, ecx
je 0x49ecef
mov eax, dword [edi + 8]
jns 0x49ecd4
mov ecx, dword [eax + 0x6c]
dec ecx
mov esi, dword [eax]
mov edx, 0x51ea94
cmp byte [esi + 0x51], 0
jne 0x49ecea
lea edx, [ecx + ecx*4]
shl edx, 2
add edx, dword [eax + 0x68]
mov eax, dword [edx + 8]
jmp 0x49ecf1
xor eax, eax
mov dword [edi + 0xd4], eax
xor eax, eax
cmp dword [edi + 0x24], 0
setne al
jmp 0x49d5a1
mov ecx, dword [eax + 0x150]
test ecx, ecx
je 0x49d8b3
mov edi, dword [esp]
push dword [edi + 0xf0]
push 0
push 0
push 0
push 0x21
push dword [eax + 0x154]
call ecx
add esp, 0x18
cmp eax, 1
jne 0x49f03c
push str.not_authorized
push edi
call fcn.0042af90
add esp, 8
mov dword [edi + 0xc], 0x17
jmp 0x49ee6f
mov ecx, edi
mov edx, 0x7e
push 0
push dword [esp + 0x3c]
push esi
call fcn.0046c5a0
add esp, 0xc
mov eax, esi
mov esi, dword [esp]
mov ecx, edi
mov edx, 0x7a
push 0
push 0
push eax
call fcn.0046c5a0
add esp, 0xc
mov ecx, edi
mov edi, dword [esi + 0x38]
mov edx, dword [esp + 0x34]
dec edi
mov dword [esi + 0x38], edi
push edi
call fcn.004a7ce0
add esp, 4
mov ecx, esi
mov esi, dword [esp + 0x24]
lea eax, [esp + 0x70]
mov edx, ebx
push esi
push edi
push eax
push 0
push 0
push dword [esp + 0x24]
call fcn.004a36f0
add esp, 0x18
mov eax, dword [esp + 0x28]
test eax, eax
je 0x49edd3
mov ecx, dword [esp + 8]
mov edx, 0x3b
push 0
push esi
push eax
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esp + 8]
mov edx, edi
call fcn.0048b2b0
test byte [ebx + 4], 8
jne 0x49ee19
mov dword [ebx + 0x34], 0
push str.RECURSIVE_STEP
push 1
mov esi, dword [esp + 8]
push esi
call fcn.0048df30
add esp, 0xc
lea eax, [esp + 0x40]
mov ecx, esi
mov edx, ebx
push eax
call fcn.00475c40
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x34], eax
jmp 0x49ee2a
push str.recursive_aggregate_queries_not_supported
push dword [esp + 4]
call fcn.0042af90
add esp, 8
mov esi, dword [esp + 8]
mov edx, 0xb
mov ecx, esi
push 0
push dword [esp + 0x40]
push 0
call fcn.0046c5a0
add esp, 0xc
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.0048b2b0
mov edx, dword [ebx + 0x30]
mov esi, dword [esp + 0x30]
test edx, edx
je 0x49ee65
mov eax, dword [esp]
mov ecx, dword [eax]
call fcn.0046a010
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x3c], esi
mov edi, dword [esp]
xor ecx, ecx
xor eax, eax
cmp dword [edi + 0x24], 0
jne 0x49d576
test byte [ebx + 4], 0x20
je 0x49d576
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x20]
mov edi, dword [eax]
mov edx, edi
push 1
call fcn.00486790
add esp, 4
test eax, eax
je 0x49eeff
mov esi, eax
test edi, edi
mov dword [esp + 8], edi
jle 0x49ef0d
xor edi, edi
jmp 0x49eec0
inc edi
cmp dword [esp + 8], edi
je 0x49eee3
mov ecx, dword [esp]
mov edx, ebx
push edi
call fcn.004a7a70
add esp, 4
test eax, eax
mov dword [esi + edi*4 + 0x14], eax
jne 0x49eeb9
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov dword [esi + edi*4 + 0x14], eax
jmp 0x49eeb9
mov edi, dword [esp + 0x18]
test ebx, ebx
jne 0x49ef42
dec dword [esi]
jne 0x49eef9
mov ecx, dword [esi + 0xc]
mov edx, esi
call fcn.004352c0
mov eax, dword [esp + 0xc]
jmp 0x49ef04
mov eax, 7
mov ecx, dword [esp + 0x10]
jmp 0x49d576
mov edi, dword [esp + 0x18]
jmp 0x49ef42
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
je 0x49f022
lea edx, [ecx + eax*4]
mov ecx, edi
push 0xfffffffffffffff7
push esi
call fcn.0046c7f0
add esp, 8
mov dword [ebx + 0x18], 0xffffffff
mov ebx, dword [ebx + 0x34]
test ebx, ebx
je 0x49eeeb
mov eax, dword [ebx + 0x14]
test eax, eax
js 0x49ef3b
mov edx, dword [edi]
mov ecx, 0x51ea94
cmp byte [edx + 0x51], 0
jne 0x49ef5f
lea ecx, [eax + eax*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
mov edx, dword [esp + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esi]
lea edx, [ecx + 1]
mov dword [esi], edx
mov edx, dword [edi]
cmp byte [edx + 0x51], 0
je 0x49ef90
cmp dword [edx + 0x1f8], 0
jne 0x49efba
test ecx, ecx
mov dword [esi], ecx
jne 0x49efba
mov ecx, dword [esi + 0xc]
mov edx, esi
call fcn.004352c0
jmp 0x49efba
mov ecx, dword [edi + 0x68]
lea eax, [eax + eax*4]
cmp byte [ecx + eax*4 + 1], 0
je 0x49efaf
lea edx, [ecx + eax*4]
mov ecx, edi
push 0xfffffffffffffff7
push esi
call fcn.0046c7f0
add esp, 8
jmp 0x49efba
lea edx, [ecx + eax*4 + 1]
mov dword [ecx + eax*4 + 0x10], esi
mov byte [edx], 0xf7
mov dword [ebx + 0x14], 0xffffffff
mov eax, dword [ebx + 0x18]
test eax, eax
js 0x49ef3b
mov edx, dword [edi]
mov ecx, 0x51ea94
cmp byte [edx + 0x51], 0
jne 0x49efe2
lea ecx, [eax + eax*4]
shl ecx, 2
add ecx, dword [edi + 0x68]
mov edx, dword [esp + 8]
mov dword [ecx + 8], edx
mov ecx, dword [esi]
lea edx, [ecx + 1]
mov dword [esi], edx
mov edx, dword [edi]
cmp byte [edx + 0x51], 0
je 0x49ef13
cmp dword [edx + 0x1f8], 0
jne 0x49ef34
test ecx, ecx
mov dword [esi], ecx
jne 0x49ef34
mov ecx, dword [esi + 0xc]
mov edx, esi
call fcn.004352c0
jmp 0x49ef34
lea edx, [ecx + eax*4 + 1]
mov dword [ecx + eax*4 + 0x10], esi
mov byte [edx], 0xf7
jmp 0x49ef34
mov eax, 7
jmp 0x49d5a1
test eax, 0xfffffffd
je 0x49f124
push str.authorizer_malfunction
mov esi, dword [esp + 4]
push esi
call fcn.0042af90
add esp, 8
mov dword [esi + 0xc], 1
jmp 0x49ee6f
mov dword [esp + 8], 0
push str.UNION_ALL
push 1
mov edi, dword [esp + 8]
push edi
call fcn.0048df30
add esp, 0xc
lea eax, [esp + 0x70]
mov ecx, edi
mov edx, ebx
push eax
call fcn.00475c40
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x34]
mov dword [ebx + 0x34], esi
movsx ecx, word [ebx + 2]
movsx edx, word [esi + 2]
mov dword [esp + 0x10], eax
call fcn.004a7a20
mov word [ebx + 2], ax
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x49f0e4
mov ecx, dword [eax + 0xc]
lea edx, [esp + 0x40]
call fcn.004996b0
test eax, eax
je 0x49f0e4
mov ecx, dword [esp + 0x40]
test ecx, ecx
jle 0x49f0e4
movzx esi, word [ebx + 2]
xor edx, edx
call fcn.00457e60
cmp si, ax
jle 0x49f0e4
mov word [ebx + 2], ax
mov esi, dword [esp + 8]
mov edi, dword [esp]
test esi, esi
je 0x49f11b
mov eax, dword [esp + 0x18]
mov ecx, 0x51ea94
mov edx, dword [eax]
mov eax, dword [eax + 0x6c]
cmp byte [edx + 0x51], 0
jne 0x49f118
lea ecx, [eax - 1]
test esi, esi
mov edx, dword [esp + 0x18]
cmovns ecx, esi
lea ecx, [ecx + ecx*4]
shl ecx, 2
add ecx, dword [edx + 0x68]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
jmp 0x49f22d
test eax, eax
jne 0x49ee6f
jmp 0x49d8b3
mov eax, edi
mov edi, dword [edi + 0x2c]
inc edi
mov dword [eax + 0x2c], edi
mov esi, dword [esp + 0x18]
mov edx, 0x7e
mov ecx, esi
push 0
push edi
push dword [esp + 0x10]
call fcn.0046c5a0
add esp, 0xc
mov dword [esp + 0x24], eax
mov ecx, esi
mov edx, 0x1d
push edi
push ebx
push dword [esp + 0x24]
call fcn.0046c5a0
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x51], 0
jne 0x49f18c
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
mov ecx, dword [ecx + 0x68]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], 0
mov ecx, dword [esp]
test edi, edi
je 0x49f1aa
movzx eax, byte [ecx + 0x13]
cmp eax, 7
ja 0x49f1aa
mov edx, eax
inc dl
mov byte [ecx + 0x13], dl
mov dword [ecx + eax*4 + 0x94], edi
mov edx, dword [esp + 4]
lea eax, [esp + 0x70]
push dword [esp + 0x14]
push ebx
push eax
push 0
push 0
mov edi, dword [esp + 0x1c]
push edi
call fcn.004a36f0
add esp, 0x18
mov esi, dword [esp + 0x18]
mov edx, ebx
mov ecx, esi
call fcn.0048b2b0
mov ecx, esi
mov edx, 5
push 0
push dword [esp + 0x28]
push edi
call fcn.0046c5a0
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ecx, esi
call fcn.0048b2b0
mov ecx, esi
mov edx, 0x74
push 0
push 0
push dword [esp + 0x24]
call fcn.0046c5a0
add esp, 0xc
mov ecx, esi
mov edx, 0x74
push 0
push 0
push edi
call fcn.0046c5a0
add esp, 0xc
mov edi, dword [esp]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 4]
cmp dword [ebx + 0x38], 0
mov ecx, dword [esp + 0x10]
jne 0x49ee76
mov ecx, edi
mov esi, eax
call fcn.0049f250
mov ecx, dword [esp + 0x10]
mov eax, esi
jmp 0x49ee76