Function at 0x47df00
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 0x47f09e
mov al, byte [ebp + 0x38]
test al, al
jne 0x47f09e
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x47f09e
push 0
push 0
push 0
push 0x15
push esi
call fcn.00472610
add esp, 0x14
test eax, eax
jne 0x47f09e
mov ecx, 0xa
lea edi, [esp + 0x7c]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xd8]
cmp byte [ecx], 4
ja 0x47dfae
mov edx, dword [ebx + 0x38]
push edx
push ebp
call fcn.004636d0
add esp, 8
and word [ebx + 6], 0xfffe
mov dword [ebx + 0x38], 0
push 0
push ebx
push esi
call fcn.0047d400
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 0x47f03a
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47f03a
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.0047d350
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x47f03a
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0xd8]
mov ecx, dword [eax]
push ecx
push edx
push esi
call fcn.0047f4d0
add esp, 0xc
test eax, eax
jne 0x47f03a
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
jne 0x47e31c
jmp 0x47e04b
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x38]
movsx ecx, word [edi]
cmp eax, ecx
jge 0x47e31c
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 0x47e308
mov eax, dword [edi + 0x18]
test eax, eax
je 0x47e097
test byte [edi + 0x24], 4
jne 0x47e308
push eax
mov eax, dword [edi + 0x1c]
push eax
push 2
push ebp
call fcn.0046cc70
add esp, 0x10
jmp 0x47e308
push ebx
call fcn.0047f0b0
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.00481750
add esp, 0x18
test eax, eax
je 0x47e0f6
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x47e0e9
or byte [ebx + 6], 4
mov dword [esp + 0x40], 1
mov dword [esp + 0x28], 0xffffffff
jmp 0x47e2bf
mov ecx, dword [esp + 0x38]
cmp word [ecx], 1
jne 0x47e219
mov eax, 0x100
test word [ebx + 6], ax
jne 0x47e219
mov edx, dword [esp + 0x20]
test word [edx + 0x34], ax
jne 0x47e219
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.00475d40
push 1
push ebp
call fcn.0046d6e0
mov ecx, dword [edi + 0x2c]
push ecx
push 0x2c
push ebp
call fcn.0046d700
push 1
push ebp
mov ebx, eax
call fcn.0046d1a0
mov edx, dword [esp + 0x7c]
mov dword [edi + 0x18], ebx
push edx
push 0
push 7
push ebp
call fcn.0046cc70
push 1
push ebp
call fcn.0046d1a0
mov eax, dword [edi + 0x1c]
lea ecx, [esp + 0xe4]
push eax
push 0xa
push ecx
call fcn.0047cba0
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.0047df00
mov edx, dword [esp + 0x30]
fld qword [edx + 0x20]
call fcn.004b0ca0
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.004604c0
mov eax, dword [esp + 0xcc]
push eax
push ebx
push ebp
call fcn.004604e0
mov ecx, dword [esp + 0x7c]
push ecx
push 1
push 7
push ebp
call fcn.0046cc70
mov edx, dword [edi + 0x1c]
push edx
push 4
push ebp
call fcn.0046d700
add esp, 0x40
dec ebx
push ebx
push ebp
call fcn.0046cc90
push esi
call fcn.0047f4c0
add esp, 0xc
jmp 0x47e2bf
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.0046cc70
add esp, 0x10
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x18], eax
mov al, byte [edi + 0x24]
test al, 2
jne 0x47e24c
push esi
call fcn.0046f090
add esp, 4
mov ebx, eax
mov eax, dword [edi + 0x2c]
lea ecx, [esp + 0xa8]
push eax
push 9
push ecx
call fcn.0047cba0
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.0047df00
mov edx, dword [esp + 0x3c]
add esp, 0x18
fld qword [edx + 0x20]
call fcn.004b0ca0
mov ecx, dword [edi + 0x10]
test ebx, ebx
mov dword [ecx + 0x1c], eax
je 0x47e29e
push ebx
push ebp
call fcn.0046cc90
add esp, 8
mov edx, dword [edi + 0x1c]
push edx
push 3
push ebp
call fcn.0046d700
push eax
mov eax, dword [esp + 0x4c]
push eax
push ebp
call fcn.004604a0
push esi
call fcn.0047f4c0
add esp, 0x1c
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 0x38]
test al, al
jne 0x47f03a
mov ebx, dword [esp + 0xd4]
push ebx
call fcn.0047f0b0
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 0x47e308
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 0x47e047
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 0x47e3b4
mov eax, dword [edi + 0x44]
test eax, eax
jne 0x47e38a
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 0x47e358
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x60]
test eax, eax
je 0x47e38a
cmp edx, eax
jle 0x47e38a
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.004602e0
add esp, 8
jmp 0x47f03a
mov ecx, dword [esp + 0xd8]
push ecx
push edi
push esi
call fcn.00480350
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.004722f0
add esp, 8
test eax, eax
jne 0x47e3d8
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x34], 4
jne 0x47e3d8
mov dword [esp + 0x10], 0
mov dl, byte [edi + 6]
and dl, 5
cmp dl, 1
jne 0x47e4e3
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
push eax
push ecx
call fcn.004722f0
add esp, 8
test eax, eax
jne 0x47e4e3
mov edx, dword [edi]
and word [edi + 6], 0xfffe
push eax
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.00471cc0
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 0x47e44d
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
push ecx
push eax
push 0x2a
push ebp
call fcn.0046cc70
add esp, 0x10
push ebp
call fcn.0046d720
push eax
push edi
mov dword [edi + 0x20], 0
push esi
mov dword [esp + 0xd8], eax
mov dword [edi + 0x24], 0x43e00000
call fcn.00480200
mov eax, dword [edi + 8]
add esp, 0x10
test eax, eax
jne 0x47e495
mov eax, dword [esp + 0x34]
test eax, eax
jl 0x47e495
mov ecx, eax
push ecx
push ebp
call fcn.00479540
add esp, 8
mov byte [eax], 0x2b
or byte [edi + 6], 0x40
test byte [edi + 6], 1
je 0x47e52f
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.0047fbe0
add esp, 8
push eax
mov eax, dword [esp + 0x7c]
push 0
push 0
push eax
push 0x2a
push ebp
call fcn.0046c290
push 8
push ebp
mov dword [esp + 0x9c], eax
call fcn.0046d1a0
add esp, 0x24
mov byte [esp + 0x71], 3
jmp 0x47e534
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47e423
mov ecx, eax
push ecx
push esi
call fcn.0047fbe0
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.0046c290
add esp, 0x24
mov dword [esp + 0x34], eax
mov dword [edi + 0x18], eax
jmp 0x47e42b
mov byte [esp + 0x71], 0
mov eax, dword [esp + 0x40]
xor edx, edx
cmp eax, edx
jne 0x47e612
cmp ebx, edx
jne 0x47e612
mov al, byte [esp + 0x70]
test al, al
je 0x47e556
mov eax, dword [edi]
jmp 0x47e558
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.00484b90
mov ebx, eax
add esp, 0x1c
test ebx, ebx
je 0x47f03a
fld qword [ebx + 0x30]
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 1
je 0x47e598
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 0x47e5a3
mov byte [esp + 0x71], al
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47e5bd
mov edx, dword [eax]
xor ecx, ecx
mov cx, word [ebx + 8]
cmp ecx, edx
jne 0x47e5bd
xor eax, eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
jl 0x47e5da
test eax, eax
jne 0x47e5da
push ecx
push ebp
call fcn.00460500
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.0047f510
push ebx
call fcn.0048a380
add esp, 0x2c
jmp 0x47efdf
cmp ebx, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x44], edx
je 0x47e666
mov eax, dword [edi]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
cmp ecx, edx
jle 0x47e635
add eax, 0x10
mov word [eax], dx
add eax, 0x14
dec ecx
jne 0x47e62c
mov ecx, dword [ebx]
mov eax, dword [ebx + 8]
cmp ecx, edx
jle 0x47e64a
add eax, 0x10
mov word [eax], dx
add eax, 0x14
dec ecx
jne 0x47e641
fld qword [edi + 0x20]
fcomp qword [0x4eaf70]
fnstsw ax
test ah, 0x41
jne 0x47e670
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], 0x40590000
jmp 0x47e670
mov dword [edi + 0x20], edx
mov dword [edi + 0x24], 0x3ff00000
push ebp
call fcn.0046d720
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 0x47e6ba
mov ecx, dword [ebx]
inc ecx
mov dword [esp + 0x88], ecx
jmp 0x47e6c5
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.0047f480
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0xb0]
push ecx
push edx
call fcn.0047f480
mov eax, dword [esp + 0x70]
xor edi, edi
add esp, 0x10
cmp eax, edi
je 0x47e70e
push eax
lea eax, [esp + 0xac]
push eax
call fcn.0047f160
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 0x47e781
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.0047f480
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 0x47e72b
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47f03a
test ebx, ebx
je 0x47ed82
mov eax, dword [esi + 0x48]
push ebx
mov dword [esp + 0x84], eax
inc eax
push esi
mov dword [esi + 0x48], eax
call fcn.0047fbe0
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.0046c290
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.0046d720
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.0046d720
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.0046cc70
mov eax, dword [esp + 0x88]
push eax
push 0
push 7
push ebp
call fcn.0046cc70
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.0046c2d0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x6c]
push eax
push ecx
push 2
push ebp
call fcn.0046cc70
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.00484b90
add esp, 0x40
mov dword [esp + 0x30], eax
test eax, eax
je 0x47f03a
mov edx, eax
mov eax, dword [ebx]
xor ecx, ecx
mov cx, word [edx + 8]
cmp ecx, eax
jne 0x47e8c4
mov dword [esp + 0x40], 0
jmp 0x47eade
mov al, byte [esp + 0x70]
test al, al
je 0x47e8e0
mov eax, dword [esp + 0xd4]
mov cl, byte [eax + 6]
mov eax, str.DISTINCT
test cl, 1
je 0x47e8e5
mov eax, str.GROUP_BY
push eax
push esi
call fcn.0047fc80
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 0x47e93b
mov edx, dword [esp + 0x90]
mov dword [esp + 0x14], ecx
add edx, 0xc
cmp dword [edx], eax
jl 0x47e92d
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 0x47e91f
mov eax, dword [esp + 0x24]
push eax
push esi
call fcn.00470270
push esi
mov dword [esp + 0x50], eax
call fcn.0047f0d0
mov ecx, dword [esp + 0x50]
push 0
push ecx
push ebx
push esi
call fcn.0046fb90
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.0046cc70
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 0x47ea2f
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 0x47ea10
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.0046f950
mov ecx, dword [esp + 0x34]
add esp, 0x18
cmp ecx, eax
je 0x47e9f7
push ecx
push eax
push 0xf
push ebp
call fcn.0046cc70
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 0x47e9b6
push esi
call fcn.0046ccb0
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.0046c2d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x98]
push ecx
push edx
push 0x60
push ebp
call fcn.0046cc70
mov eax, dword [esp + 0x3c]
push eax
push esi
call fcn.0046cce0
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x74]
push ecx
push edx
push esi
call fcn.004702a0
mov eax, dword [esp + 0x6c]
push eax
call fcn.0048a380
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.0046ccb0
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.0046c2d0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x98]
push eax
push ecx
push 0x46
push ebp
call fcn.0046cc70
push esi
mov byte [esp + 0xa9], 1
call fcn.0047f0d0
add esp, 0x2c
push ebp
call fcn.0046d790
push esi
mov dword [esp + 0x24], eax
call fcn.0047f0d0
mov eax, dword [esp + 0x48]
add esp, 8
test eax, eax
je 0x47eb11
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x80]
push edx
push eax
push 0x3e
push ebp
call fcn.0046cc70
add esp, 0x10
mov eax, dword [ebx]
mov dword [esp + 0x18], 0
test eax, eax
jle 0x47eb8c
mov eax, dword [esp + 0x40]
test eax, eax
je 0x47eb59
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.0046c2d0
mov eax, dword [esp + 0x2c]
add esp, 0x14
test eax, eax
jne 0x47eb7d
push 0x20
push ebp
call fcn.0046d1a0
add esp, 8
jmp 0x47eb7d
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.0046d9d0
add esp, 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x47eb1f
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.0046c290
push ebp
call fcn.0046d790
mov dword [esp + 0x8c], eax
inc eax
push eax
push 0
push eax
push 0x19
push ebp
call fcn.0046c2d0
mov ecx, dword [ebx]
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x90]
push ecx
push edx
push eax
push esi
call fcn.0047f110
mov ecx, dword [esp + 0x80]
add esp, 0x44
push ecx
push edi
push 2
push ebp
call fcn.0046cc70
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x58]
push edx
push eax
push 0x78
push ebp
call fcn.0046cc70
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
push ecx
push edx
push 2
push ebp
call fcn.0046cc70
mov eax, dword [esp + 0x9c]
push eax
push ebp
call fcn.0046cc90
lea ecx, [esp + 0xb4]
push ecx
push esi
call fcn.00482170
mov edx, dword [esp + 0x8c]
add esp, 0x40
push edx
push 1
push 7
push ebp
call fcn.0046cc70
mov eax, dword [esp + 0x50]
add esp, 0x10
test eax, eax
je 0x47ec69
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x80]
push eax
push ecx
push 0x51
push ebp
call fcn.0046cc70
add esp, 0x10
jmp 0x47ec81
mov edx, dword [esp + 0x30]
push edx
call fcn.0048a380
mov eax, dword [esp + 0x68]
push eax
push ebp
call fcn.00460500
add esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
push edi
push 2
push ebp
call fcn.0046cc70
mov ecx, dword [esp + 0x44]
push ecx
push 0
push 1
push ebp
call fcn.0046cc70
push ebp
call fcn.0046d790
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x88], eax
push edx
push 1
push 7
push ebp
call fcn.0046cc70
push edi
push 3
push ebp
call fcn.0046d700
add esp, 0x40
push ebx
push ebp
call fcn.0046d770
push ebp
call fcn.0046d790
mov ecx, dword [esp + 0x58]
mov ebx, eax
lea eax, [ebx + 2]
push eax
push ecx
push 0x78
push ebp
call fcn.0046cc70
push edi
push 3
push ebp
call fcn.0046d700
lea edx, [esp + 0xa4]
push edx
push esi
call fcn.00482110
mov eax, dword [esp + 0x90]
inc ebx
push 8
push ebx
push eax
push esi
call fcn.0046fc00
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.0047f510
push edi
push 3
push ebp
call fcn.0046d700
mov eax, dword [esp + 0x84]
push eax
push ebp
call fcn.0046d770
lea ecx, [esp + 0xb8]
push ecx
push esi
call fcn.00482040
mov edx, dword [esp + 0x9c]
add esp, 0x44
push edx
push 3
push ebp
call fcn.0046d700
add esp, 0xc
jmp 0x47efca
mov ebx, dword [esp + 0xd4]
lea eax, [esp + 0x7c]
push eax
push ebx
mov dword [esp + 0x50], 0
call fcn.00481fd0
mov edi, eax
add esp, 8
test edi, edi
je 0x47eea3
mov ecx, dword [edi + 0x40]
mov edx, dword [esi]
push ecx
push edx
call fcn.004667b0
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.00475d40
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.004726c0
mov eax, dword [edi + 8]
add esp, 0x24
test eax, eax
je 0x47ee35
mov cl, byte [eax + 0x2e]
test cl, cl
jne 0x47ee0c
test ebx, ebx
je 0x47ee0a
mov edx, dword [eax + 0x24]
mov ecx, dword [ebx + 0x24]
cmp edx, ecx
jge 0x47ee0c
mov ebx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x47edf5
test ebx, ebx
je 0x47ee35
movsx eax, word [edi + 0x26]
cmp dword [ebx + 0x24], eax
jge 0x47ee35
mov ecx, dword [ebx + 0x28]
push ebx
push esi
mov dword [esp + 0x38], ecx
call fcn.00476150
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.0046c2d0
mov eax, dword [esp + 0x64]
add esp, 0x14
test eax, eax
je 0x47ee67
mov edx, eax
push 0xfffffffffffffff0
push edx
push 0xffffffffffffffff
push ebp
call fcn.00460550
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.0046cc70
mov eax, dword [esp + 0x5c]
push eax
push 0x2d
push ebp
call fcn.0046d700
push ebx
push edi
push esi
call fcn.00482380
mov ebx, dword [esp + 0xfc]
add esp, 0x28
jmp 0x47ef7f
push ebx
xor edi, edi
call fcn.00481f50
add esp, 4
mov byte [esp + 0x2f], al
test al, al
je 0x47eefb
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.00471cc0
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [esp + 0x48], edi
je 0x47eefb
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x38]
test cl, cl
jne 0x47eefb
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.00482040
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.00484b90
mov edi, eax
add esp, 0x24
test edi, edi
jne 0x47ef42
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x20]
push eax
push ecx
call fcn.004636d0
add esp, 8
jmp 0x47f03a
lea edx, [esp + 0x7c]
push edx
push esi
call fcn.00482170
add esp, 8
cmp word [edi + 8], 0
jbe 0x47ef68
mov eax, dword [edi + 0x18]
push eax
push 0
push 1
push ebp
call fcn.0046cc70
add esp, 0x10
push edi
call fcn.0048a380
lea ecx, [esp + 0x80]
push ecx
push esi
call fcn.00482110
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.0046fc00
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.0047f510
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x58]
push edx
push eax
call fcn.004636d0
add esp, 0x40
mov ecx, dword [esp + 0x34]
push ecx
push ebp
call fcn.0046d770
mov edi, dword [esp + 0xdc]
add esp, 8
cmp byte [esp + 0x71], 3
jne 0x47eff4
push str.DISTINCT
push esi
call fcn.0047fc80
add esp, 8
mov eax, dword [esp + 0x10]
test eax, eax
je 0x47f021
push str.ORDER_BY
push esi
call fcn.0047fc80
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.0047fcd0
add esp, 0x1c
mov edx, dword [esp + 0xc8]
push edx
push ebp
call fcn.0046d770
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 0x47f06e
mov ecx, dword [esp + 0xd8]
cmp byte [ecx], 5
jne 0x47f06e
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x38]
push edx
push eax
push esi
call fcn.0047fff0
add esp, 0xc
mov ecx, dword [esp + 0x90]
mov esi, dword [esp + 0x20]
push ecx
push esi
call fcn.00440050
mov edx, dword [esp + 0xa4]
push edx
push esi
call fcn.00440050
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