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

Disassembly:
sub esp, 0xbc
push ebx
push ebp
push esi
mov esi, dword [esp + 0xcc]
mov ebx, dword [esp + 0xd0]
push edi
mov eax, dword [esi + 0x1e4]
mov ebp, dword [esi]
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 0x1e8]
mov dword [esi + 0x1e4], eax
inc eax
test ebx, ebx
mov dword [esp + 0x1c], 1
mov dword [esi + 0x1e8], eax
mov dword [esp + 0x20], ebp
je 0x47e83e
mov al, byte [ebp + 0x38]
test al, al
jne 0x47e83e
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x47e83e
push 0
push 0
push 0
push 0x15
push esi
call fcn.00471db0
add esp, 0x14
test eax, eax
jne 0x47e83e
mov ecx, 0xa
lea edi, [esp + 0x7c]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xd8]
cmp byte [ecx], 4
ja 0x47d74e
mov edx, dword [ebx + 0x38]
push edx
push ebp
call fcn.00462e70
add esp, 8
and word [ebx + 6], 0xfffe
mov dword [ebx + 0x38], 0
push 0
push ebx
push esi
call fcn.0047cba0
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x44]
add esp, 0xc
test eax, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x54], edx
jne 0x47e7da
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47e7da
mov ecx, dword [esp + 0xd4]
push esi
mov dl, byte [ecx + 6]
shr edx, 2
and edx, 1
mov dword [esp + 0x44], edx
call fcn.0047caf0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x47e7da
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xd8]
mov ecx, dword [eax]
push ecx
push edx
push esi
call fcn.0047ec70
add esp, 0xc
test eax, eax
jne 0x47e7da
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
jne 0x47dabc
jmp 0x47d7eb
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
movsx ecx, word [edi]
cmp eax, ecx
jge 0x47dabc
lea edx, [eax + eax*8]
mov eax, dword [edi + edx*8 + 0x1c]
test eax, eax
lea edi, [edi + edx*8 + 8]
mov dword [esp + 0x24], eax
je 0x47daa8
mov eax, dword [edi + 0x18]
test eax, eax
je 0x47d837
test byte [edi + 0x24], 4
jne 0x47daa8
push eax
mov eax, dword [edi + 0x1c]
push eax
push 2
push ebp
call fcn.0046c410
add esp, 0x10
jmp 0x47daa8
push ebx
call fcn.0047e850
mov edx, dword [esi + 0x1e0]
mov ecx, dword [esp + 0x28]
add edx, eax
mov dword [esi + 0x1e0], edx
mov al, byte [ecx + 6]
mov edx, dword [esp + 0x44]
shr eax, 2
and eax, 1
mov dword [esp + 0x40], eax
push eax
mov eax, dword [esp + 0x30]
push edx
push eax
push ebx
push esi
call fcn.00480ef0
add esp, 0x18
test eax, eax
je 0x47d896
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x47d889
or byte [ebx + 6], 4
mov dword [esp + 0x40], 1
mov dword [esp + 0x28], 0xffffffff
jmp 0x47da5f
mov ecx, dword [esp + 0x38]
cmp word [ecx], 1
jne 0x47d9b9
mov eax, 0x100
test word [ebx + 6], ax
jne 0x47d9b9
mov edx, dword [esp + 0x20]
test word [edx + 0x34], ax
jne 0x47d9b9
mov edx, dword [esi + 0x4c]
push 0xffffffffffffffff
inc edx
push esi
mov eax, edx
mov dword [esi + 0x4c], edx
mov dword [edi + 0x1c], eax
mov ecx, dword [esi + 0x4c]
inc ecx
mov eax, ecx
mov dword [esi + 0x4c], ecx
mov dword [esp + 0x60], eax
call fcn.004754e0
push 1
push ebp
call fcn.0046ce80
mov ecx, dword [edi + 0x2c]
push ecx
push 0x2c
push ebp
call fcn.0046cea0
push 1
push ebp
mov ebx, eax
call fcn.0046c940
mov edx, dword [esp + 0x7c]
mov dword [edi + 0x18], ebx
push edx
push 0
push 7
push ebp
call fcn.0046c410
push 1
push ebp
call fcn.0046c940
mov eax, dword [edi + 0x1c]
lea ecx, [esp + 0xe4]
push eax
push 0xa
push ecx
call fcn.0047c340
mov ecx, dword [esp + 0x6c]
mov dl, byte [esi + 0x1e8]
add esp, 0x48
lea eax, [esp + 0xa8]
mov byte [edi + 0x28], dl
push eax
push ecx
push esi
call fcn.0047d6a0
mov edx, dword [esp + 0x30]
fld qword [edx + 0x20]
call fcn.004af8cc
mov ecx, dword [edi + 0x10]
mov dword [ecx + 0x1c], eax
mov ecx, dword [edi + 0x24]
or ecx, 4
mov dword [edi + 0x24], ecx
mov edx, dword [esp + 0xbc]
push edx
push ebx
push ebp
call fcn.0045fc60
mov eax, dword [esp + 0xcc]
push eax
push ebx
push ebp
call fcn.0045fc80
mov ecx, dword [esp + 0x7c]
push ecx
push 1
push 7
push ebp
call fcn.0046c410
mov edx, dword [edi + 0x1c]
push edx
push 4
push ebp
call fcn.0046cea0
add esp, 0x40
dec ebx
push ebx
push ebp
call fcn.0046c430
push esi
call fcn.0047ec60
add esp, 0xc
jmp 0x47da5f
mov eax, dword [esi + 0x4c]
xor ebx, ebx
inc eax
push eax
push ebx
push 7
mov dword [esi + 0x4c], eax
push ebp
mov dword [edi + 0x1c], eax
call fcn.0046c410
add esp, 0x10
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x18], eax
mov al, byte [edi + 0x24]
test al, 2
jne 0x47d9ec
push esi
call fcn.0046e830
add esp, 4
mov ebx, eax
mov eax, dword [edi + 0x2c]
lea ecx, [esp + 0xa8]
push eax
push 9
push ecx
call fcn.0047c340
mov ecx, dword [esp + 0x30]
mov dl, byte [esi + 0x1e8]
lea eax, [esp + 0xb4]
mov byte [edi + 0x28], dl
push eax
push ecx
push esi
call fcn.0047d6a0
mov edx, dword [esp + 0x3c]
add esp, 0x18
fld qword [edx + 0x20]
call fcn.004af8cc
mov ecx, dword [edi + 0x10]
test ebx, ebx
mov dword [ecx + 0x1c], eax
je 0x47da3e
push ebx
push ebp
call fcn.0046c430
add esp, 8
mov edx, dword [edi + 0x1c]
push edx
push 3
push ebp
call fcn.0046cea0
push eax
mov eax, dword [esp + 0x4c]
push eax
push ebp
call fcn.0045fc40
push esi
call fcn.0047ec60
add esp, 0x1c
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 0x38]
test al, al
jne 0x47e7da
mov ebx, dword [esp + 0xd4]
push ebx
call fcn.0047e850
mov edx, dword [esi + 0x1e0]
add esp, 4
sub edx, eax
mov eax, dword [esp + 0xd8]
mov dword [esi + 0x1e0], edx
mov edx, dword [ebx + 0x28]
mov cl, byte [eax]
mov dword [esp + 0x38], edx
cmp cl, 4
jbe 0x47daa8
mov ecx, dword [ebx + 0x38]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [ebx + 0x3c]
inc ecx
test eax, eax
mov dword [esp + 0x28], ecx
je 0x47d7e7
mov edi, dword [esp + 0xd4]
mov edx, dword [edi]
mov eax, dword [edi + 0x2c]
mov ecx, dword [edi + 0x34]
mov ebx, dword [edi + 0x30]
mov dword [esp + 0x54], edx
mov dl, byte [edi + 6]
mov dword [esp + 0x30], eax
mov eax, dword [edi + 0x3c]
and dl, 1
mov dword [esp + 0x60], ecx
test eax, eax
mov byte [esp + 0x70], dl
je 0x47db54
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x47db2a
xor ecx, ecx
xor edx, edx
mov eax, edi
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], edi
mov ecx, eax
mov eax, dword [eax + 0x3c]
inc edx
test eax, eax
jne 0x47daf8
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x60]
test eax, eax
je 0x47db2a
cmp edx, eax
jle 0x47db2a
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.0045fa80
add esp, 8
jmp 0x47e7da
mov ecx, dword [esp + 0xd8]
push ecx
push edi
push esi
call fcn.0047faf0
mov edx, dword [esp + 0xb0]
add esp, 0xc
mov dword [esi + 0x1e4], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
mov eax, dword [esp + 0x10]
push eax
push ebx
call fcn.00471a90
add esp, 8
test eax, eax
jne 0x47db78
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x34], 4
jne 0x47db78
mov dword [esp + 0x10], 0
mov dl, byte [edi + 6]
and dl, 5
cmp dl, 1
jne 0x47dc83
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.00471a90
add esp, 8
test eax, eax
jne 0x47dc83
mov edx, dword [edi]
and word [edi + 6], 0xfffe
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.00471460
add esp, 0xc
mov dword [edi + 0x30], eax
mov ebx, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x34], 0xffffffff
mov edx, dword [esp + 0xd8]
cmp byte [edx], 9
jne 0x47dbed
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
push ecx
push eax
push 0x2a
push ebp
call fcn.0046c410
add esp, 0x10
push ebp
call fcn.0046cec0
push eax
push edi
mov dword [edi + 0x20], 0
push esi
mov dword [esp + 0xd8], eax
mov dword [edi + 0x24], 0x43e00000
call fcn.0047f9a0
mov eax, dword [edi + 8]
add esp, 0x10
test eax, eax
jne 0x47dc35
mov eax, dword [esp + 0x34]
test eax, eax
jl 0x47dc35
mov ecx, eax
push ecx
push ebp
call fcn.00478ce0
add esp, 8
mov byte [eax], 0x2b
or byte [edi + 6], 0x40
test byte [edi + 6], 1
je 0x47dccf
mov eax, dword [esi + 0x48]
push 0xfffffffffffffff0
mov dword [esp + 0x78], eax
inc eax
mov dword [esi + 0x48], eax
mov edx, dword [edi]
push edx
push esi
call fcn.0047f380
add esp, 8
push eax
mov eax, dword [esp + 0x7c]
push 0
push 0
push eax
push 0x2a
push ebp
call fcn.0046ba30
push 8
push ebp
mov dword [esp + 0x9c], eax
call fcn.0046c940
add esp, 0x24
mov byte [esp + 0x71], 3
jmp 0x47dcd4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47dbc3
mov ecx, eax
push ecx
push esi
call fcn.0047f380
mov ecx, dword [esp + 0x18]
mov edx, dword [esi + 0x48]
push 0xfffffffffffffff0
push eax
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x48]
inc edx
push 0
mov dword [esi + 0x48], edx
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
add eax, 2
push eax
push ecx
push 0x2a
push ebp
call fcn.0046ba30
add esp, 0x24
mov dword [esp + 0x34], eax
mov dword [edi + 0x18], eax
jmp 0x47dbcb
mov byte [esp + 0x71], 0
mov eax, dword [esp + 0x40]
xor edx, edx
cmp eax, edx
jne 0x47ddb2
cmp ebx, edx
jne 0x47ddb2
mov al, byte [esp + 0x70]
test al, al
je 0x47dcf6
mov eax, dword [edi]
jmp 0x47dcf8
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
push 0
push 0
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
push esi
call fcn.00484330
mov ebx, eax
add esp, 0x1c
test ebx, ebx
je 0x47e7da
fld qword [ebx + 0x30]
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 1
je 0x47dd38
mov ecx, dword [ebx + 0x30]
mov dword [edi + 0x20], ecx
mov edx, dword [ebx + 0x34]
mov dword [edi + 0x24], edx
mov al, byte [ebx + 0xe]
test al, al
je 0x47dd43
mov byte [esp + 0x71], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47dd5d
mov edx, dword [eax]
xor ecx, ecx
mov cx, word [ebx + 8]
cmp ecx, edx
jne 0x47dd5d
xor eax, eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x47dd7a
test eax, eax
jne 0x47dd7a
push ecx
push ebp
call fcn.0045fca0
add esp, 8
mov dword [edi + 0x18], 0xffffffff
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 0x14]
mov ecx, dword [esp + 0xd8]
push edx
push eax
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x60]
push edx
push eax
push 0
push 0
push ecx
push edi
push esi
call fcn.0047ecb0
push ebx
call fcn.00489b20
add esp, 0x2c
jmp 0x47e77f
cmp ebx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], edx
je 0x47de06
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
cmp ecx, edx
jle 0x47ddd5
add eax, 0x10
mov word [eax], dx
add eax, 0x14
dec ecx
jne 0x47ddcc
mov ecx, dword [ebx]
mov eax, dword [ebx + 8]
cmp ecx, edx
jle 0x47ddea
add eax, 0x10
mov word [eax], dx
add eax, 0x14
dec ecx
jne 0x47dde1
fld qword [edi + 0x20]
fcomp qword [0x4e9f70]
fnstsw ax
test ah, 0x41
jne 0x47de10
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], 0x40590000
jmp 0x47de10
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], 0x3ff00000
push ebp
call fcn.0046cec0
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x38], eax
mov ecx, 8
xor eax, eax
lea edi, [esp + 0xac]
add esp, 4
rep stosd dword es:[edi], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0xa8], esi
test ebx, ebx
mov dword [esp + 0xac], edx
mov dword [esp + 0xb4], eax
je 0x47de5a
mov ecx, dword [ebx]
inc ecx
mov dword [esp + 0x88], ecx
jmp 0x47de65
mov dword [esp + 0x88], 0
mov edx, dword [esp + 0x54]
lea eax, [esp + 0xa8]
push edx
push eax
mov dword [esp + 0x94], ebx
call fcn.0047ec20
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0xb0]
push ecx
push edx
call fcn.0047ec20
mov eax, dword [esp + 0x70]
xor edi, edi
add esp, 0x10
cmp eax, edi
je 0x47deae
push eax
lea eax, [esp + 0xac]
push eax
call fcn.0047e900
add esp, 8
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x94]
cmp eax, edi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x28], edi
jle 0x47df21
mov al, byte [esp + 0xc4]
mov edx, dword [esp + 0x9c]
or al, 8
mov byte [esp + 0xc4], al
mov eax, dword [edi + edx]
lea edx, [esp + 0xa8]
mov ecx, dword [eax + 0x10]
push ecx
push edx
call fcn.0047ec20
mov dl, byte [esp + 0xcc]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xa8]
add esp, 8
and dl, 0xf7
inc eax
add edi, 0x10
cmp eax, ecx
mov byte [esp + 0xc4], dl
mov dword [esp + 0x28], eax
jl 0x47decb
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47e7da
test ebx, ebx
je 0x47e522
mov eax, dword [esi + 0x48]
push ebx
mov dword [esp + 0x84], eax
inc eax
push esi
mov dword [esi + 0x48], eax
call fcn.0047f380
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
push 0xfffffffffffffff0
push eax
push 0
push ecx
push edx
push 0x2b
push ebp
mov dword [esp + 0x90], eax
call fcn.0046ba30
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x4c]
inc eax
push ebp
mov dword [esp + 0x74], eax
lea edi, [eax + 1]
mov dword [esp + 0x70], edi
inc edi
mov dword [esi + 0x4c], edi
call fcn.0046cec0
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x64], eax
inc ecx
push ebp
mov eax, ecx
mov dword [esi + 0x4c], ecx
mov dword [esp + 0x84], eax
call fcn.0046cec0
mov edx, dword [ebx]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x4c]
lea ecx, [eax + 1]
add eax, edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x94], ecx
lea ecx, [eax + 1]
mov dword [esi + 0x4c], eax
mov dword [esp + 0x88], ecx
mov ecx, dword [ebx]
push edx
push 0
add eax, ecx
push 7
push ebp
mov dword [esi + 0x4c], eax
call fcn.0046c410
mov eax, dword [esp + 0x88]
push eax
push 0
push 7
push ebp
call fcn.0046c410
mov ecx, dword [ebx]
mov eax, dword [esp + 0xb4]
add esp, 0x4c
lea edx, [ecx + eax - 1]
push edx
push eax
push 0
push 0xa
push ebp
call fcn.0046ba70
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
push eax
push ecx
push 2
push ebp
call fcn.0046c410
push 0
push 0
push 0
push ebx
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x6c]
push edx
push eax
push esi
call fcn.00484330
add esp, 0x40
mov dword [esp + 0x30], eax
test eax, eax
je 0x47e7da
mov edx, eax
mov eax, dword [ebx]
xor ecx, ecx
mov cx, word [edx + 8]
cmp ecx, eax
jne 0x47e064
mov dword [esp + 0x40], 0
jmp 0x47e27e
mov al, byte [esp + 0x70]
test al, al
je 0x47e080
mov eax, dword [esp + 0xd4]
mov cl, byte [eax + 6]
mov eax, str.DISTINCT
test cl, 1
je 0x47e085
mov eax, str.GROUP_BY
push eax
push esi
call fcn.0047f420
mov eax, dword [ebx]
mov ecx, dword [esp + 0x9c]
add esp, 8
mov dword [esp + 0x1c], eax
inc eax
mov dword [esp + 0x40], 1
test ecx, ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], eax
jle 0x47e0db
mov edx, dword [esp + 0x90]
mov dword [esp + 0x14], ecx
add edx, 0xc
cmp dword [edx], eax
jl 0x47e0cd
mov ecx, dword [esp + 0x24]
inc ecx
inc eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x14]
add edx, 0x18
dec ecx
mov dword [esp + 0x14], ecx
jne 0x47e0bf
mov eax, dword [esp + 0x24]
push eax
push esi
call fcn.0046fa10
push esi
mov dword [esp + 0x50], eax
call fcn.0047e870
mov ecx, dword [esp + 0x50]
push 0
push ecx
push ebx
push esi
call fcn.0046f330
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
add edx, eax
push edx
push ecx
push 0x37
push ebp
call fcn.0046c410
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x44]
add esp, 0x2c
mov dword [esp + 0x18], edx
test eax, eax
mov dword [esp + 0x28], 0
jle 0x47e1cf
mov eax, dword [esp + 0x44]
mov ecx, edx
add eax, ecx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp dword [ecx + eax + 0xc], edx
jl 0x47e1b0
mov edx, dword [esp + 0x1c]
push 0
push edx
mov edx, dword [ecx + eax + 4]
push edx
mov edx, dword [ecx + eax + 8]
mov eax, dword [ecx + eax]
push edx
push eax
push esi
call fcn.0046f0f0
mov ecx, dword [esp + 0x34]
add esp, 0x18
cmp ecx, eax
je 0x47e197
push ecx
push eax
push 0xf
push ebp
call fcn.0046c410
add esp, 0x10
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc ecx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
add edx, 0x18
inc ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x94]
cmp ecx, edx
mov dword [esp + 0x28], ecx
jl 0x47e156
push esi
call fcn.0046c450
mov edx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
push eax
mov eax, dword [esp + 0x4c]
push edx
push eax
push 0x1f
push ebp
call fcn.0046ba70
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x98]
push ecx
push edx
push 0x60
push ebp
call fcn.0046c410
mov eax, dword [esp + 0x3c]
push eax
push esi
call fcn.0046c480
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x74]
push ecx
push edx
push esi
call fcn.0046fa40
mov eax, dword [esp + 0x6c]
push eax
call fcn.00489b20
mov eax, dword [esi + 0x48]
add esp, 0x40
mov dword [esp + 0x14], eax
mov dword [esp + 0x84], eax
inc eax
push esi
mov dword [esi + 0x48], eax
call fcn.0046c450
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
push ecx
push eax
push edx
push 0x2c
push ebp
mov dword [esp + 0x5c], eax
call fcn.0046ba70
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x98]
push eax
push ecx
push 0x46
push ebp
call fcn.0046c410
push esi
mov byte [esp + 0xa9], 1
call fcn.0047e870
add esp, 0x2c
push ebp
call fcn.0046cf30
push esi
mov dword [esp + 0x24], eax
call fcn.0047e870
mov eax, dword [esp + 0x48]
add esp, 8
test eax, eax
je 0x47e2b1
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
push edx
push eax
push 0x3e
push ebp
call fcn.0046c410
add esp, 0x10
mov eax, dword [ebx]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x47e32c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x47e2f9
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
lea edx, [eax + ecx]
push edx
push eax
mov eax, dword [esp + 0x1c]
push eax
push 0x1d
push ebp
call fcn.0046ba70
mov eax, dword [esp + 0x2c]
add esp, 0x14
test eax, eax
jne 0x47e31d
push 0x20
push ebp
call fcn.0046c940
add esp, 8
jmp 0x47e31d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov byte [esp + 0x7c], 1
lea edx, [eax + ecx]
mov ecx, dword [ebx + 8]
lea eax, [eax + eax*4]
push edx
mov edx, dword [ecx + eax*4]
push edx
push esi
call fcn.0046d170
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x47e2bf
mov eax, dword [esp + 0x6c]
mov ecx, dword [ebx]
mov edx, dword [esp + 0x5c]
push 0xfffffffffffffffa
push eax
mov eax, dword [esp + 0x70]
push ecx
push edx
push eax
push 0x18
push ebp
call fcn.0046ba30
push ebp
call fcn.0046cf30
mov dword [esp + 0x8c], eax
inc eax
push eax
push 0
push eax
push 0x19
push ebp
call fcn.0046ba70
mov ecx, dword [ebx]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x90]
push ecx
push edx
push eax
push esi
call fcn.0047e8b0
mov ecx, dword [esp + 0x80]
add esp, 0x44
push ecx
push edi
push 2
push ebp
call fcn.0046c410
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
push edx
push eax
push 0x78
push ebp
call fcn.0046c410
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
push ecx
push edx
push 2
push ebp
call fcn.0046c410
mov eax, dword [esp + 0x9c]
push eax
push ebp
call fcn.0046c430
lea ecx, [esp + 0xb4]
push ecx
push esi
call fcn.00481910
mov edx, dword [esp + 0x8c]
add esp, 0x40
push edx
push 1
push 7
push ebp
call fcn.0046c410
mov eax, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x47e409
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
push eax
push ecx
push 0x51
push ebp
call fcn.0046c410
add esp, 0x10
jmp 0x47e421
mov edx, dword [esp + 0x30]
push edx
call fcn.00489b20
mov eax, dword [esp + 0x68]
push eax
push ebp
call fcn.0045fca0
add esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
push edi
push 2
push ebp
call fcn.0046c410
mov ecx, dword [esp + 0x44]
push ecx
push 0
push 1
push ebp
call fcn.0046c410
push ebp
call fcn.0046cf30
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x88], eax
push edx
push 1
push 7
push ebp
call fcn.0046c410
push edi
push 3
push ebp
call fcn.0046cea0
add esp, 0x40
push ebx
push ebp
call fcn.0046cf10
push ebp
call fcn.0046cf30
mov ecx, dword [esp + 0x58]
mov ebx, eax
lea eax, [ebx + 2]
push eax
push ecx
push 0x78
push ebp
call fcn.0046c410
push edi
push 3
push ebp
call fcn.0046cea0
lea edx, [esp + 0xa4]
push edx
push esi
call fcn.004818b0
mov eax, dword [esp + 0x90]
inc ebx
push 8
push ebx
push eax
push esi
call fcn.0046f3a0
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x118]
add esp, 0x40
lea eax, [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x14]
push ebx
push edx
push eax
mov eax, dword [esp + 0xe4]
push ecx
push 0
mov edx, dword [eax]
push 0
push edx
push eax
push esi
call fcn.0047ecb0
push edi
push 3
push ebp
call fcn.0046cea0
mov eax, dword [esp + 0x84]
push eax
push ebp
call fcn.0046cf10
lea ecx, [esp + 0xb8]
push ecx
push esi
call fcn.004817e0
mov edx, dword [esp + 0x9c]
add esp, 0x44
push edx
push 3
push ebp
call fcn.0046cea0
add esp, 0xc
jmp 0x47e76a
mov ebx, dword [esp + 0xd4]
lea eax, [esp + 0x7c]
push eax
push ebx
mov dword [esp + 0x50], 0
call fcn.00481770
mov edi, eax
add esp, 8
test edi, edi
je 0x47e643
mov ecx, dword [edi + 0x40]
mov edx, dword [esi]
push ecx
push edx
call fcn.00465f50
mov ecx, dword [esi + 0x48]
xor ebx, ebx
mov dword [esp + 0x54], ecx
inc ecx
mov dword [esi + 0x48], ecx
mov ecx, dword [edi + 0x20]
push eax
push esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x40], ecx
call fcn.004754e0
mov edx, dword [edi]
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x4c]
push edx
push ebx
push eax
push ecx
push esi
call fcn.00471e60
mov eax, dword [edi + 8]
add esp, 0x24
test eax, eax
je 0x47e5d5
mov cl, byte [eax + 0x2e]
test cl, cl
jne 0x47e5ac
test ebx, ebx
je 0x47e5aa
mov edx, dword [eax + 0x24]
mov ecx, dword [ebx + 0x24]
cmp edx, ecx
jge 0x47e5ac
mov ebx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x47e595
test ebx, ebx
je 0x47e5d5
movsx eax, word [edi + 0x26]
cmp dword [ebx + 0x24], eax
jge 0x47e5d5
mov ecx, dword [ebx + 0x28]
push ebx
push esi
mov dword [esp + 0x38], ecx
call fcn.004758f0
add esp, 8
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x4c]
push edx
push eax
push ecx
push 0x27
push ebp
call fcn.0046ba70
mov eax, dword [esp + 0x64]
add esp, 0x14
test eax, eax
je 0x47e607
mov edx, eax
push 0xfffffffffffffff0
push edx
push 0xffffffffffffffff
push ebp
call fcn.0045fcf0
add esp, 0x10
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax + 8]
push ecx
push edx
push 0x20
push ebp
call fcn.0046c410
mov eax, dword [esp + 0x5c]
push eax
push 0x2d
push ebp
call fcn.0046cea0
push ebx
push edi
push esi
call fcn.00481b20
mov ebx, dword [esp + 0xfc]
add esp, 0x28
jmp 0x47e71f
push ebx
xor edi, edi
call fcn.004816f0
add esp, 4
mov byte [esp + 0x2f], al
test al, al
je 0x47e69b
mov ecx, dword [ebx]
push edi
mov edx, dword [ecx + 8]
mov eax, dword [edx]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
push ecx
push edx
call fcn.00471460
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [esp + 0x48], edi
je 0x47e69b
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47e69b
mov al, byte [esp + 0x2f]
mov edx, dword [edi + 8]
cmp al, 1
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [edi + 8]
mov ecx, dword [eax]
mov byte [ecx], 0x98
lea edx, [esp + 0x7c]
push edx
push esi
call fcn.004817e0
movzx ax, byte [esp + 0x37]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
push 0
push eax
push 0
push edi
push ecx
push edx
push esi
call fcn.00484330
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x47e6e2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.00462e70
add esp, 8
jmp 0x47e7da
lea edx, [esp + 0x7c]
push edx
push esi
call fcn.00481910
add esp, 8
cmp word [edi + 8], 0
jbe 0x47e708
mov eax, dword [edi + 0x18]
push eax
push 0
push 1
push ebp
call fcn.0046c410
add esp, 0x10
push edi
call fcn.00489b20
lea ecx, [esp + 0x80]
push ecx
push esi
call fcn.004818b0
add esp, 0xc
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
push 8
push edi
push edx
push esi
mov dword [esp + 0x20], 0
call fcn.0046f3a0
mov eax, dword [esp + 0xe8]
mov ecx, dword [ebx]
push edi
push edi
push eax
push 0
push 0
push 0
push 0
push ecx
push ebx
push esi
call fcn.0047ecb0
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00462e70
add esp, 0x40
mov ecx, dword [esp + 0x34]
push ecx
push ebp
call fcn.0046cf10
mov edi, dword [esp + 0xdc]
add esp, 8
cmp byte [esp + 0x71], 3
jne 0x47e794
push str.DISTINCT
push esi
call fcn.0047f420
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47e7c1
push str.ORDER_BY
push esi
call fcn.0047f420
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0xe0]
push edx
mov ecx, dword [eax]
push ecx
push ebp
push edi
push esi
call fcn.0047f470
add esp, 0x1c
mov edx, dword [esp + 0xc8]
push edx
push ebp
call fcn.0046cf10
add esp, 8
mov dword [esp + 0x1c], 0
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0xa4]
test edi, edi
mov dword [esi + 0x1e4], eax
jne 0x47e80e
mov ecx, dword [esp + 0xd8]
cmp byte [ecx], 5
jne 0x47e80e
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
push edx
push eax
push esi
call fcn.0047f790
add esp, 0xc
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x20]
push ecx
push esi
call fcn.0043f7f0
mov edx, dword [esp + 0xa4]
push edx
push esi
call fcn.0043f7f0
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xbc
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xbc
ret