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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
mov eax, dword [0x5c8910]
xor eax, esp
mov dword [esp + 0xd8], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x54], eax
xor ecx, ecx
mov dword [esp + 0x3c], edx
inc ecx
mov dword [esp + 0x38], esi
push edi
mov eax, dword [esi + 0x1e4]
mov dword [esp + 0xa8], eax
mov eax, dword [esi + 0x1e8]
mov dword [esi + 0x1e4], eax
inc eax
mov dword [esi + 0x1e8], eax
mov eax, dword [esi]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x20], eax
test edx, edx
je 0x49de1e
cmp byte [eax + 0x36], 0
jne 0x49de1e
xor ebx, ebx
cmp dword [esi + 0x44], ebx
jne 0x49de1e
push ebx
push ebx
push ebx
push 0x15
pop edx
mov ecx, esi
call fcn.0048c5ff
add esp, 0xc
test eax, eax
je 0x49cc12
xor edx, edx
lea eax, [edx + 1]
jmp 0x49de20
push 0xa
xor eax, eax
lea edi, [esp + 0x84]
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x40]
cmp byte [eax], 4
ja 0x49cc45
mov edx, dword [edi + 0x38]
mov ecx, dword [esp + 0x20]
call fcn.00487d7c
mov eax, 0xfffe
mov dword [edi + 0x38], ebx
and word [edi + 6], ax
push ebx
mov edx, edi
mov ecx, esi
call fcn.0049c781
mov eax, dword [edi + 0x38]
pop ecx
mov ecx, dword [edi]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
cmp dword [esi + 0x44], ebx
jne 0x49ddb8
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x36], bl
jne 0x49ddc1
movzx eax, word [edi + 6]
mov ecx, esi
shr eax, 2
and eax, 1
mov dword [esp + 0x38], eax
call fcn.0049a515
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x49ddc8
mov edx, dword [esp + 0x18]
cmp dword [edx], 1
jle 0x49ccbb
mov edx, dword [esp + 0x58]
mov ecx, esi
call fcn.004996a4
mov ecx, dword [esp + 0xc]
jmp 0x49ccbd
mov eax, ebx
test eax, eax
jne 0x49ddc8
mov edx, ebx
mov dword [esp + 0x24], ebx
cmp dword [edi + 0x3c], ebx
jne 0x49ced4
mov eax, dword [esp + 0x10]
jmp 0x49ccde
mov ecx, dword [esp + 0xc]
movsx eax, word [eax]
cmp edx, eax
jge 0x49ced4
mov esi, dword [esp + 0x10]
mov eax, edx
shl eax, 6
mov dword [esp + 0x44], eax
mov esi, dword [eax + esi + 0x18]
test esi, esi
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x3c]
je 0x49cec2
mov edx, dword [esp + 0x10]
cmp dword [eax + edx + 0x1c], ebx
je 0x49cd31
push ebx
push dword [eax + edx + 0x1c]
push dword [eax + edx + 0x20]
push 2
pop edx
call fcn.0047ac80
mov edx, dword [esp + 0x30]
add esp, 0xc
jmp 0x49cec2
mov ecx, edi
call fcn.00487096
add dword [esi + 0x1e0], eax
mov edx, edi
mov eax, dword [esp + 0x5c]
mov ecx, esi
movzx eax, word [eax + 6]
shr eax, 2
and eax, 1
push eax
push dword [esp + 0x3c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
push eax
call fcn.0049bafe
add esp, 0xc
test eax, eax
je 0x49cd89
cmp dword [esp + 0x28], ebx
je 0x49cd7d
or word [edi + 6], 4
mov dword [esp + 0x38], 1
or eax, 0xffffffff
mov dword [esp + 0x24], eax
jmp 0x49ce89
mov eax, dword [esi + 0x4c]
mov edx, dword [esp + 0x44]
inc eax
mov ecx, dword [esp + 0x10]
push ebx
push eax
push ebx
mov dword [esi + 0x4c], eax
mov dword [edx + ecx + 0x20], eax
mov ecx, dword [esp + 0x18]
push 7
pop edx
mov dword [esp + 0x28], ebx
call fcn.0047ac80
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
inc eax
mov dword [ecx + edx + 0x1c], eax
cmp byte [ecx + edx + 0x26], bl
jne 0x49cddc
mov ecx, esi
call fcn.00487ffb
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + edx + 0x28]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0xd8], eax
mov al, byte [esi + 0x1e8]
mov word [esp + 0xd4], 9
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov byte [ecx + edx + 0x27], al
lea eax, [esp + 0xd4]
push eax
mov edx, edi
mov ecx, esi
call fcn.0049cb7c
movsd xmm0, qword [edi + 0x20]
pop ecx
call fcn.0056e061
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
mov ecx, dword [edx + edi + 0x14]
mov edi, dword [esp + 0x40]
mov dword [ecx + 0x18], eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x49ce57
js 0x49ce57
mov eax, dword [esp + 0xc]
mov edx, ecx
mov ecx, eax
push dword [eax + 0x1c]
call fcn.0047afc8
pop ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x10]
push ebx
push ebx
push dword [eax + ecx + 0x20]
mov ecx, dword [esp + 0x18]
push 3
pop edx
call fcn.0047ac80
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, dword [esp + 0xc]
push eax
call fcn.0047afb1
pop ecx
mov byte [esi + 0x13], bl
mov dword [esi + 0x3c], ebx
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x36], bl
jne 0x49ddb4
mov ecx, edi
call fcn.00487096
mov ecx, dword [esp + 0x58]
sub dword [esi + 0x1e0], eax
mov eax, dword [edi + 0x28]
mov edx, dword [esp + 0x24]
cmp byte [ecx], 4
mov dword [esp + 0x10], eax
jbe 0x49cec6
mov eax, dword [edi + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
inc edx
mov dword [esp + 0x24], edx
cmp dword [edi + 0x3c], ebx
je 0x49ccda
mov eax, dword [edi]
movzx ecx, word [edi + 6]
mov edx, dword [edi + 0x34]
and ecx, 1
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 0x30]
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], ecx
cmp dword [edi + 0x3c], ebx
je 0x49cf5c
cmp dword [edi + 0x44], ebx
jne 0x49cf3c
mov ecx, ebx
mov eax, edi
mov dword [eax + 0x40], ebx
inc ecx
mov dword [eax + 0x44], edi
mov ebx, eax
mov eax, dword [eax + 0x3c]
test eax, eax
jne 0x49cf0c
mov ebx, dword [esp + 0x20]
cmp dword [ebx + 0x5c], eax
je 0x49cf3c
cmp ecx, dword [ebx + 0x5c]
jle 0x49cf3c
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.00468970
pop ecx
pop ecx
jmp 0x49ddcc
push dword [esp + 0x58]
mov edx, edi
mov ecx, esi
call fcn.0049a711
mov edi, dword [esp + 0xac]
pop ecx
mov dword [esi + 0x1e4], edi
jmp 0x49de20
mov edx, dword [esp + 0x34]
mov ecx, eax
call fcn.0048a122
mov ecx, dword [esp + 0x34]
test eax, eax
jne 0x49cf85
mov eax, dword [esp + 0x20]
push 0
test byte [eax + 0x18], 0x20
pop eax
cmove ecx, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ecx
mov al, byte [edi + 6]
xor edx, edx
and al, 5
inc edx
cmp al, dl
jne 0x49cfc9
mov edx, dword [edi]
call fcn.0048a122
test eax, eax
jne 0x49cfc9
mov edx, dword [edi]
mov eax, 0xfffe
mov ecx, dword [esp + 0x20]
and word [edi + 6], ax
push ebx
call fcn.00487891
mov dword [esp + 0x34], eax
mov dword [edi + 0x30], eax
mov dword [esp + 0x64], eax
mov eax, ebx
pop ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
jmp 0x49cfcd
mov eax, dword [esp + 0x34]
test eax, eax
je 0x49d00e
mov edx, eax
mov ecx, esi
call fcn.00499a18
mov edx, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [esi + 0x48]
push 0xfffffffffffffff0
push ecx
mov ecx, dword [esp + 0x14]
mov dword [edx + 4], eax
inc dword [esi + 0x48]
mov eax, dword [edx]
push ebx
add eax, 2
push eax
push dword [edx + 4]
push 0x2a
pop edx
call fcn.0047ad06
add esp, 0x14
mov dword [esp + 0x68], eax
mov dword [edi + 0x18], eax
jmp 0x49d013
or dword [esp + 0x68], 0xffffffff
mov eax, dword [esp + 0x58]
cmp byte [eax], 9
jne 0x49d035
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0xc]
push ebx
push dword [edx]
push dword [eax + 4]
push 0x2a
pop edx
call fcn.0047ac80
add esp, 0xc
mov ecx, dword [esp + 0xc]
call fcn.0047ada4
movsd xmm0, qword [0x5aba80]
mov edx, edi
push eax
mov ecx, esi
mov dword [esp + 0xb4], eax
movsd qword [edi + 0x20], xmm0
call fcn.0049a549
pop ecx
mov ecx, dword [esp + 0xc]
cmp dword [edi + 8], ebx
jne 0x49d07d
mov eax, dword [esp + 0x68]
test eax, eax
js 0x49d07d
mov edx, eax
call fcn.0047b2b1
mov byte [eax], 0x2b
or word [edi + 6], 0x40
test byte [edi + 6], 1
je 0x49d0dc
mov eax, dword [esi + 0x48]
mov ecx, esi
mov dword [esp + 0x44], eax
inc eax
mov dword [esi + 0x48], eax
mov edx, dword [edi]
call fcn.00499a18
mov ecx, dword [esp + 0xc]
mov esi, eax
push ebx
push ebx
push dword [esp + 0x4c]
push 0x2a
pop edx
call fcn.0047ac80
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, eax
mov dword [esp + 0x1c], eax
push 0xfffffffffffffff0
push esi
call fcn.0047b17d
mov esi, dword [esp + 0x44]
pop ecx
pop ecx
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 4]
test edx, edx
je 0x49d0e6
imul eax, dword [ecx + 0x1c], 0x14
mov byte [eax + edx - 0x11], 8
jmp 0x49d0e6
or dword [esp + 0x1c], 0xffffffff
or dword [esp + 0x44], 0xffffffff
mov edx, dword [esp + 0x30]
cmp dword [esp + 0x38], ebx
jne 0x49d325
test edx, edx
jne 0x49d325
cmp dword [esp + 0x64], ebx
je 0x49d106
mov eax, dword [edi]
jmp 0x49d108
mov eax, ebx
mov edx, dword [esp + 0x10]
mov ecx, esi
push ebx
push ebx
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x5c]
call fcn.004a5201
add esp, 0x14
mov dword [esp + 0x24], eax
test eax, eax
je 0x49ddc8
movsd xmm1, qword [eax + 0x30]
movsd xmm0, qword [edi + 0x20]
comisd xmm0, xmm1
jbe 0x49d143
movsd qword [edi + 0x20], xmm1
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], eax
test edx, edx
js 0x49d164
test eax, eax
jne 0x49d164
mov ecx, dword [esp + 0xc]
call fcn.0047b151
or dword [edi + 0x18], 0xffffffff
mov eax, dword [esp + 0x24]
mov cl, byte [eax + 8]
mov byte [esp + 0x17], cl
test cl, cl
je 0x49d2f3
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
call fcn.0047b2b1
or dword [esp + 0x44], 0xffffffff
mov edx, eax
cmp byte [esp + 0x17], 2
jne 0x49d2ec
inc dword [esi + 0x4c]
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x2c], eax
lea ecx, [eax + 1]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
lea edi, [eax + ecx]
mov dword [esp + 0x50], edi
mov edi, dword [esp + 0x2c]
lea eax, [edi + eax*2]
mov dword [esi + 0x4c], eax
xor eax, eax
inc eax
mov dword [edx + 8], edi
mov edi, dword [esp + 0x18]
push eax
mov byte [edx], 7
mov dword [edx + 4], eax
mov edx, edi
push ecx
mov ecx, esi
call fcn.00489a87
mov eax, dword [esp + 0x14]
mov ecx, dword [edi]
add ecx, 3
push ebx
mov eax, dword [eax + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x60], eax
dec eax
push eax
push dword [esp + 0x3c]
push 0x1b
pop edx
call fcn.0047ac80
add esp, 0x14
mov dword [esp + 0x5c], ebx
cmp dword [edi], ebx
mov edi, dword [esp + 0x40]
jle 0x49d29e
mov eax, dword [esp + 0x2c]
mov ecx, ebx
mov edx, dword [esp + 0x50]
inc eax
mov edi, dword [esp + 0xc]
sub edx, eax
mov dword [esp + 0x28], eax
mov ebx, eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 8]
mov edx, dword [edx + ecx]
mov ecx, esi
call fcn.00486d73
mov esi, eax
mov ecx, edi
mov eax, dword [esp + 0x48]
add eax, ebx
push eax
push dword [esp + 0x58]
push ebx
push 0x4b
pop edx
call fcn.0047ac80
add esp, 0xc
or edx, 0xffffffff
mov ecx, edi
push 0xfffffffffffffffc
push esi
call fcn.0047b17d
pop ecx
pop ecx
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x49d277
imul eax, dword [edi + 0x1c], 0x14
mov byte [eax + ecx - 0x11], 0x80
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x1c]
inc eax
mov edx, dword [esp + 0x18]
add ecx, 0x14
mov esi, dword [esp + 0x3c]
inc ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], ecx
cmp eax, dword [edx]
jl 0x49d22c
mov edi, dword [esp + 0x40]
xor ebx, ebx
mov eax, dword [esp + 0x24]
xor edx, edx
mov ecx, dword [esp + 0xc]
inc edx
push ebx
push dword [eax + 0x14]
push ebx
call fcn.0047ac80
mov ecx, dword [esp + 0x18]
add esp, 0xc
push ebx
push dword [esp + 0x30]
push ebx
push 7
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, dword [esp + 0xc]
push dword [eax]
mov eax, dword [esp + 0x30]
push dword [esp + 0x54]
inc eax
push eax
push 0xd
pop edx
call fcn.0047ac80
add esp, 0xc
jmp 0x49d2ef
mov byte [edx], 0x95
mov eax, dword [esp + 0x24]
push dword [eax + 0x18]
mov edx, edi
mov ecx, esi
push dword [eax + 0x14]
push dword [esp + 0x60]
push dword [esp + 0x50]
push dword [esp + 0x44]
push ebx
push ebx
push dword [esp + 0x34]
call fcn.004996c8
mov ecx, dword [esp + 0x44]
add esp, 0x20
call fcn.004a5ade
jmp 0x49dd58
mov dword [esp + 0x54], ebx
mov dword [esp + 0x48], ebx
test edx, edx
je 0x49d3ab
mov eax, dword [edi]
mov edi, dword [eax + 8]
mov eax, dword [eax]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x40]
test eax, eax
jle 0x49d36c
mov esi, dword [esp + 0x28]
add esi, 0x10
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
xor edi, edi
dec eax
mov word [ecx], di
lea ecx, [ecx + 0x14]
test eax, eax
jg 0x49d357
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
mov eax, dword [edx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [edx]
test eax, eax
jle 0x49d391
mov edx, dword [esp + 0x28]
add edx, 0x10
xor esi, esi
dec eax
mov word [edx], si
lea edx, [edx + 0x14]
test eax, eax
jg 0x49d380
mov esi, dword [esp + 0x3c]
movsd xmm0, qword [edi + 0x20]
movsd xmm1, qword [0x5aba00]
comisd xmm0, xmm1
jbe 0x49d3b8
movsd qword [edi + 0x20], xmm1
jmp 0x49d3b8
movsd xmm0, qword [0x5ab9a0]
movsd qword [edi + 0x20], xmm0
call fcn.0047ada4
mov dword [esp + 0x2c], eax
lea edi, [esp + 0xb4]
xor eax, eax
push 8
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x30]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x80]
mov dword [esp + 0xb4], esi
mov dword [esp + 0xc0], eax
test edi, edi
je 0x49d403
mov eax, dword [edi]
inc eax
mov dword [esp + 0x8c], eax
jmp 0x49d40a
mov dword [esp + 0x8c], ebx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xb4]
mov dword [esp + 0x90], edi
call fcn.0048a4cd
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0xb4]
call fcn.0048a4cd
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x49d447
mov edx, eax
lea ecx, [esp + 0xb4]
call fcn.0048a49e
mov eax, dword [esp + 0x98]
mov dword [esp + 0x9c], eax
cmp dword [esp + 0xa4], ebx
jle 0x49d4b0
mov al, byte [esp + 0xd0]
mov esi, ebx
mov edi, ebx
or al, 8
lea ecx, [esp + 0xb4]
mov byte [esp + 0xd0], al
mov eax, dword [esp + 0xa0]
mov edx, dword [eax + esi]
mov edx, dword [edx + 0x10]
call fcn.0048a4cd
mov al, byte [esp + 0xd0]
lea esi, [esi + 0x10]
and al, 0xf7
inc edi
mov byte [esp + 0xd0], al
cmp edi, dword [esp + 0xa4]
jl 0x49d469
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x36], bl
jne 0x49ddb4
test edi, edi
je 0x49dae0
mov eax, dword [esi + 0x48]
mov edx, edi
mov dword [esp + 0x84], eax
mov ecx, esi
inc eax
mov dword [esi + 0x48], eax
call fcn.00499a18
mov edi, dword [esp + 0xc]
mov ecx, edi
push 0xfffffffffffffff0
push eax
push ebx
push dword [esp + 0x98]
mov dword [esp + 0x88], eax
push dword [esp + 0x94]
push 0x2b
pop edx
call fcn.0047ad06
add esp, 0x14
mov dword [esp + 0xac], eax
inc dword [esi + 0x4c]
mov ecx, edi
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x70], eax
inc eax
mov dword [esp + 0x24], eax
inc eax
mov dword [esi + 0x4c], eax
call fcn.0047ada4
inc dword [esi + 0x4c]
mov ecx, edi
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x1c], eax
call fcn.0047ada4
mov ecx, dword [esi + 0x4c]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x50], eax
push ebx
push dword [esp + 0x28]
lea eax, [ecx + 1]
add ecx, dword [edx]
mov dword [esp + 0x84], eax
mov dword [esi + 0x4c], ecx
push ebx
lea eax, [ecx + 1]
mov dword [esp + 0x44], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, edi
push 7
pop edx
mov dword [esi + 0x4c], eax
call fcn.0047ac80
add esp, 0xc
mov ecx, edi
push ebx
push dword [esp + 0x74]
push ebx
push 7
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0x7c]
mov eax, dword [eax]
dec eax
add eax, ecx
push eax
push ecx
push ebx
push 0xa
pop edx
mov ecx, edi
call fcn.0047ac80
add esp, 0xc
push ebx
push dword [esp + 0x54]
push dword [esp + 0x24]
push 2
pop edx
mov ecx, edi
call fcn.0047ac80
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x6c]
add esp, 0xc
mov ecx, esi
push ebx
push ebx
push ebx
push eax
push dword [esp + 0x5c]
call fcn.004a5201
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
je 0x49ddc8
mov eax, dword [esp + 0x60]
mov dword [esp + 0x68], eax
test eax, eax
jne 0x49d603
mov edx, dword [esp + 0x40]
mov dword [esp + 0x6c], ebx
mov eax, dword [edx + 0x30]
mov dword [esp + 0x68], eax
jmp 0x49d802
cmp dword [esp + 0x64], ebx
je 0x49d618
mov edx, dword [esp + 0x40]
test byte [edx + 6], 1
mov edx, str.DISTINCT
je 0x49d61d
mov edx, str.GROUP_BY
mov ecx, esi
call fcn.00499ada
xor eax, eax
inc eax
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax]
mov dword [esp + 0x48], eax
inc eax
mov dword [esp + 0x4c], eax
mov ecx, eax
mov dword [esp + 0x64], eax
mov edx, eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x30], eax
test eax, eax
jle 0x49d66e
mov eax, dword [esp + 0x94]
add eax, 0xc
cmp dword [eax], edx
jl 0x49d661
inc ecx
inc edx
add eax, 0x18
dec dword [esp + 0x30]
jne 0x49d65b
mov dword [esp + 0x64], ecx
mov edx, ecx
mov ecx, esi
call fcn.0048a553
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.00488c7c
mov edx, dword [esp + 0x60]
mov ecx, esi
push ebx
push dword [esp + 0x34]
call fcn.00489a87
mov eax, dword [esp + 0x38]
mov ecx, edi
add eax, dword [esp + 0x50]
push ebx
push eax
push dword [esp + 0x94]
push 0x37
pop edx
call fcn.0047ac80
add esp, 0x14
mov dword [esp + 0x54], ebx
cmp dword [esp + 0x98], ebx
jle 0x49d74f
mov edx, dword [esp + 0x30]
mov eax, ebx
mov ecx, dword [esp + 0x4c]
add edx, ecx
mov dword [esp + 0x60], edx
mov dword [esp + 0x48], ebx
mov edi, dword [esp + 0x94]
cmp dword [edi + eax + 0xc], ecx
mov edi, dword [esp + 0xc]
jl 0x49d732
mov ecx, dword [esp + 0x94]
push ebx
push edx
push dword [ecx + eax + 4]
mov edx, dword [ecx + eax]
push dword [ecx + eax + 8]
mov ecx, esi
call fcn.00488bf5
mov edx, dword [esp + 0x70]
add esp, 0x10
cmp edx, eax
je 0x49d720
push ebx
push edx
push eax
push 0xf
pop edx
mov ecx, edi
call fcn.0047ac80
mov edx, dword [esp + 0x6c]
add esp, 0xc
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
inc ecx
inc edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x60], edx
mov esi, dword [esp + 0x54]
add eax, 0x18
inc esi
mov dword [esp + 0x48], eax
cmp esi, dword [esp + 0x98]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
jl 0x49d6d5
mov ecx, esi
call fcn.0048a503
mov esi, eax
mov ecx, edi
push esi
push dword [esp + 0x68]
push dword [esp + 0x38]
push 0x1f
pop edx
call fcn.0047ac80
add esp, 0xc
mov ecx, edi
push ebx
push esi
push dword [esp + 0x8c]
push 0x60
pop edx
call fcn.0047ac80
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0x3c]
mov ecx, esi
call fcn.0048a51f
push dword [esp + 0x64]
mov edx, dword [esp + 0x34]
call fcn.0048a57e
pop ecx
mov ecx, dword [esp + 0x28]
call fcn.004a5ade
mov edx, dword [esi + 0x48]
mov ecx, esi
mov dword [esp + 0x54], edx
mov dword [esp + 0x88], edx
lea eax, [edx + 1]
mov dword [esi + 0x48], eax
call fcn.0048a503
push dword [esp + 0x64]
mov ecx, edi
mov dword [esp + 0x4c], eax
push eax
push edx
push 0x2c
pop edx
call fcn.0047ac80
add esp, 0xc
mov ecx, edi
push ebx
push dword [esp + 0x30]
push dword [esp + 0x8c]
push 0x46
pop edx
call fcn.0047ac80
add esp, 0xc
mov byte [esp + 0x81], 1
mov ecx, esi
call fcn.00488c7c
mov eax, dword [edi + 0x1c]
mov ecx, esi
mov dword [esp + 0x64], eax
call fcn.00488c7c
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x49d835
push ebx
push dword [esp + 0x4c]
mov ecx, edi
push dword [esp + 0x8c]
push 0x3e
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x78]
add esp, 0xc
mov edx, dword [esp + 0x68]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
cmp dword [edx], ebx
jle 0x49d8ae
mov ebx, dword [esp + 0x54]
test eax, eax
mov eax, dword [esp + 0x38]
je 0x49d87b
add eax, ecx
push eax
push ecx
push ebx
push 0x1d
pop edx
mov ecx, edi
call fcn.0047ac80
mov ecx, dword [esp + 0x58]
add esp, 0xc
test ecx, ecx
jne 0x49d89b
mov edx, dword [edi + 4]
test edx, edx
je 0x49d89b
imul eax, dword [edi + 0x1c], 0x14
mov byte [eax + edx - 0x11], 0x20
jmp 0x49d89b
add eax, ecx
mov byte [esp + 0x80], 1
mov edx, dword [edx + 8]
push eax
imul eax, ecx, 0x14
mov ecx, esi
mov edx, dword [eax + edx]
call fcn.004898d9
pop ecx
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x68]
inc ecx
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x4c], ecx
cmp ecx, dword [edx]
jl 0x49d847
xor ebx, ebx
push 0xfffffffffffffffa
push dword [esp + 0x7c]
mov ecx, edi
push dword [edx]
push dword [esp + 0x44]
push dword [esp + 0x8c]
push 0x18
pop edx
call fcn.0047ad06
mov eax, dword [edi + 0x1c]
add esp, 0x14
mov dword [esp + 0x78], eax
mov ecx, edi
inc eax
push eax
push ebx
push eax
push 0x19
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x38]
mov ecx, esi
push dword [eax]
push dword [esp + 0x80]
call fcn.00488ca9
mov eax, dword [esp + 0x2c]
mov ecx, edi
push ebx
push dword [esp + 0x80]
inc eax
push eax
push 2
pop edx
call fcn.0047ac80
add esp, 0x14
mov ecx, edi
push ebx
push dword [esp + 0x30]
push dword [esp + 0x2c]
push 0x78
pop edx
call fcn.0047ac80
add esp, 0xc
mov ecx, edi
push ebx
push dword [esp + 0x54]
push dword [esp + 0x24]
push 2
pop edx
call fcn.0047ac80
mov edx, dword [esp + 0x84]
add esp, 0xc
test edx, edx
js 0x49d95b
push dword [edi + 0x1c]
mov ecx, edi
call fcn.0047afc8
pop ecx
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.0049c8fe
push ebx
push dword [esp + 0x74]
mov ecx, edi
push 1
push 7
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x78]
add esp, 0xc
test eax, eax
je 0x49d9a0
push ebx
push dword [esp + 0x68]
mov ecx, edi
push dword [esp + 0x8c]
push 0x51
pop edx
call fcn.0047ac80
add esp, 0xc
jmp 0x49d9b7
mov ecx, dword [esp + 0x28]
call fcn.004a5ade
mov edx, dword [esp + 0xac]
mov ecx, edi
call fcn.0047b151
mov esi, dword [esp + 0x24]
mov ecx, edi
push ebx
push dword [esp + 0x78]
lea eax, [esi + 1]
push eax
push 2
pop edx
call fcn.0047ac80
add esp, 0xc
xor edx, edx
inc edx
mov ecx, edi
push ebx
push dword [esp + 0x30]
push ebx
call fcn.0047ac80
mov edi, dword [edi + 0x1c]
add esp, 0xc
push ebx
push esi
mov esi, dword [esp + 0x14]
mov ecx, esi
push 1
push 7
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x30]
add esp, 0xc
inc eax
mov ecx, esi
push ebx
push ebx
push eax
push 3
pop edx
call fcn.0047ac80
mov edx, dword [esp + 0x80]
add esp, 0xc
mov ecx, esi
call fcn.0047ade0
mov esi, dword [esi + 0x1c]
push ebx
lea eax, [esi + 2]
push eax
push dword [esp + 0x78]
push 0x78
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0xc]
inc eax
push ebx
push ebx
push eax
push 3
pop edx
call fcn.0047ac80
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x8c]
add esp, 0xc
call fcn.0049c8ad
mov edx, dword [esp + 0x5c]
inc esi
mov ecx, dword [esp + 0x3c]
push 8
push esi
call fcn.00489dcb
push edi
mov edi, dword [esp + 0x4c]
mov edx, edi
push esi
push dword [esp + 0x68]
mov esi, dword [esp + 0x50]
mov ecx, esi
push dword [esp + 0x58]
push dword [esp + 0x4c]
push ebx
push ebx
push dword [edi]
call fcn.004996c8
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x34]
inc eax
push ebx
push ebx
push eax
push 3
pop edx
call fcn.0047ac80
mov edx, dword [esp + 0x84]
add esp, 0x34
mov ecx, dword [esp + 0xc]
call fcn.0047ade0
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.0049c7d3
mov ecx, dword [esp + 0xc]
push ebx
push ebx
push dword [esp + 0x24]
push 3
pop edx
call fcn.0047ac80
add esp, 0xc
jmp 0x49dd4b
mov edi, dword [esp + 0x40]
lea edx, [esp + 0x80]
mov ecx, edi
mov dword [esp + 0x70], ebx
call fcn.0049c0dd
mov dword [esp + 0x38], eax
test eax, eax
je 0x49dc20
mov edx, dword [eax + 0x44]
mov ecx, dword [esi]
call fcn.00498a12
mov edx, dword [esp + 0x38]
mov ecx, eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x1c], eax
inc eax
mov dword [esi + 0x48], eax
mov eax, dword [edx + 0x14]
mov edx, ecx
mov dword [esp + 0x28], ecx
mov ecx, esi
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], eax
call fcn.0048fc9e
mov eax, dword [esp + 0x38]
mov ecx, esi
mov edx, dword [esp + 0x28]
push dword [eax]
push ebx
push dword [eax + 0x14]
call fcn.0048c6b3
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, dword [edx + 0x10]
test ecx, ecx
je 0x49dba4
mov edi, ebx
cmp byte [ecx + 0x2e], bl
jne 0x49db71
test edi, edi
je 0x49db6f
mov eax, dword [ecx + 0x24]
cmp eax, dword [edi + 0x24]
jge 0x49db71
mov edi, ecx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x49db5e
mov dword [esp + 0x50], edi
test edi, edi
mov edi, dword [esp + 0x40]
je 0x49dba4
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x24]
cmp eax, dword [edx + 8]
jge 0x49dba4
mov eax, dword [ecx + 0x28]
mov edx, ecx
mov ecx, esi
mov dword [esp + 0x48], eax
call fcn.00490032
mov dword [esp + 0x54], eax
push dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
push dword [esp + 0x4c]
push dword [esp + 0x24]
push 0x27
pop edx
call fcn.0047ac80
mov eax, dword [esp + 0x60]
add esp, 0xc
test eax, eax
je 0x49dbd8
mov ecx, dword [esp + 0xc]
or edx, 0xffffffff
push 0xfffffffffffffff0
push eax
call fcn.0047b17d
pop ecx
pop ecx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc]
push ebx
push dword [eax + 8]
push dword [esp + 0x24]
push 0x20
pop edx
call fcn.0047ac80
mov ecx, dword [esp + 0x18]
add esp, 0xc
push ebx
push ebx
push dword [esp + 0x24]
push 0x2d
pop edx
call fcn.0047ac80
mov edx, dword [esp + 0x44]
add esp, 0xc
mov ecx, esi
push dword [esp + 0x50]
call fcn.0049cb0d
pop ecx
jmp 0x49dd09
mov ecx, edi
mov dword [esp + 0x1c], ebx
call fcn.0049c078
mov byte [esp + 0x17], al
test al, al
je 0x49dc75
mov eax, dword [edi]
mov ecx, dword [esp + 0x20]
push ebx
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
call fcn.00487891
mov edx, eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x20], edx
pop ecx
test edx, edx
je 0x49dc75
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x36], bl
jne 0x49dc75
mov eax, dword [edx + 8]
cmp byte [esp + 0x17], 1
setne cl
mov byte [eax + 0xc], cl
mov eax, dword [edx + 8]
mov eax, dword [eax]
mov byte [eax], 0x98
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.0049c7d3
mov al, byte [esp + 0x17]
mov ecx, esi
mov edx, dword [esp + 0x10]
push ebx
movzx eax, al
push eax
push ebx
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x5c]
call fcn.004a5201
add esp, 0x14
mov dword [esp + 0x28], eax
test eax, eax
jne 0x49dcc0
mov ebx, dword [esp + 0x20]
mov ecx, ebx
mov edx, dword [esp + 0x70]
call fcn.00487d7c
jmp 0x49ddcc
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.0049c8fe
cmp dword [esp + 0x1c], ebx
jne 0x49dcf2
cmp byte [esp + 0x17], bl
je 0x49dcf2
mov eax, dword [esp + 0x28]
xor edx, edx
mov ecx, dword [esp + 0xc]
inc edx
push ebx
push dword [eax + 0x18]
push ebx
call fcn.0047ac80
add esp, 0xc
mov ecx, dword [esp + 0x28]
call fcn.004a5ade
lea edx, [esp + 0x80]
mov ecx, esi
call fcn.0049c8ad
mov edx, dword [esp + 0x5c]
mov ecx, esi
push 8
push dword [esp + 0x30]
mov dword [esp + 0x3c], ebx
call fcn.00489dcb
mov eax, dword [esp + 0x34]
mov edx, edi
push eax
push eax
push dword [esp + 0x68]
mov ecx, esi
push 0xffffffffffffffff
push ebx
push ebx
push ebx
push dword [edi]
call fcn.004996c8
mov edx, dword [esp + 0x98]
add esp, 0x28
mov ecx, dword [esp + 0x20]
call fcn.00487d7c
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
call fcn.0047ade0
cmp dword [esp + 0x44], 0
jl 0x49dd6b
mov edx, str.DISTINCT
mov ecx, esi
call fcn.00499ada
cmp dword [esp + 0x34], 0
je 0x49dd98
mov edx, str.ORDER_BY
mov ecx, esi
call fcn.00499ada
mov eax, dword [esp + 0x18]
mov edx, edi
push dword [esp + 0x58]
mov ecx, esi
push dword [eax]
push dword [esp + 0x14]
call fcn.00499b8f
add esp, 0xc
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc]
call fcn.0047ade0
mov edx, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x6c], edx
jmp 0x49ddcf
mov ebx, eax
jmp 0x49ddcc
mov ebx, dword [esp + 0x20]
xor edx, edx
inc edx
jmp 0x49ddd7
xor edx, edx
mov ebx, eax
inc edx
jmp 0x49ddd3
mov ebx, dword [esp + 0x20]
xor edx, edx
inc edx
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0xa8]
mov dword [esi + 0x1e4], edi
test edx, edx
jne 0x49ddfc
mov edx, dword [esp + 0x58]
cmp byte [edx], 5
jne 0x49ddfc
push ecx
mov edx, eax
mov ecx, esi
call fcn.0049a079
pop ecx
mov edx, dword [esp + 0x94]
mov ecx, ebx
call fcn.00466cd8
mov edx, dword [esp + 0xa0]
mov ecx, ebx
call fcn.00466cd8
mov eax, dword [esp + 0x6c]
jmp 0x49de20
mov eax, ecx
mov ecx, dword [esp + 0xe4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0053bd6c
mov esp, ebp
pop ebp
ret