Function at 0x47dfc0
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 0x47f15e
mov al, byte [ebp + 0x38]
test al, al
jne 0x47f15e
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x47f15e
push 0
push 0
push 0
push 0x15
push esi
call fcn.004726d0
add esp, 0x14
test eax, eax
jne 0x47f15e
mov ecx, 0xa
lea edi, [esp + 0x7c]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xd8]
cmp byte [ecx], 4
ja 0x47e06e
mov edx, dword [ebx + 0x38]
push edx
push ebp
call fcn.00463790
add esp, 8
and word [ebx + 6], 0xfffe
mov dword [ebx + 0x38], 0
push 0
push ebx
push esi
call fcn.0047d4c0
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 0x47f0fa
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47f0fa
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.0047d410
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x47f0fa
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xd8]
mov ecx, dword [eax]
push ecx
push edx
push esi
call fcn.0047f590
add esp, 0xc
test eax, eax
jne 0x47f0fa
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
jne 0x47e3dc
jmp 0x47e10b
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
movsx ecx, word [edi]
cmp eax, ecx
jge 0x47e3dc
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 0x47e3c8
mov eax, dword [edi + 0x18]
test eax, eax
je 0x47e157
test byte [edi + 0x24], 4
jne 0x47e3c8
push eax
mov eax, dword [edi + 0x1c]
push eax
push 2
push ebp
call fcn.0046cd30
add esp, 0x10
jmp 0x47e3c8
push ebx
call fcn.0047f170
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.00481810
add esp, 0x18
test eax, eax
je 0x47e1b6
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x47e1a9
or byte [ebx + 6], 4
mov dword [esp + 0x40], 1
mov dword [esp + 0x28], 0xffffffff
jmp 0x47e37f
mov ecx, dword [esp + 0x38]
cmp word [ecx], 1
jne 0x47e2d9
mov eax, 0x100
test word [ebx + 6], ax
jne 0x47e2d9
mov edx, dword [esp + 0x20]
test word [edx + 0x34], ax
jne 0x47e2d9
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.00475e00
push 1
push ebp
call fcn.0046d7a0
mov ecx, dword [edi + 0x2c]
push ecx
push 0x2c
push ebp
call fcn.0046d7c0
push 1
push ebp
mov ebx, eax
call fcn.0046d260
mov edx, dword [esp + 0x7c]
mov dword [edi + 0x18], ebx
push edx
push 0
push 7
push ebp
call fcn.0046cd30
push 1
push ebp
call fcn.0046d260
mov eax, dword [edi + 0x1c]
lea ecx, [esp + 0xe4]
push eax
push 0xa
push ecx
call fcn.0047cc60
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.0047dfc0
mov edx, dword [esp + 0x30]
fld qword [edx + 0x20]
call fcn.004b0b40
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.00460580
mov eax, dword [esp + 0xcc]
push eax
push ebx
push ebp
call fcn.004605a0
mov ecx, dword [esp + 0x7c]
push ecx
push 1
push 7
push ebp
call fcn.0046cd30
mov edx, dword [edi + 0x1c]
push edx
push 4
push ebp
call fcn.0046d7c0
add esp, 0x40
dec ebx
push ebx
push ebp
call fcn.0046cd50
push esi
call fcn.0047f580
add esp, 0xc
jmp 0x47e37f
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.0046cd30
add esp, 0x10
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x18], eax
mov al, byte [edi + 0x24]
test al, 2
jne 0x47e30c
push esi
call fcn.0046f150
add esp, 4
mov ebx, eax
mov eax, dword [edi + 0x2c]
lea ecx, [esp + 0xa8]
push eax
push 9
push ecx
call fcn.0047cc60
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.0047dfc0
mov edx, dword [esp + 0x3c]
add esp, 0x18
fld qword [edx + 0x20]
call fcn.004b0b40
mov ecx, dword [edi + 0x10]
test ebx, ebx
mov dword [ecx + 0x1c], eax
je 0x47e35e
push ebx
push ebp
call fcn.0046cd50
add esp, 8
mov edx, dword [edi + 0x1c]
push edx
push 3
push ebp
call fcn.0046d7c0
push eax
mov eax, dword [esp + 0x4c]
push eax
push ebp
call fcn.00460560
push esi
call fcn.0047f580
add esp, 0x1c
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 0x38]
test al, al
jne 0x47f0fa
mov ebx, dword [esp + 0xd4]
push ebx
call fcn.0047f170
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 0x47e3c8
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 0x47e107
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 0x47e474
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x47e44a
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 0x47e418
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x60]
test eax, eax
je 0x47e44a
cmp edx, eax
jle 0x47e44a
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.004603a0
add esp, 8
jmp 0x47f0fa
mov ecx, dword [esp + 0xd8]
push ecx
push edi
push esi
call fcn.00480410
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.004723b0
add esp, 8
test eax, eax
jne 0x47e498
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x34], 4
jne 0x47e498
mov dword [esp + 0x10], 0
mov dl, byte [edi + 6]
and dl, 5
cmp dl, 1
jne 0x47e5a3
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.004723b0
add esp, 8
test eax, eax
jne 0x47e5a3
mov edx, dword [edi]
and word [edi + 6], 0xfffe
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.00471d80
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 0x47e50d
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
push ecx
push eax
push 0x2a
push ebp
call fcn.0046cd30
add esp, 0x10
push ebp
call fcn.0046d7e0
push eax
push edi
mov dword [edi + 0x20], 0
push esi
mov dword [esp + 0xd8], eax
mov dword [edi + 0x24], 0x43e00000
call fcn.004802c0
mov eax, dword [edi + 8]
add esp, 0x10
test eax, eax
jne 0x47e555
mov eax, dword [esp + 0x34]
test eax, eax
jl 0x47e555
mov ecx, eax
push ecx
push ebp
call fcn.00479600
add esp, 8
mov byte [eax], 0x2b
or byte [edi + 6], 0x40
test byte [edi + 6], 1
je 0x47e5ef
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.0047fca0
add esp, 8
push eax
mov eax, dword [esp + 0x7c]
push 0
push 0
push eax
push 0x2a
push ebp
call fcn.0046c350
push 8
push ebp
mov dword [esp + 0x9c], eax
call fcn.0046d260
add esp, 0x24
mov byte [esp + 0x71], 3
jmp 0x47e5f4
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47e4e3
mov ecx, eax
push ecx
push esi
call fcn.0047fca0
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.0046c350
add esp, 0x24
mov dword [esp + 0x34], eax
mov dword [edi + 0x18], eax
jmp 0x47e4eb
mov byte [esp + 0x71], 0
mov eax, dword [esp + 0x40]
xor edx, edx
cmp eax, edx
jne 0x47e6d2
cmp ebx, edx
jne 0x47e6d2
mov al, byte [esp + 0x70]
test al, al
je 0x47e616
mov eax, dword [edi]
jmp 0x47e618
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.00484c50
mov ebx, eax
add esp, 0x1c
test ebx, ebx
je 0x47f0fa
fld qword [ebx + 0x30]
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 1
je 0x47e658
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 0x47e663
mov byte [esp + 0x71], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47e67d
mov edx, dword [eax]
xor ecx, ecx
mov cx, word [ebx + 8]
cmp ecx, edx
jne 0x47e67d
xor eax, eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x47e69a
test eax, eax
jne 0x47e69a
push ecx
push ebp
call fcn.004605c0
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.0047f5d0
push ebx
call fcn.0048a440
add esp, 0x2c
jmp 0x47f09f
cmp ebx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], edx
je 0x47e726
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
cmp ecx, edx
jle 0x47e6f5
add eax, 0x10
mov word [eax], dx
add eax, 0x14
dec ecx
jne 0x47e6ec
mov ecx, dword [ebx]
mov eax, dword [ebx + 8]
cmp ecx, edx
jle 0x47e70a
add eax, 0x10
mov word [eax], dx
add eax, 0x14
dec ecx
jne 0x47e701
fld qword [edi + 0x20]
fcomp qword [0x4eaf70]
fnstsw ax
test ah, 0x41
jne 0x47e730
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], 0x40590000
jmp 0x47e730
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], 0x3ff00000
push ebp
call fcn.0046d7e0
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 0x47e77a
mov ecx, dword [ebx]
inc ecx
mov dword [esp + 0x88], ecx
jmp 0x47e785
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.0047f540
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0xb0]
push ecx
push edx
call fcn.0047f540
mov eax, dword [esp + 0x70]
xor edi, edi
add esp, 0x10
cmp eax, edi
je 0x47e7ce
push eax
lea eax, [esp + 0xac]
push eax
call fcn.0047f220
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 0x47e841
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.0047f540
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 0x47e7eb
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47f0fa
test ebx, ebx
je 0x47ee42
mov eax, dword [esi + 0x48]
push ebx
mov dword [esp + 0x84], eax
inc eax
push esi
mov dword [esi + 0x48], eax
call fcn.0047fca0
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.0046c350
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.0046d7e0
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.0046d7e0
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.0046cd30
mov eax, dword [esp + 0x88]
push eax
push 0
push 7
push ebp
call fcn.0046cd30
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.0046c390
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
push eax
push ecx
push 2
push ebp
call fcn.0046cd30
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.00484c50
add esp, 0x40
mov dword [esp + 0x30], eax
test eax, eax
je 0x47f0fa
mov edx, eax
mov eax, dword [ebx]
xor ecx, ecx
mov cx, word [edx + 8]
cmp ecx, eax
jne 0x47e984
mov dword [esp + 0x40], 0
jmp 0x47eb9e
mov al, byte [esp + 0x70]
test al, al
je 0x47e9a0
mov eax, dword [esp + 0xd4]
mov cl, byte [eax + 6]
mov eax, str.DISTINCT
test cl, 1
je 0x47e9a5
mov eax, str.GROUP_BY
push eax
push esi
call fcn.0047fd40
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 0x47e9fb
mov edx, dword [esp + 0x90]
mov dword [esp + 0x14], ecx
add edx, 0xc
cmp dword [edx], eax
jl 0x47e9ed
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 0x47e9df
mov eax, dword [esp + 0x24]
push eax
push esi
call fcn.00470330
push esi
mov dword [esp + 0x50], eax
call fcn.0047f190
mov ecx, dword [esp + 0x50]
push 0
push ecx
push ebx
push esi
call fcn.0046fc50
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.0046cd30
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 0x47eaef
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 0x47ead0
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.0046fa10
mov ecx, dword [esp + 0x34]
add esp, 0x18
cmp ecx, eax
je 0x47eab7
push ecx
push eax
push 0xf
push ebp
call fcn.0046cd30
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 0x47ea76
push esi
call fcn.0046cd70
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.0046c390
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x98]
push ecx
push edx
push 0x60
push ebp
call fcn.0046cd30
mov eax, dword [esp + 0x3c]
push eax
push esi
call fcn.0046cda0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x74]
push ecx
push edx
push esi
call fcn.00470360
mov eax, dword [esp + 0x6c]
push eax
call fcn.0048a440
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.0046cd70
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.0046c390
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x98]
push eax
push ecx
push 0x46
push ebp
call fcn.0046cd30
push esi
mov byte [esp + 0xa9], 1
call fcn.0047f190
add esp, 0x2c
push ebp
call fcn.0046d850
push esi
mov dword [esp + 0x24], eax
call fcn.0047f190
mov eax, dword [esp + 0x48]
add esp, 8
test eax, eax
je 0x47ebd1
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
push edx
push eax
push 0x3e
push ebp
call fcn.0046cd30
add esp, 0x10
mov eax, dword [ebx]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x47ec4c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x47ec19
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.0046c390
mov eax, dword [esp + 0x2c]
add esp, 0x14
test eax, eax
jne 0x47ec3d
push 0x20
push ebp
call fcn.0046d260
add esp, 8
jmp 0x47ec3d
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.0046da90
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x47ebdf
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.0046c350
push ebp
call fcn.0046d850
mov dword [esp + 0x8c], eax
inc eax
push eax
push 0
push eax
push 0x19
push ebp
call fcn.0046c390
mov ecx, dword [ebx]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x90]
push ecx
push edx
push eax
push esi
call fcn.0047f1d0
mov ecx, dword [esp + 0x80]
add esp, 0x44
push ecx
push edi
push 2
push ebp
call fcn.0046cd30
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
push edx
push eax
push 0x78
push ebp
call fcn.0046cd30
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
push ecx
push edx
push 2
push ebp
call fcn.0046cd30
mov eax, dword [esp + 0x9c]
push eax
push ebp
call fcn.0046cd50
lea ecx, [esp + 0xb4]
push ecx
push esi
call fcn.00482230
mov edx, dword [esp + 0x8c]
add esp, 0x40
push edx
push 1
push 7
push ebp
call fcn.0046cd30
mov eax, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x47ed29
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
push eax
push ecx
push 0x51
push ebp
call fcn.0046cd30
add esp, 0x10
jmp 0x47ed41
mov edx, dword [esp + 0x30]
push edx
call fcn.0048a440
mov eax, dword [esp + 0x68]
push eax
push ebp
call fcn.004605c0
add esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
push edi
push 2
push ebp
call fcn.0046cd30
mov ecx, dword [esp + 0x44]
push ecx
push 0
push 1
push ebp
call fcn.0046cd30
push ebp
call fcn.0046d850
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x88], eax
push edx
push 1
push 7
push ebp
call fcn.0046cd30
push edi
push 3
push ebp
call fcn.0046d7c0
add esp, 0x40
push ebx
push ebp
call fcn.0046d830
push ebp
call fcn.0046d850
mov ecx, dword [esp + 0x58]
mov ebx, eax
lea eax, [ebx + 2]
push eax
push ecx
push 0x78
push ebp
call fcn.0046cd30
push edi
push 3
push ebp
call fcn.0046d7c0
lea edx, [esp + 0xa4]
push edx
push esi
call fcn.004821d0
mov eax, dword [esp + 0x90]
inc ebx
push 8
push ebx
push eax
push esi
call fcn.0046fcc0
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.0047f5d0
push edi
push 3
push ebp
call fcn.0046d7c0
mov eax, dword [esp + 0x84]
push eax
push ebp
call fcn.0046d830
lea ecx, [esp + 0xb8]
push ecx
push esi
call fcn.00482100
mov edx, dword [esp + 0x9c]
add esp, 0x44
push edx
push 3
push ebp
call fcn.0046d7c0
add esp, 0xc
jmp 0x47f08a
mov ebx, dword [esp + 0xd4]
lea eax, [esp + 0x7c]
push eax
push ebx
mov dword [esp + 0x50], 0
call fcn.00482090
mov edi, eax
add esp, 8
test edi, edi
je 0x47ef63
mov ecx, dword [edi + 0x40]
mov edx, dword [esi]
push ecx
push edx
call fcn.00466870
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.00475e00
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.00472780
mov eax, dword [edi + 8]
add esp, 0x24
test eax, eax
je 0x47eef5
mov cl, byte [eax + 0x2e]
test cl, cl
jne 0x47eecc
test ebx, ebx
je 0x47eeca
mov edx, dword [eax + 0x24]
mov ecx, dword [ebx + 0x24]
cmp edx, ecx
jge 0x47eecc
mov ebx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x47eeb5
test ebx, ebx
je 0x47eef5
movsx eax, word [edi + 0x26]
cmp dword [ebx + 0x24], eax
jge 0x47eef5
mov ecx, dword [ebx + 0x28]
push ebx
push esi
mov dword [esp + 0x38], ecx
call fcn.00476210
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.0046c390
mov eax, dword [esp + 0x64]
add esp, 0x14
test eax, eax
je 0x47ef27
mov edx, eax
push 0xfffffffffffffff0
push edx
push 0xffffffffffffffff
push ebp
call fcn.00460610
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.0046cd30
mov eax, dword [esp + 0x5c]
push eax
push 0x2d
push ebp
call fcn.0046d7c0
push ebx
push edi
push esi
call fcn.00482440
mov ebx, dword [esp + 0xfc]
add esp, 0x28
jmp 0x47f03f
push ebx
xor edi, edi
call fcn.00482010
add esp, 4
mov byte [esp + 0x2f], al
test al, al
je 0x47efbb
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.00471d80
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [esp + 0x48], edi
je 0x47efbb
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47efbb
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.00482100
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.00484c50
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x47f002
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.00463790
add esp, 8
jmp 0x47f0fa
lea edx, [esp + 0x7c]
push edx
push esi
call fcn.00482230
add esp, 8
cmp word [edi + 8], 0
jbe 0x47f028
mov eax, dword [edi + 0x18]
push eax
push 0
push 1
push ebp
call fcn.0046cd30
add esp, 0x10
push edi
call fcn.0048a440
lea ecx, [esp + 0x80]
push ecx
push esi
call fcn.004821d0
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.0046fcc0
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.0047f5d0
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.00463790
add esp, 0x40
mov ecx, dword [esp + 0x34]
push ecx
push ebp
call fcn.0046d830
mov edi, dword [esp + 0xdc]
add esp, 8
cmp byte [esp + 0x71], 3
jne 0x47f0b4
push str.DISTINCT
push esi
call fcn.0047fd40
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47f0e1
push str.ORDER_BY
push esi
call fcn.0047fd40
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.0047fd90
add esp, 0x1c
mov edx, dword [esp + 0xc8]
push edx
push ebp
call fcn.0046d830
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 0x47f12e
mov ecx, dword [esp + 0xd8]
cmp byte [ecx], 5
jne 0x47f12e
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
push edx
push eax
push esi
call fcn.004800b0
add esp, 0xc
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x20]
push ecx
push esi
call fcn.00440110
mov edx, dword [esp + 0xa4]
push edx
push esi
call fcn.00440110
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