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

Disassembly:
sub esp, 0xe0
mov eax, dword [0x517490]
xor eax, esp
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xec]
xor ecx, ecx
push ebx
mov ebx, dword [esp + 0xe8]
inc ecx
mov dword [esp + 0x10], eax
push ebp
push esi
mov eax, dword [ebx + 0x228]
mov esi, dword [esp + 0xf4]
mov dword [esp + 0x74], eax
mov eax, dword [ebx + 0x22c]
mov dword [ebx + 0x228], eax
inc eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x5c], ecx
mov dword [ebx + 0x22c], eax
push edi
mov edi, dword [ebx]
mov dword [esp + 0x30], edi
test esi, esi
je 0x4a5cc9
cmp byte [edi + 0x1e], 0
jne 0x4a5cc9
xor eax, eax
cmp dword [ebx + 0x40], eax
jne 0x4a5cc9
push eax
push eax
push eax
push 0x15
push ebx
call fcn.004934d6
add esp, 0x14
test eax, eax
je 0x4a4c71
xor ecx, ecx
lea eax, [ecx + 1]
jmp 0x4a5ccb
push 0x30
xor ebp, ebp
lea eax, [esp + 0x80]
push ebp
push eax
call fcn.004bea90
mov eax, dword [esp + 0x28]
add esp, 0xc
cmp byte [eax], 4
ja 0x4a4ca6
push dword [esi + 0x18]
push edi
call fcn.0049abee
pop ecx
mov eax, 0xfffe
mov dword [esi + 0x18], ebp
and word [esi + 6], ax
pop ecx
push ebp
push esi
push ebx
call fcn.004a5eb4
mov eax, dword [esi + 0x18]
add esp, 0xc
mov edx, dword [esi]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
cmp dword [ebx + 0x40], ebp
jne 0x4a5c6b
cmp byte [edi + 0x1e], 0
jne 0x4a5c6b
movzx eax, word [esi + 6]
shr eax, 2
and eax, 1
push ebx
mov dword [esp + 0x58], eax
call fcn.0049d3e9
mov ebp, dword [esp + 0x20]
mov edi, eax
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x28], edi
pop ecx
test edi, edi
je 0x4a5c7c
cmp dword [edx], 1
movzx eax, byte [ebp]
jle 0x4a4d2c
cmp eax, 6
je 0x4a4d1a
cmp eax, 7
jne 0x4a4d2c
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
push ebx
call fcn.00498e9a
pop ecx
pop ecx
jmp 0x4a5c78
xor ecx, ecx
mov ebp, ecx
mov dword [esp + 0x44], ecx
cmp dword [esi + 0x1c], ecx
jne 0x4a4f35
mov edx, dword [esp + 0x10]
movsx eax, word [edx]
cmp ebp, eax
jge 0x4a4f35
mov eax, ebp
shl eax, 6
mov dword [esp + 0x28], eax
mov edx, dword [eax + edx + 0x18]
test edx, edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
je 0x4a4f27
mov edx, dword [eax + edx + 0x1c]
test edx, edx
je 0x4a4d90
mov ecx, dword [esp + 0x10]
push edx
push dword [eax + ecx + 0x20]
push 2
push edi
call fcn.004a8e4a
mov edx, dword [esp + 0x20]
add esp, 0x10
xor ecx, ecx
jmp 0x4a4f27
lea eax, [esp + 0x34]
mov dword [esp + 0x34], ecx
push eax
push esi
call fcn.0048941b
mov eax, dword [esp + 0x3c]
add dword [ebx + 0x21c], eax
mov eax, dword [esp + 0x34]
movzx ebp, word [eax + 6]
mov eax, dword [esp + 0x4c]
shr ebp, 2
and ebp, 1
push ebp
push dword [esp + 0x60]
push eax
push esi
push ebx
call fcn.00487842
add esp, 0x1c
test eax, eax
je 0x4a4dec
test ebp, ebp
je 0x4a4de0
or word [esi + 6], 4
mov dword [esp + 0x54], 1
or eax, 0xffffffff
mov dword [esp + 0x44], eax
jmp 0x4a4edb
mov eax, dword [ebx + 0x48]
xor ebp, ebp
mov ecx, dword [esp + 0x28]
inc eax
mov edx, dword [esp + 0x10]
push eax
push ebp
push 7
mov dword [ebx + 0x48], eax
push edi
mov dword [esp + 0x44], ebp
mov dword [ecx + edx + 0x20], eax
call fcn.004a8e4a
mov ecx, dword [esp + 0x38]
add esp, 0x10
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
inc eax
cmp byte [ecx + edx + 0x26], 0
mov dword [ecx + edx + 0x1c], eax
jne 0x4a4e4b
cmp dword [ebx + 0x1ac], ebp
jne 0x4a4e4b
inc dword [ebx + 0x48]
push dword [ebx + 0x48]
push 0x1a
push edi
call fcn.004a8e31
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x28]
mov eax, dword [edx + ebp + 0x28]
mov dword [esp + 0xe0], eax
xor eax, eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov al, byte [ebx + 0x22c]
mov word [esp + 0xdc], 9
mov byte [edx + ebp + 0x27], al
lea eax, [esp + 0xdc]
push eax
push dword [esp + 0x30]
push ebx
call fcn.004a4bd9
mov eax, dword [esp + 0x38]
add esp, 0xc
movsd xmm0, qword [eax + 0x48]
call fcn.004bfc71
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + ebp + 0x14]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4a4ebd
push eax
push edi
call fcn.004aee60
pop ecx
pop ecx
mov eax, dword [esp + 0x10]
push dword [eax + ebp + 0x20]
push 3
push edi
call fcn.004a8e31
push eax
push dword [esp + 0x48]
push edi
call fcn.004a9072
add esp, 0x18
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x4a5c64
lea eax, [esp + 0x34]
xor ebp, ebp
push eax
push esi
mov dword [esp + 0x3c], ebp
call fcn.0048941b
mov eax, dword [esp + 0x3c]
sub dword [ebx + 0x21c], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 8]
mov ebp, dword [esp + 0x4c]
pop ecx
pop ecx
xor ecx, ecx
mov dword [esp + 0x10], edx
cmp byte [eax], 4
jbe 0x4a4f27
mov eax, dword [esi + 0x18]
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
inc ebp
mov dword [esp + 0x44], ebp
cmp dword [esi + 0x1c], ecx
je 0x4a4d41
mov edx, dword [esi + 0x14]
mov eax, dword [esi]
mov dword [esp + 0x34], edx
movzx edx, word [esi + 6]
mov dword [esp + 0x18], eax
and edx, 1
mov eax, dword [esi + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x48], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x6c], edx
cmp dword [esi + 0x1c], ecx
je 0x4a4fc5
cmp dword [esi + 0x24], ecx
jne 0x4a4fa5
mov edx, ecx
mov eax, esi
mov dword [eax + 0x20], ecx
inc edx
mov dword [eax + 0x24], esi
mov ecx, eax
mov eax, dword [eax + 0x1c]
test eax, eax
jne 0x4a4f6d
mov edi, dword [esp + 0x30]
cmp dword [edi + 0x58], eax
je 0x4a4fa5
cmp edx, dword [edi + 0x58]
jle 0x4a4fa5
push str.too_many_terms_in_compound_SELECT
push ebx
call fcn.00498e9a
pop ecx
pop ecx
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
jmp 0x4a5c80
push dword [esp + 0x1c]
push esi
push ebx
call fcn.0048b402
mov esi, dword [esp + 0x84]
add esp, 0xc
mov dword [ebx + 0x228], esi
jmp 0x4a5ccb
mov ebp, dword [esp + 0x40]
push ebp
push eax
call fcn.0049ab8d
pop ecx
pop ecx
test eax, eax
jne 0x4a4fec
mov eax, dword [esp + 0x30]
push 0
test byte [eax + 0xc], 0x20
pop eax
cmove ebp, eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebp
mov al, byte [esi + 6]
xor ecx, ecx
and al, 5
inc ecx
cmp al, cl
jne 0x4a5037
push dword [esi]
push ebp
call fcn.0049ab8d
pop ecx
xor ebp, ebp
pop ecx
test eax, eax
jne 0x4a5039
push ebp
push dword [esi]
mov eax, 0xfffe
push dword [esp + 0x38]
and word [esi + 6], ax
call fcn.0049ac44
mov dword [esp + 0x54], eax
add esp, 0xc
mov dword [esi + 0x10], eax
mov dword [esp + 0x2c], eax
mov eax, ebp
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
jmp 0x4a503d
xor ebp, ebp
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4a5078
push eax
push ebx
call fcn.0048a280
mov edx, dword [esp + 0x48]
mov ecx, eax
mov eax, dword [ebx + 0x44]
push 0xfffffffffffffff0
push ecx
mov dword [edx + 8], eax
inc dword [ebx + 0x44]
mov eax, dword [edx]
push ebp
add eax, 2
push eax
push dword [edx + 8]
push 0x2a
push edi
call fcn.004a8eb6
add esp, 0x24
mov dword [esp + 0x28], eax
mov dword [esi + 0x40], eax
jmp 0x4a507d
or dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x1c]
cmp byte [eax], 9
jne 0x4a509a
mov edx, dword [esp + 0x18]
push dword [edx]
push dword [eax + 4]
push 0x2a
push edi
call fcn.004a8e4a
add esp, 0x10
push edi
call fcn.004af1c5
movsd xmm0, qword [0x4e8b50]
push eax
push esi
push ebx
mov dword [esp + 0xc0], eax
movsd qword [esi + 0x48], xmm0
call fcn.00483d4d
add esp, 0x10
cmp dword [esi + 0x30], ebp
jne 0x4a50dd
mov eax, dword [esp + 0x28]
test eax, eax
js 0x4a50dd
push eax
push edi
call fcn.004ae94d
pop ecx
pop ecx
mov byte [eax], 0x2b
or word [esi + 6], 0x40
test byte [esi + 6], 1
je 0x4a5118
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x44], eax
inc eax
mov dword [ebx + 0x44], eax
push dword [esi]
push ebx
call fcn.0048a280
push 0xfffffffffffffff0
push eax
push ebp
push ebp
push dword [esp + 0x5c]
push 0x2a
push edi
call fcn.004a8eb6
push 0x10
push edi
mov dword [esp + 0x4c], eax
call fcn.004a920d
add esp, 0x2c
jmp 0x4a5122
or dword [esp + 0x20], 0xffffffff
or dword [esp + 0x44], 0xffffffff
cmp dword [esp + 0x54], 0
mov edx, dword [esp + 0x48]
jne 0x4a531d
test edx, edx
jne 0x4a531d
cmp dword [esp + 0x6c], edx
je 0x4a5143
mov eax, dword [esi]
jmp 0x4a5145
mov eax, ebp
push ebp
push eax
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x5c]
push dword [esp + 0x20]
push ebx
call fcn.004b2266
add esp, 0x18
mov dword [esp + 0x24], eax
test eax, eax
je 0x4a5c74
movsd xmm1, qword [eax + 0x30]
movsd xmm0, qword [esi + 0x48]
comisd xmm0, xmm1
jbe 0x4a517e
movsd qword [esi + 0x48], xmm1
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], eax
test ecx, ecx
js 0x4a519f
test eax, eax
jne 0x4a519f
push ecx
push edi
call fcn.004a9225
or dword [esi + 0x40], 0xffffffff
pop ecx
pop ecx
mov eax, dword [esp + 0x24]
mov cl, byte [eax + 8]
mov byte [esp + 0x17], cl
test cl, cl
je 0x4a52ed
push dword [esp + 0x20]
push edi
call fcn.004ae94d
or dword [esp + 0x4c], 0xffffffff
mov edx, eax
cmp byte [esp + 0x1f], 2
pop ecx
pop ecx
jne 0x4a52e6
inc dword [ebx + 0x48]
mov ecx, dword [ebx + 0x48]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
lea ebp, [ecx + 1]
mov eax, dword [eax]
lea esi, [eax + ebp]
lea eax, [ecx + eax*2]
mov dword [esp + 0x5c], esi
mov esi, dword [esp + 0x18]
mov dword [ebx + 0x48], eax
xor eax, eax
inc eax
mov byte [edx], 7
push eax
push ebp
push esi
push ebx
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
call fcn.004994ee
mov eax, dword [esi]
mov ecx, dword [esp + 0x38]
add eax, 3
add eax, dword [edi + 0x1c]
mov dword [esp + 0x5c], eax
dec eax
push eax
push ecx
push 0x1b
push edi
call fcn.004a8e4a
xor eax, eax
add esp, 0x20
cmp dword [esi], eax
mov esi, dword [esp + 0x58]
mov dword [esp + 0x34], eax
jle 0x4a52a7
mov ecx, eax
mov eax, dword [esp + 0x5c]
sub eax, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
push dword [ecx + eax]
push ebx
call fcn.0049a350
mov esi, eax
mov eax, dword [esp + 0x70]
add eax, ebp
push eax
push dword [esp + 0x58]
push ebp
push 0x4b
push edi
call fcn.004a8e65
push 0xfffffffffffffffc
push esi
push 0xffffffffffffffff
push edi
call fcn.004a90c6
push 0x80
push edi
call fcn.004a920d
mov eax, dword [esp + 0x68]
add esp, 0x34
mov ecx, dword [esp + 0x20]
inc eax
mov edx, dword [esp + 0x18]
add ecx, 0x14
inc ebp
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], ecx
cmp eax, dword [edx]
jl 0x4a5245
mov esi, dword [esp + 0x58]
xor eax, eax
mov ecx, dword [esp + 0x24]
push dword [ecx + 0x14]
push eax
push 1
push edi
call fcn.004a8e4a
push dword [esp + 0x38]
xor ebp, ebp
push ebp
push 7
push edi
call fcn.004a8e4a
mov eax, dword [esp + 0x38]
push dword [eax]
mov eax, dword [esp + 0x4c]
push dword [esp + 0x80]
inc eax
push eax
push 0xd
push edi
call fcn.004a8e65
add esp, 0x34
jmp 0x4a52e9
mov byte [edx], 0x95
mov eax, dword [esp + 0x24]
push dword [eax + 0x18]
push dword [eax + 0x14]
push dword [esp + 0x24]
push dword [esp + 0x50]
push dword [esp + 0x50]
push ebp
push ebp
push dword [esp + 0x34]
push esi
push ebx
call fcn.004918cd
push dword [esp + 0x4c]
call fcn.004b2ba5
add esp, 0x2c
jmp 0x4a5c06
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x64], ebp
test edx, edx
je 0x4a537b
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax]
test eax, eax
jle 0x4a5348
add ecx, 0x10
xor edi, edi
dec eax
mov word [ecx], di
lea ecx, [ecx + 0x14]
test eax, eax
jg 0x4a5337
mov edi, dword [esp + 0x24]
mov eax, dword [edx]
mov ecx, dword [edx + 0xc]
test eax, eax
jle 0x4a5361
add ecx, 0x10
xor edx, edx
dec eax
mov word [ecx], dx
lea ecx, [ecx + 0x14]
test eax, eax
jg 0x4a5354
movsd xmm0, qword [esi + 0x48]
movsd xmm1, qword [0x4e8af8]
comisd xmm0, xmm1
jbe 0x4a5388
movsd qword [esi + 0x48], xmm1
jmp 0x4a5388
movsd xmm0, qword [0x4e8aa8]
movsd qword [esi + 0x48], xmm0
push edi
call fcn.004af1c5
pop ecx
mov dword [esp + 0x54], eax
lea edi, [esp + 0xb8]
xor eax, eax
push 9
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xd4], eax
test edi, edi
je 0x4a53d2
mov eax, dword [edi]
inc eax
mov dword [esp + 0x8c], eax
jmp 0x4a53d9
mov dword [esp + 0x8c], ebp
push dword [esp + 0x18]
lea eax, [esp + 0xbc]
mov dword [esp + 0x8c], edi
push eax
call fcn.0049906b
push dword [esp + 0x48]
lea eax, [esp + 0xc4]
push eax
call fcn.0049906b
mov eax, dword [esp + 0x44]
add esp, 0x10
test eax, eax
je 0x4a541d
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.00499098
pop ecx
pop ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 0x9c], eax
xor eax, eax
cmp dword [esp + 0xa4], eax
jle 0x4a5469
mov ebp, eax
mov esi, eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + ebp]
push dword [eax + 0x10]
lea eax, [esp + 0xbc]
push eax
call fcn.0049906b
inc esi
lea ebp, [ebp + 0x10]
pop ecx
pop ecx
cmp esi, dword [esp + 0xa4]
jl 0x4a543a
mov esi, dword [esp + 0x58]
xor eax, eax
mov ecx, dword [esp + 0x30]
cmp byte [ecx + 0x1e], 0
jne 0x4a5c74
test edi, edi
je 0x4a59ac
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x80], eax
inc eax
push edi
push ebx
mov dword [ebx + 0x44], eax
call fcn.0048a280
mov edi, dword [esp + 0x2c]
xor ebp, ebp
push 0xfffffffffffffff0
push eax
push ebp
push dword [esp + 0xa0]
mov dword [esp + 0xc4], eax
push dword [esp + 0x98]
push 0x2b
push edi
call fcn.004a8eb6
inc dword [ebx + 0x48]
mov dword [esp + 0xd8], eax
mov eax, dword [ebx + 0x48]
mov dword [esp + 0x94], eax
inc eax
mov dword [esp + 0x60], eax
inc eax
push edi
mov dword [ebx + 0x48], eax
call fcn.004af1c5
inc dword [ebx + 0x48]
mov dword [esp + 0x9c], eax
mov eax, dword [ebx + 0x48]
push edi
mov dword [esp + 0x4c], eax
call fcn.004af1c5
mov ecx, dword [ebx + 0x48]
mov edx, dword [esp + 0x74]
push dword [esp + 0x68]
mov dword [esp + 0x8c], eax
lea eax, [ecx + 1]
add ecx, dword [edx]
mov dword [esp + 0x98], eax
mov dword [ebx + 0x48], ecx
push ebp
lea eax, [ecx + 1]
mov dword [esp + 0x5c], eax
mov eax, dword [edx]
add eax, ecx
push 7
push edi
mov dword [ebx + 0x48], eax
call fcn.004a8e4a
push dword [esp + 0xac]
push ebp
push 7
push edi
call fcn.004a8e4a
add esp, 0x4c
push dword [esp + 0x5c]
push dword [esp + 0x24]
push 2
push edi
call fcn.004a8e4a
push ebp
push ebp
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x6c]
push dword [esp + 0x30]
push ebx
call fcn.004b2266
add esp, 0x28
mov dword [esp + 0x38], eax
test eax, eax
je 0x4a5c74
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4a5590
mov eax, dword [esi + 0x10]
mov dword [esp + 0x48], eax
mov dword [esp + 0x60], ebp
jmp 0x4a5743
cmp dword [esp + 0x6c], ebp
je 0x4a55a1
test byte [esi + 6], 1
mov eax, str.DISTINCT
je 0x4a55a6
mov eax, str.GROUP_BY
push eax
push ebx
call fcn.0048568c
mov esi, dword [esp + 0x34]
pop ecx
pop ecx
mov dword [esp + 0x60], 1
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
inc eax
mov dword [esp + 0x6c], eax
mov ecx, eax
mov dword [esp + 0x50], eax
mov edx, eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x2c], eax
test eax, eax
jle 0x4a55fa
mov eax, dword [esp + 0x90]
add eax, 0xc
cmp dword [eax], edx
jl 0x4a55ed
inc ecx
inc edx
add eax, 0x18
dec dword [esp + 0x2c]
jne 0x4a55e7
mov dword [esp + 0x50], ecx
push ecx
push ebx
call fcn.0049cbc4
push ebx
mov dword [esp + 0x38], eax
call fcn.00499350
push ebp
push dword [esp + 0x3c]
push esi
push ebx
call fcn.004994ee
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x48]
add eax, esi
push eax
push dword [esp + 0xa0]
push 0x37
push edi
call fcn.004a8e4a
mov edx, dword [esp + 0xc0]
add esp, 0x2c
mov dword [esp + 0x64], ebp
test edx, edx
jle 0x4a56a8
mov ecx, dword [esp + 0x6c]
lea eax, [esi + ecx]
mov esi, ebp
mov dword [esp + 0x4c], eax
mov ebp, eax
mov eax, dword [esp + 0x90]
cmp dword [eax + esi + 0xc], ecx
jl 0x4a5696
push ebp
push dword [eax + esi + 4]
push dword [eax + esi + 8]
push dword [eax + esi]
push ebx
call fcn.00499548
add esp, 0x14
cmp ebp, eax
je 0x4a5685
push ebp
push eax
push 0xf
push edi
call fcn.004a8e4a
add esp, 0x10
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x94]
inc ecx
mov dword [esp + 0x6c], ecx
inc ebp
mov eax, dword [esp + 0x64]
add esi, 0x18
inc eax
mov dword [esp + 0x64], eax
cmp eax, edx
jl 0x4a5652
xor ebp, ebp
push ebx
call fcn.0049cbf5
mov esi, eax
push esi
push dword [esp + 0x58]
push dword [esp + 0x38]
push 0x1f
push edi
call fcn.004a8e65
push esi
push dword [esp + 0x9c]
push 0x60
push edi
call fcn.004a8e4a
push esi
push ebx
call fcn.004a3c03
mov esi, dword [esp + 0x80]
push esi
push dword [esp + 0x60]
push ebx
call fcn.004a3bda
push dword [esp + 0x74]
call fcn.004b2ba5
mov edx, dword [ebx + 0x44]
add esp, 0x40
mov dword [esp + 0x4c], edx
mov dword [esp + 0x84], edx
lea eax, [edx + 1]
push ebx
mov dword [ebx + 0x44], eax
call fcn.0049cbf5
push esi
push eax
push edx
push 0x2c
push edi
mov dword [esp + 0x7c], eax
call fcn.004a8e65
push dword [esp + 0x6c]
push dword [esp + 0x9c]
push 0x46
push edi
call fcn.004a8e4a
push ebx
mov byte [esp + 0xa9], 1
call fcn.00499350
add esp, 0x2c
mov eax, dword [edi + 0x1c]
push ebx
mov dword [esp + 0x54], eax
call fcn.00499350
pop ecx
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4a5773
push dword [esp + 0x64]
push dword [esp + 0x84]
push 0x3e
push edi
call fcn.004a8e4a
mov ecx, dword [esp + 0x70]
add esp, 0x10
mov eax, dword [esp + 0x48]
mov esi, ebp
cmp dword [eax], ebp
jle 0x4a57d4
mov ebp, eax
mov eax, dword [esp + 0x28]
add eax, esi
push eax
test ecx, ecx
je 0x4a57aa
push esi
push dword [esp + 0x54]
push 0x1d
push edi
call fcn.004a8e65
add esp, 0x14
test esi, esi
jne 0x4a57c4
push 0x20
push edi
call fcn.004a920d
pop ecx
pop ecx
jmp 0x4a57c4
imul ecx, esi, 0x14
mov byte [esp + 0x80], 1
mov eax, dword [ebp + 0xc]
push dword [ecx + eax]
push ebx
call fcn.00499494
add esp, 0xc
mov ecx, dword [esp + 0x60]
inc esi
cmp esi, dword [ebp]
jl 0x4a577f
mov eax, dword [esp + 0x48]
xor ebp, ebp
push 0xfffffffffffffffa
push dword [esp + 0xb0]
push dword [eax]
push dword [esp + 0x34]
push dword [esp + 0x78]
push 0x18
push edi
call fcn.004a8eb6
mov esi, dword [edi + 0x1c]
lea eax, [esi + 1]
push eax
push ebp
push eax
push 0x19
push edi
call fcn.004a8e65
mov eax, dword [esp + 0x78]
push dword [eax]
push dword [esp + 0x9c]
push dword [esp + 0x60]
push ebx
call fcn.00499829
mov eax, dword [esp + 0x7c]
add esp, 0x40
inc eax
push dword [esp + 0x74]
push eax
push 2
push edi
call fcn.004a8e4a
push dword [esp + 0x64]
push dword [esp + 0x50]
push 0x78
push edi
call fcn.004a8e4a
push dword [esp + 0x7c]
push dword [esp + 0x44]
push 2
push edi
call fcn.004a8e4a
push esi
push edi
call fcn.004aee60
lea eax, [esp + 0xb4]
push eax
push ebx
call fcn.004b3ee7
add esp, 0x40
push dword [esp + 0x70]
push 1
push 7
push edi
call fcn.004a8e4a
add esp, 0x10
cmp dword [esp + 0x60], 0
je 0x4a5894
push dword [esp + 0x50]
push dword [esp + 0x84]
push 0x51
push edi
call fcn.004a8e4a
add esp, 0x10
jmp 0x4a58ad
push dword [esp + 0x38]
call fcn.004b2ba5
push dword [esp + 0xb8]
push edi
call fcn.004a9225
add esp, 0xc
mov esi, dword [esp + 0x3c]
push dword [esp + 0x74]
lea eax, [esi + 1]
push eax
push 2
push edi
call fcn.004a8e4a
push dword [esp + 0x64]
push ebp
push 1
push edi
call fcn.004a8e4a
mov edi, dword [edi + 0x1c]
push esi
mov esi, dword [esp + 0x48]
push 1
push 7
push esi
call fcn.004a8e4a
mov eax, dword [esp + 0x6c]
inc eax
push eax
push 3
push esi
call fcn.004a8e31
push dword [esp + 0xb0]
push esi
call fcn.004b05c5
mov esi, dword [esi + 0x1c]
add esp, 0x44
lea eax, [esi + 2]
push eax
push dword [esp + 0x74]
push 0x78
push dword [esp + 0x30]
call fcn.004a8e4a
mov eax, dword [esp + 0x4c]
inc eax
push eax
push 3
push dword [esp + 0x3c]
call fcn.004a8e31
lea eax, [esp + 0x98]
push eax
push ebx
call fcn.004869cf
mov edx, dword [esp + 0x58]
inc esi
push 8
push esi
push edx
push ebx
call fcn.0049a60e
push edi
push esi
push dword [esp + 0x58]
mov esi, dword [esp + 0x98]
push dword [esp + 0x84]
push dword [esp + 0x84]
push ebp
push ebp
push dword [esi]
push esi
push ebx
call fcn.004918cd
mov eax, dword [esp + 0x98]
add esp, 0x5c
mov edi, dword [esp + 0x24]
inc eax
push eax
push 3
push edi
call fcn.004a8e31
push dword [esp + 0x68]
push edi
call fcn.004b05c5
lea eax, [esp + 0x90]
push eax
push ebx
call fcn.0048ffeb
push dword [esp + 0x3c]
push 3
push edi
call fcn.004a8e31
add esp, 0x28
jmp 0x4a5bfa
mov edi, eax
lea eax, [esp + 0x7c]
push eax
push esi
mov dword [esp + 0x64], edi
call fcn.00489fdd
mov dword [esp + 0x60], eax
pop ecx
pop ecx
test eax, eax
je 0x4a5ad2
push dword [eax + 0x44]
push dword [ebx]
call fcn.004a4a44
mov ecx, eax
xor ebp, ebp
mov eax, dword [ebx + 0x44]
mov edi, ebp
mov dword [esp + 0x28], eax
inc eax
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x60]
push ecx
push ebx
mov dword [esp + 0x48], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], eax
call fcn.00496b6f
mov eax, dword [esp + 0x68]
push dword [eax]
push ebp
push dword [eax + 0x14]
push dword [esp + 0x54]
push ebx
call fcn.004a6c70
mov ecx, dword [esp + 0x7c]
add esp, 0x24
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x4a5a65
cmp byte [edx + 0x1a], 0
jne 0x4a5a3a
test edi, edi
je 0x4a5a38
mov eax, dword [edx + 4]
cmp eax, dword [edi + 4]
jge 0x4a5a3a
mov edi, edx
mov edx, dword [edx + 0x20]
test edx, edx
jne 0x4a5a26
mov dword [esp + 0x64], edi
test edi, edi
je 0x4a5a65
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 8]
jge 0x4a5a65
mov eax, dword [edi + 0x14]
push edi
push ebx
mov dword [esp + 0x70], eax
call fcn.0049d849
pop ecx
pop ecx
mov dword [esp + 0x4c], eax
push dword [esp + 0x38]
mov edi, dword [esp + 0x28]
push dword [esp + 0x6c]
push dword [esp + 0x28]
push 0x27
push edi
call fcn.004a8e65
mov eax, dword [esp + 0x60]
add esp, 0x14
test eax, eax
je 0x4a5a96
push 0xfffffffffffffff0
push eax
push 0xffffffffffffffff
push edi
call fcn.004a90c6
add esp, 0x10
mov eax, dword [esp + 0xa0]
push dword [eax + 8]
push dword [esp + 0x24]
push 0x20
push edi
call fcn.004a8e4a
push dword [esp + 0x30]
push 0x2d
push edi
call fcn.004a8e31
push dword [esp + 0x80]
mov eax, dword [esp + 0x78]
push eax
push ebx
call fcn.00485629
add esp, 0x28
jmp 0x4a5bb9
xor ebp, ebp
push esi
mov dword [esp + 0x24], ebp
call fcn.0048aff9
mov byte [esp + 0x1b], al
pop ecx
test al, al
je 0x4a5b2c
mov eax, dword [esi]
push ebp
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
push dword [eax + 0x10]
push dword [esp + 0x38]
call fcn.0049ac44
mov edi, eax
add esp, 0xc
mov dword [esp + 0x5c], edi
mov dword [esp + 0x20], edi
test edi, edi
je 0x4a5b2c
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x4a5b2c
mov eax, dword [edi + 0xc]
cmp byte [esp + 0x17], 1
setne cl
mov byte [eax + 0xc], cl
mov eax, dword [edi + 0xc]
mov eax, dword [eax]
mov byte [eax], 0x98
lea eax, [esp + 0x7c]
push eax
push ebx
call fcn.0048ffeb
mov al, byte [esp + 0x1f]
movzx eax, al
push eax
push ebp
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x64]
push dword [esp + 0x28]
push ebx
call fcn.004b2266
add esp, 0x20
mov dword [esp + 0x38], eax
test eax, eax
jne 0x4a5b6e
push edi
mov edi, dword [esp + 0x34]
push edi
call fcn.0049abee
jmp 0x4a4f96
lea eax, [esp + 0x7c]
push eax
push ebx
call fcn.004b3ee7
mov edi, dword [esp + 0x2c]
pop ecx
pop ecx
cmp dword [esp + 0x20], ebp
jne 0x4a5b9f
cmp byte [esp + 0x17], 0
je 0x4a5b9f
mov eax, dword [esp + 0x38]
push dword [eax + 0x18]
push ebp
push 1
push edi
call fcn.004a8e4a
add esp, 0x10
push dword [esp + 0x38]
call fcn.004b2ba5
lea eax, [esp + 0x80]
push eax
push ebx
call fcn.004869cf
add esp, 0xc
mov edx, dword [esp + 0x34]
push 8
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x58]
push ebp
push edx
push ebx
call fcn.0049a60e
push ebp
push ebp
push dword [esp + 0x34]
xor eax, eax
push 0xffffffffffffffff
push eax
push eax
push eax
push dword [esi]
push esi
push ebx
call fcn.004918cd
push dword [esp + 0x94]
push dword [esp + 0x6c]
call fcn.0049abee
add esp, 0x40
xor ebp, ebp
push dword [esp + 0x54]
push edi
call fcn.004b05c5
pop ecx
pop ecx
cmp dword [esp + 0x44], 0
jl 0x4a5c1a
push str.DISTINCT
push ebx
call fcn.0048568c
pop ecx
pop ecx
cmp dword [esp + 0x40], 0
je 0x4a5c41
push str.ORDER_BY
push ebx
call fcn.0048568c
push dword [esp + 0x24]
mov eax, dword [esp + 0x24]
push dword [eax]
push edi
push esi
push ebx
call fcn.0048883d
add esp, 0x1c
push dword [esp + 0xb0]
push edi
call fcn.004b05c5
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
pop ecx
pop ecx
mov ecx, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
jmp 0x4a5c83
mov edi, eax
jmp 0x4a4f98
mov ebp, dword [esp + 0x1c]
xor ecx, ecx
inc ecx
jmp 0x4a5c87
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x30]
xor ecx, ecx
inc ecx
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x78]
mov dword [ebx + 0x228], esi
test ecx, ecx
jne 0x4a5ca6
cmp byte [ebp], 5
jne 0x4a5ca6
push edx
push eax
push ebx
call fcn.004883af
add esp, 0xc
push dword [esp + 0x90]
push edi
call fcn.00497c57
push dword [esp + 0xa8]
push edi
call fcn.00497c57
mov eax, dword [esp + 0x70]
add esp, 0x10
jmp 0x4a5ccb
mov eax, ecx
mov ecx, dword [esp + 0xec]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b94b6
add esp, 0xe0
ret