Function at 0x467550
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xdc
push ebp
mov ebp, dword [esp + 0xe4]
mov eax, dword [ebp + 0x200]
push esi
mov esi, dword [ebp]
mov dword [esp + 0xa8], eax
mov eax, dword [ebp + 0x204]
push edi
mov edi, dword [esp + 0xf0]
mov dword [ebp + 0x200], eax
add eax, 1
test edi, edi
mov dword [esp + 0x38], 1
mov dword [ebp + 0x204], eax
mov dword [esp + 0x24], esi
je 0x4675bd
cmp byte [esi + 0x40], 0
jne 0x4675bd
cmp dword [ebp + 0x44], 0
jne 0x4675bd
push 0
push 0
push 0
push 0x15
push ebp
call fcn.00481160
add esp, 0x14
test eax, eax
je 0x4675cc
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0xdc
ret
push 0x30
lea ecx, [esp + 0x80]
push 0
push ecx
call fcn.004f5b00
mov edx, dword [esp + 0x100]
add esp, 0xc
cmp byte [edx], 4
ja 0x467606
mov eax, dword [edi + 0x38]
push eax
push esi
call fcn.00478810
add esp, 8
and word [edi + 6], 0xfffe
mov dword [edi + 0x38], 0
push ebx
push 0
push edi
push ebp
call fcn.00466190
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x28]
mov eax, dword [edi]
add esp, 0xc
cmp dword [ebp + 0x44], 0
mov dword [esp + 0x18], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x50], eax
jne 0x468788
mov ecx, esi
cmp byte [ecx + 0x40], 0
jne 0x468788
movzx edx, byte [edi + 6]
shr edx, 2
and edx, 1
push ebp
mov dword [esp + 0x44], edx
call fcn.00464060
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [esp + 0x60], ebx
je 0x468788
mov ecx, dword [esp + 0x50]
cmp dword [ecx], 1
mov eax, dword [esp + 0xf8]
movzx eax, byte [eax]
jle 0x46768f
cmp eax, 6
je 0x46767f
cmp eax, 7
jne 0x46768f
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
push ebp
call fcn.0045aec0
jmp 0x468785
cmp dword [edi + 0x3c], 0
mov dword [esp + 0x24], 0
jne 0x46799a
mov edx, dword [esp + 0x34]
movzx eax, byte [edx]
cmp dword [esp + 0x24], eax
jge 0x46799a
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax*8]
mov eax, dword [edx + ecx*8 + 0x1c]
test eax, eax
lea esi, [edx + ecx*8 + 8]
mov dword [esp + 0x10], eax
je 0x46798b
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4676f3
test byte [esi + 0x24], 4
jne 0x46798b
push eax
mov eax, dword [esi + 0x1c]
push eax
push 0x11
push ebx
call fcn.00457ef0
add esp, 0x10
jmp 0x46798b
push edi
call fcn.00478170
add dword [ebp + 0x1fc], eax
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 6]
mov edx, dword [esp + 0x44]
shr eax, 2
and eax, 1
push eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
push edx
push eax
push ebp
mov eax, edi
call fcn.00466f80
add esp, 0x14
test eax, eax
je 0x46774c
cmp dword [esp + 0x38], 0
je 0x46773f
or word [edi + 6], 4
mov dword [esp + 0x40], 1
mov dword [esp + 0x24], 0xffffffff
jmp 0x467954
mov ecx, dword [esp + 0x34]
cmp byte [ecx], 1
jne 0x46788b
mov eax, 0x100
test word [edi + 6], ax
jne 0x46788b
mov edx, dword [esp + 0x28]
test word [edx + 0x3c], ax
jne 0x46788b
mov ecx, 1
add dword [ebp + 0x4c], ecx
mov eax, dword [ebp + 0x4c]
mov dword [esi + 0x1c], eax
add dword [ebp + 0x4c], ecx
mov eax, dword [ebp + 0x4c]
push 0xffffffffffffffff
push ebp
mov dword [esp + 0x24], eax
call fcn.0045f540
push 0x10
push ebx
call fcn.00457e40
mov ecx, dword [esi + 0x2c]
push ecx
push 0x37
push ebx
call fcn.00457e90
push 1
push ebx
mov dword [esp + 0x54], eax
call fcn.00458230
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x54]
push eax
push 0
push 0x17
push ebx
mov dword [esi + 0x18], edx
call fcn.00457ef0
push 1
push ebx
call fcn.00458230
mov eax, dword [esi + 0x1c]
mov cl, byte [ebp + 0x204]
mov dword [esp + 0xf4], eax
xor eax, eax
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0xf0]
push edx
push eax
mov byte [esp + 0xf8], 9
mov byte [esp + 0xf9], 0
push ebp
mov byte [esi + 0x28], cl
call fcn.00467550
mov edx, dword [esp + 0x58]
mov eax, dword [edx + 0x20]
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x78]
mov dword [ecx + 0x1c], eax
or dword [esi + 0x24], 4
mov ecx, dword [esp + 0x104]
add esp, 0x48
push ecx
push edx
push ebx
call fcn.004581f0
mov eax, dword [esp + 0xcc]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push ebx
call fcn.00458210
mov edx, dword [esp + 0x34]
push edx
push 1
push 0x17
push ebx
call fcn.00457ef0
mov eax, dword [esi + 0x1c]
push eax
push 0x14
push ebx
call fcn.00457e90
mov ecx, dword [esp + 0x64]
add ecx, 0xffffffff
push ecx
push ebx
call fcn.00458250
push ebp
call fcn.004795d0
add esp, 0x40
jmp 0x467954
add dword [ebp + 0x4c], 1
mov eax, dword [ebp + 0x4c]
push eax
push 0
push 0x17
push ebx
mov dword [esp + 0x30], 0
mov dword [esi + 0x1c], eax
call fcn.00457ef0
mov dword [esp + 0x48], eax
add eax, 1
add esp, 0x10
test byte [esi + 0x24], 2
mov dword [esi + 0x18], eax
jne 0x4678c8
push ebp
call fcn.00478c90
add esp, 4
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x10]
mov dl, byte [ebp + 0x204]
mov dword [esp + 0xb8], eax
xor eax, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xb4]
push eax
push ecx
mov byte [esp + 0xbc], 8
mov byte [esp + 0xbd], 0
push ebp
mov byte [esi + 0x28], dl
call fcn.00467550
mov eax, dword [esp + 0x1c]
mov edx, dword [esi + 0x10]
mov ecx, dword [eax + 0x20]
add esp, 0xc
cmp dword [esp + 0x20], 0
mov dword [edx + 0x1c], ecx
je 0x467933
mov edx, dword [esp + 0x20]
push edx
push ebx
call fcn.00458250
add esp, 8
mov eax, dword [esi + 0x1c]
push eax
push 0x12
push ebx
call fcn.00457e90
mov ecx, dword [esp + 0x44]
push eax
push ecx
push ebx
call fcn.004581d0
push ebp
call fcn.004795d0
add esp, 0x1c
mov edx, dword [esp + 0x28]
cmp byte [edx + 0x40], 0
jne 0x468788
push edi
call fcn.00478170
sub dword [ebp + 0x1fc], eax
mov ecx, dword [esp + 0xfc]
mov eax, dword [edi + 0x28]
add esp, 4
cmp byte [ecx], 4
mov dword [esp + 0x34], eax
jbe 0x46798b
mov edx, dword [edi + 0x38]
mov dword [esp + 0x18], edx
add dword [esp + 0x24], 1
cmp dword [edi + 0x3c], 0
je 0x4676a1
mov eax, dword [edi]
mov ecx, dword [edi + 0x2c]
mov edx, dword [edi + 0x34]
mov dword [esp + 0x50], eax
mov al, byte [edi + 6]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0x30]
and al, 1
cmp dword [edi + 0x3c], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x70], edx
mov byte [esp + 0x74], al
je 0x467a2d
cmp dword [edi + 0x44], 0
jne 0x467a01
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]
add edx, 1
test eax, eax
jne 0x4679d0
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x68]
test eax, eax
je 0x467a01
cmp edx, eax
jle 0x467a01
push str.too_many_terms_in_compound_SELECT
push ebp
call fcn.0045aec0
jmp 0x468785
mov ecx, dword [esp + 0xf8]
push ecx
mov ecx, edi
mov edx, ebp
call fcn.00466640
mov edx, dword [esp + 0xb4]
add esp, 4
pop ebx
pop edi
pop esi
mov dword [ebp + 0x200], edx
pop ebp
add esp, 0xdc
ret
mov esi, dword [esp + 0x18]
push 0xffffffffffffffff
push esi
push ecx
call fcn.004793b0
add esp, 0xc
test eax, eax
jne 0x467a51
mov eax, dword [esp + 0x28]
test byte [eax + 0x3c], 4
jne 0x467a51
xor esi, esi
mov dword [esp + 0x18], esi
mov cl, byte [edi + 6]
and cl, 5
cmp cl, 1
jne 0x467b5a
mov edx, dword [edi]
push 0xffffffffffffffff
push edx
push esi
call fcn.004793b0
add esp, 0xc
test eax, eax
jne 0x467b5a
mov ecx, dword [esp + 0x28]
and word [edi + 6], 0xfffe
push eax
mov eax, dword [edi]
push eax
push ecx
call fcn.004785a0
add esp, 0xc
mov dword [edi + 0x30], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 0
or esi, 0xffffffff
mov dword [esp + 0x20], esi
mov edx, dword [esp + 0xf8]
cmp byte [edx], 8
jne 0x467ac5
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
mov eax, dword [edx + 4]
push ecx
push eax
push 0x35
push ebx
call fcn.00457ef0
add esp, 0x10
push ebx
call fcn.00457f10
push eax
mov dword [esp + 0xf0], eax
push edi
mov eax, ebp
mov dword [edi + 0x20], 0xffffffff
mov dword [edi + 0x24], DirectSoundEnumerateW
call fcn.004640a0
add esp, 0xc
cmp dword [edi + 8], 0
jne 0x467b08
test esi, esi
jl 0x467b08
push esi
push ebx
call fcn.004585e0
add esp, 8
mov byte [eax], 0x36
or word [edi + 6], 0x40
test byte [edi + 6], 1
je 0x467ba2
mov eax, dword [ebp + 0x48]
mov esi, eax
add eax, 1
mov dword [ebp + 0x48], eax
mov eax, dword [edi]
push 0xfffffffffffffffa
push ebp
xor ecx, ecx
mov dword [esp + 0x80], esi
call fcn.00463430
add esp, 4
push eax
push 0
push 0
push esi
push 0x35
push ebx
call fcn.0045a660
push 8
push ebx
mov dword [esp + 0xa0], eax
call fcn.00458230
add esp, 0x24
mov byte [esp + 0x75], 3
jmp 0x467ba7
test esi, esi
je 0x467a9c
mov esi, dword [esp + 0x18]
push ebp
xor ecx, ecx
mov eax, esi
call fcn.00463430
mov edx, dword [ebp + 0x48]
push 0xfffffffffffffffa
push eax
mov dword [esi + 4], edx
add dword [ebp + 0x48], 1
mov eax, dword [esi]
mov ecx, dword [esi + 4]
push 0
add eax, 2
push eax
push ecx
push 0x35
push ebx
call fcn.0045a660
mov esi, eax
add esp, 0x20
mov dword [esp + 0x20], eax
mov dword [edi + 0x18], esi
jmp 0x467aa3
mov byte [esp + 0x75], 0
mov esi, dword [esp + 0x10]
xor edx, edx
cmp dword [esp + 0x40], edx
jne 0x467cbd
cmp esi, edx
jne 0x467cbd
mov cl, byte [esp + 0x74]
mov eax, dword [esp + 0x18]
neg cl
push edx
mov edx, dword [edi]
sbb ecx, ecx
and ecx, 0x400
push ecx
mov ecx, dword [esp + 0x54]
push edx
mov edx, dword [esp + 0x40]
push eax
push ecx
push edx
push ebp
call fcn.004938c0
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x468788
push esi
call fcn.0048d560
add esp, 4
cmp edx, dword [edi + 0x24]
ja 0x467c18
jb 0x467c09
cmp eax, dword [edi + 0x20]
jae 0x467c18
push esi
call fcn.0048d560
add esp, 4
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], edx
cmp byte [esp + 0x74], 0
je 0x467c39
push esi
call fcn.0048d580
add esp, 4
test eax, eax
je 0x467c39
push esi
call fcn.0048d580
add esp, 4
mov byte [esp + 0x75], al
cmp dword [esp + 0x18], 0
je 0x467c55
push esi
call fcn.0048d590
add esp, 4
test eax, eax
je 0x467c55
mov dword [esp + 0x18], 0
cmp dword [esp + 0x20], 0
jl 0x467c78
cmp dword [esp + 0x18], 0
jne 0x467c78
mov eax, dword [esp + 0x20]
push eax
push ebx
call fcn.004583d0
add esp, 8
mov dword [edi + 0x18], 0xffffffff
push esi
call fcn.0048d5b0
add esp, 4
push eax
push esi
call fcn.0048d5a0
mov ecx, dword [esp + 0x100]
add esp, 4
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x5c]
lea edx, [esp + 0x80]
push edx
push eax
push 0xffffffffffffffff
push ecx
push edi
push ebp
call fcn.00462d00
push esi
call fcn.00490ce0
add esp, 0x28
jmp 0x4686cf
cmp esi, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x5c], edx
je 0x467d11
mov ecx, dword [edi]
mov eax, dword [ecx]
cmp eax, edx
mov ecx, dword [ecx + 8]
jle 0x467ce4
add ecx, 0x16
mov word [ecx], dx
sub eax, 1
add ecx, 0x18
cmp eax, edx
jg 0x467cd7
mov eax, dword [esi]
cmp eax, edx
mov ecx, dword [esi + 8]
jle 0x467cfd
add ecx, 0x16
mov word [ecx], dx
sub eax, 1
add ecx, 0x18
cmp eax, edx
jg 0x467cf0
cmp dword [edi + 0x24], edx
mov eax, 0x64
ja 0x467d0c
cmp dword [edi + 0x20], eax
jbe 0x467d1b
mov dword [edi + 0x20], eax
jmp 0x467d18
mov dword [edi + 0x20], 1
mov dword [edi + 0x24], edx
push ebx
call fcn.00457f10
mov edx, dword [esp + 0x38]
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd0], edx
mov edx, dword [ebp + 0x4c]
add edx, 1
add esp, 4
cmp esi, eax
lea ecx, [esp + 0x80]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x90], edx
je 0x467d98
mov eax, dword [esi]
add eax, 1
mov ecx, dword [esp + 0x50]
push ecx
lea edx, [esp + 0xcc]
push edx
mov dword [esp + 0x94], eax
mov dword [esp + 0xa0], esi
call fcn.0047a2c0
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0xd4]
push ecx
call fcn.0047a2c0
mov eax, dword [esp + 0x80]
add esp, 0x10
test eax, eax
je 0x467de9
push eax
lea edx, [esp + 0xcc]
push edx
call fcn.0047a270
add esp, 8
cmp dword [esp + 0xac], 0
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x24], 0
jle 0x467e55
xor esi, esi
jmp 0x467e10
mov ecx, dword [esp + 0xa8]
or byte [esp + 0xe4], 8
mov edx, dword [ecx + esi]
mov eax, dword [edx + 0x14]
push eax
lea ecx, [esp + 0xcc]
push ecx
call fcn.0047a2c0
mov eax, dword [esp + 0x2c]
and byte [esp + 0xec], 0xf7
add eax, 1
add esp, 8
add esi, 0x10
cmp eax, dword [esp + 0xac]
mov dword [esp + 0x24], eax
jl 0x467e10
mov edx, dword [ebp + 0x4c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x94], edx
cmp byte [eax + 0x40], 0
jne 0x468788
mov esi, dword [esp + 0x10]
test esi, esi
je 0x468426
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x84], eax
add eax, 1
mov dword [ebp + 0x48], eax
push ebp
xor ecx, ecx
mov eax, esi
call fcn.00463430
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
push 0xfffffffffffffffa
push eax
push 0
push ecx
push edx
push 0x36
push ebx
mov dword [esp + 0x78], eax
call fcn.0045a660
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0x4c]
add eax, 1
mov dword [esp + 0x68], eax
add eax, 1
mov dword [esp + 0x84], eax
add eax, 1
push ebx
mov dword [ebp + 0x4c], eax
call fcn.00457f10
add dword [ebp + 0x4c], 1
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 0x4c]
push ebx
mov dword [esp + 0x44], eax
call fcn.00457f10
mov edx, dword [esi]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x4c]
lea ecx, [eax + 1]
add eax, edx
mov dword [ebp + 0x4c], eax
mov edx, dword [esi]
mov dword [esp + 0x60], ecx
lea ecx, [eax + 1]
add edx, eax
mov eax, dword [esp + 0x8c]
push eax
push 0
push 0x17
push ebx
mov dword [esp + 0xa4], ecx
mov dword [ebp + 0x4c], edx
call fcn.00457ef0
mov ecx, dword [esp + 0x80]
push ecx
push 0
push 0x17
push ebx
call fcn.00457ef0
mov eax, dword [esp + 0x80]
mov edx, dword [esi]
add esp, 0x48
lea ecx, [edx + eax - 1]
push ecx
push eax
push 0
push 0x1a
push ebx
call fcn.00457de0
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x30]
push edx
push eax
push 0x11
push ebx
call fcn.00457ef0
mov ecx, dword [esp + 0x70]
push 0
push 0x100
push 0
push esi
mov edx, dword [esp + 0x68]
push ecx
push edx
push ebp
call fcn.004938c0
add esp, 0x40
test eax, eax
mov dword [esp + 0x4c], eax
je 0x468788
push eax
call fcn.0048d590
add esp, 4
test eax, eax
je 0x467fab
mov dword [esp + 0x20], 0
jmp 0x46817c
cmp byte [esp + 0x74], 0
je 0x467fbd
test byte [edi + 6], 1
mov eax, str.DISTINCT
je 0x467fc2
mov eax, str.GROUP_BY
mov esi, ebp
call fcn.004634e0
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx]
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x3c], esi
add esi, 1
test edx, edx
mov dword [esp + 0x20], 1
mov eax, esi
mov dword [esp + 0x54], esi
mov ecx, esi
jle 0x468016
mov edi, dword [esp + 0x9c]
add edi, 0xc
jmp 0x468000
cmp dword [edi], ecx
jl 0x46800a
add eax, 1
add ecx, 1
add edi, 0x18
sub edx, 1
jne 0x468000
mov dword [esp + 0x54], eax
push eax
push ebp
call fcn.00479570
mov edi, eax
push ebp
mov dword [esp + 0x68], edi
call fcn.00479150
mov edx, dword [esp + 0x1c]
push 0
push edi
push edx
push ebp
call fcn.0047a710
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0xa0]
lea ecx, [edi + eax]
push ecx
push edx
push 0x42
push ebx
call fcn.00457ef0
add esp, 0x2c
cmp dword [esp + 0xa0], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], 0
jle 0x4680df
mov eax, edi
mov ecx, esi
lea edi, [eax + ecx]
mov eax, dword [esp + 0x9c]
xor esi, esi
lea esp, [esp]
mov edx, dword [esp + 0x40]
cmp dword [eax + esi + 0xc], edx
jl 0x4680c4
mov ecx, dword [eax + esi + 4]
mov edx, dword [eax + esi + 8]
mov eax, dword [eax + esi]
push 0
push edi
push ecx
push edx
push eax
push ebp
call fcn.004790a0
add esp, 0x18
cmp edi, eax
je 0x4680b5
push edi
push eax
push 0x1f
push ebx
call fcn.00457ef0
add esp, 0x10
add dword [esp + 0x40], 1
mov eax, dword [esp + 0x9c]
add edi, 1
mov ecx, dword [esp + 0x24]
add ecx, 1
add esi, 0x18
cmp ecx, dword [esp + 0xa0]
mov dword [esp + 0x24], ecx
jl 0x468080
mov edi, dword [esp + 0x5c]
push ebp
call fcn.00479500
mov ecx, dword [esp + 0x58]
mov esi, eax
push esi
push ecx
push edi
push 0x2d
push ebx
call fcn.00457de0
mov edx, dword [esp + 0x9c]
push esi
push edx
push 0x68
push ebx
call fcn.00457ef0
push esi
push ebp
call fcn.00479530
mov esi, dword [esp + 0x84]
push esi
push edi
push ebp
call fcn.004795a0
mov eax, dword [esp + 0x88]
push eax
call fcn.00490ce0
mov edi, dword [ebp + 0x48]
add esp, 0x40
lea ecx, [edi + 1]
push ebp
mov dword [esp + 0x58], edi
mov dword [esp + 0x8c], edi
mov dword [ebp + 0x48], ecx
call fcn.00479500
push esi
push eax
push edi
push 0x37
push ebx
mov dword [esp + 0x74], eax
call fcn.00457de0
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x9c]
push edx
push eax
push 0x65
push ebx
call fcn.00457ef0
push ebp
mov byte [esp + 0xad], 1
call fcn.00479150
add esp, 0x2c
push ebx
call fcn.004580e0
push ebp
mov dword [esp + 0x44], eax
call fcn.00479150
add esp, 8
cmp dword [esp + 0x20], 0
je 0x4681ae
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x84]
push ecx
push edx
push 0x4b
push ebx
call fcn.00457ef0
add esp, 0x10
mov eax, dword [esp + 0x10]
xor esi, esi
cmp dword [eax], esi
jle 0x46821b
mov edi, dword [esp + 0x6c]
lea esp, [esp]
cmp dword [esp + 0x20], 0
je 0x4681ed
mov edx, dword [esp + 0x54]
lea ecx, [esi + edi]
push ecx
push esi
push edx
push 0x2b
push ebx
call fcn.00457de0
add esp, 0x14
test esi, esi
jne 0x468210
push 0x20
push ebx
call fcn.00458230
add esp, 8
jmp 0x468210
mov edx, dword [esp + 0x10]
lea eax, [esi + edi]
push eax
mov byte [esp + 0x84], 1
mov eax, dword [edx + 8]
lea ecx, [esi + esi*2]
mov ecx, dword [eax + ecx*8]
push ecx
push ebp
call fcn.004792f0
add esp, 0xc
mov edx, dword [esp + 0x10]
add esi, 1
cmp esi, dword [edx]
jl 0x4681c0
mov eax, dword [esp + 0x58]
test eax, eax
je 0x468226
add dword [eax], 1
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov edi, dword [esp + 0x38]
push 0xfffffffffffffffa
push eax
mov eax, dword [esp + 0x74]
push edx
push eax
push edi
push 0x26
push ebx
call fcn.0045a660
push ebx
call fcn.004580e0
mov esi, eax
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x27
push ebx
call fcn.00457de0
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [esp + 0xa0]
push edx
push edi
push eax
push ebp
call fcn.004791b0
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0xa8]
add esp, 0x44
push ecx
lea eax, [edi + 1]
push eax
push 0x11
push ebx
call fcn.00457ef0
mov edx, dword [esp + 0x40]
push edx
push edi
push 0x80
push ebx
call fcn.00457ef0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push 0x11
push ebx
call fcn.00457ef0
push esi
push ebx
call fcn.00458250
lea edx, [esp + 0xb8]
push edx
mov esi, ebp
call fcn.004662e0
mov eax, dword [esp + 0x84]
push eax
push 1
push 0x17
push ebx
call fcn.00457ef0
add esp, 0x4c
cmp dword [esp + 0x20], 0
je 0x468300
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x84]
push ecx
push edx
push 5
push ebx
call fcn.00457ef0
add esp, 0x10
jmp 0x468318
mov eax, dword [esp + 0x4c]
push eax
call fcn.00490ce0
mov ecx, dword [esp + 0x6c]
push ecx
push ebx
call fcn.004583d0
add esp, 0xc
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x60]
push edx
lea ebx, [edi + 1]
push ebx
push 0x11
push esi
mov dword [esp + 0x4c], ebx
call fcn.00457ef0
mov eax, dword [esp + 0x40]
push eax
push 0
push 0x10
push esi
call fcn.00457ef0
push esi
call fcn.004580e0
push edi
push 1
push 0x17
push esi
mov dword [esp + 0x9c], eax
call fcn.00457ef0
push ebx
push 0x12
push esi
call fcn.00457e90
mov ecx, dword [esp + 0x84]
add esp, 0x40
push ecx
push esi
call fcn.00457f60
push esi
call fcn.004580e0
mov edi, eax
mov eax, dword [esp + 0x54]
lea edx, [edi + 2]
push edx
push eax
push 0x80
push esi
call fcn.00457ef0
push ebx
push 0x12
push esi
call fcn.00457e90
lea ebx, [esp + 0xa8]
mov eax, ebp
call fcn.00466290
mov ecx, dword [esp + 0x98]
push 8
add edi, 1
push edi
push ecx
push ebp
call fcn.0047c410
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x130]
push edx
mov edx, dword [esp + 0x54]
push edi
push eax
mov eax, dword [esp + 0x138]
lea ecx, [esp + 0xb8]
push ecx
mov ecx, dword [eax]
push edx
push 0xffffffffffffffff
push ecx
push eax
push ebp
call fcn.00462d00
mov edx, dword [esp + 0x98]
add esp, 0x5c
push edx
push 0x12
push esi
call fcn.00457e90
mov eax, dword [esp + 0x38]
push eax
push esi
call fcn.00457f60
mov edi, ebx
mov ebx, ebp
call fcn.004661f0
mov ecx, dword [esp + 0x30]
push ecx
push 0x12
push esi
call fcn.00457e90
add esp, 0x20
jmp 0x4686b6
lea edx, [esp + 0x80]
mov eax, edi
mov dword [esp + 0x44], 0
call fcn.00465460
mov esi, eax
test esi, esi
je 0x468569
mov edx, dword [esi + 0x44]
mov eax, dword [ebp]
push edx
push eax
call fcn.00442960
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0x50], ecx
add ecx, 1
mov dword [ebp + 0x48], ecx
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x20]
push eax
push ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x68], ecx
call fcn.0045f540
mov edx, dword [esi]
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x48]
push edx
push 0
push eax
push ecx
push ebp
call fcn.0045d420
add esp, 0x24
test byte [esi + 0x2c], 0x20
je 0x4684a6
push esi
call fcn.0045e0a0
add esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
test eax, eax
mov edx, dword [esp + 0x1c]
je 0x4684de
test byte [eax + 0x38], 4
jne 0x4684d3
movzx ecx, word [eax + 0x30]
cmp cx, word [esi + 0x2a]
jge 0x4684d3
cmp dword [eax + 0x24], 0
jne 0x4684d3
test edx, edx
je 0x4684d1
cmp cx, word [edx + 0x30]
jge 0x4684d3
mov edx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4684b1
mov dword [esp + 0x1c], edx
test edx, edx
je 0x4684fb
mov eax, dword [esp + 0x1c]
mov edx, dword [eax + 0x2c]
push eax
push ebp
mov dword [esp + 0x60], edx
call fcn.0045f920
add esp, 8
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x48]
push 1
push eax
push ecx
push edx
push 0x32
push ebx
call fcn.0045a7a0
add esp, 0x18
cmp dword [esp + 0x2c], 0
je 0x468530
mov eax, dword [esp + 0x2c]
push 0xfffffffffffffffa
push eax
push 0xffffffffffffffff
push ebx
call fcn.00458470
add esp, 0x10
mov ecx, dword [esp + 0xa8]
mov edx, dword [ecx + 8]
mov eax, dword [esp + 0x48]
push edx
push eax
push 0x2e
push ebx
call fcn.00457ef0
mov ecx, dword [esp + 0x58]
push ecx
push 0x38
push ebx
call fcn.00457e90
mov eax, dword [esp + 0x38]
push esi
mov esi, ebp
call fcn.00466530
add esp, 0x20
jmp 0x468669
xor esi, esi
cmp dword [edi + 0x34], esi
mov dword [esp + 0x2c], esi
mov byte [esp + 0x17], 0
jne 0x4685d0
lea edi, [esp + 0x2c]
lea eax, [esp + 0x80]
call fcn.004653e0
test al, al
mov byte [esp + 0x17], al
je 0x4685cc
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push esi
push edx
push edi
call fcn.004785a0
mov esi, eax
add esp, 0xc
test esi, esi
mov dword [esp + 0x44], esi
je 0x4685d0
cmp byte [edi + 0x40], 0
jne 0x4685d0
cmp byte [esp + 0x17], 1
mov ecx, dword [esi + 8]
setne al
mov byte [ecx + 0xc], al
mov edx, dword [esi + 8]
mov eax, dword [edx]
mov byte [eax], 0x9a
jmp 0x4685d0
mov esi, dword [esp + 0x2c]
lea edi, [esp + 0x80]
mov ebx, ebp
call fcn.004661f0
movzx cx, byte [esp + 0x17]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
push 0
push ecx
push 0
push esi
push edx
push eax
push ebp
call fcn.004938c0
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x468617
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x28]
push ecx
push edx
call fcn.00478810
jmp 0x468785
lea eax, [esp + 0x80]
push eax
mov esi, ebp
call fcn.004662e0
push edi
call fcn.0048d590
add esp, 8
test eax, eax
je 0x46864b
push edi
call fcn.0048d5b0
mov ecx, dword [esp + 0x64]
push eax
push 0
push 0x10
push ecx
call fcn.00457ef0
add esp, 0x14
push edi
call fcn.00490ce0
add esp, 4
lea ebx, [esp + 0x80]
mov eax, ebp
call fcn.00466290
mov edi, dword [esp + 0xf4]
mov esi, dword [esp + 0x30]
mov edx, dword [esp + 0x70]
push 8
push esi
push edx
push ebp
mov dword [esp + 0x28], 0
call fcn.0047c410
mov eax, dword [esp + 0x108]
mov ecx, dword [edi]
push esi
push esi
push eax
push 0
push 0
push 0xffffffffffffffff
push ecx
push edi
push ebp
call fcn.00462d00
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x5c]
push edx
push eax
call fcn.00478810
mov esi, dword [esp + 0x9c]
add esp, 0x3c
mov ecx, dword [esp + 0x30]
push ecx
push esi
call fcn.00457f60
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0xfc]
add esp, 8
cmp byte [esp + 0x75], 3
jne 0x468711
cmp byte [ebp + 0x1f1], 2
jne 0x468711
mov edx, dword [ebp]
mov esi, dword [ebp + 8]
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push edx
call fcn.0043f200
push 0xffffffffffffffff
push eax
mov eax, dword [ebp + 0x200]
push 0
push 0
push eax
push 0x98
push esi
call fcn.0045a660
add esp, 0x28
cmp dword [esp + 0x18], 0
je 0x46876f
cmp byte [ebp + 0x1f1], 2
jne 0x468753
mov ecx, dword [ebp]
mov esi, dword [ebp + 8]
push str.ORDER_BY
push str.USE_TEMP_B_TREE_FOR__s
push ecx
call fcn.0043f200
mov edx, dword [ebp + 0x200]
push 0xffffffffffffffff
push eax
push 0
push 0
push edx
push 0x98
push esi
call fcn.0045a660
add esp, 0x28
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
push eax
push edx
push edi
mov esi, ebx
mov edi, ebp
call fcn.004635a0
add esp, 0xc
mov eax, dword [esp + 0xe8]
push eax
push ebx
call fcn.00457f60
mov dword [esp + 0x44], 0
add esp, 8
mov edi, dword [esp + 0x3c]
test edi, edi
mov ecx, dword [esp + 0xb0]
mov dword [ebp + 0x200], ecx
jne 0x4687bc
mov edx, dword [esp + 0xf8]
cmp byte [edx], 5
jne 0x4687bc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
push eax
push ecx
push ebp
call fcn.00463b20
add esp, 0xc
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0x28]
push edx
push esi
call fcn.0043f760
mov eax, dword [esp + 0xb0]
push eax
push esi
call fcn.0043f760
add esp, 0x10
pop ebx
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 0xdc
ret