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

Disassembly:
sub esp, 0xd4
push ebx
mov ebx, dword [esp + 0xe0]
push ebp
mov ebp, dword [esp + 0xe0]
mov eax, dword [ebp + 0x228]
mov dword [esp + 0x98], eax
mov eax, dword [ebp + 0x22c]
push edi
mov edi, dword [ebp]
mov dword [ebp + 0x228], eax
inc eax
mov dword [esp + 0x54], 1
mov dword [ebp + 0x22c], eax
mov dword [esp + 0x28], edi
test ebx, ebx
je 0x46da6c
cmp byte [edi + 0x1e], 0
jne 0x46da6c
cmp dword [ebp + 0x40], 0
jne 0x46da6c
push 0
push 0
push 0
push 0x15
mov eax, ebp
call fcn.00441440
add esp, 0x10
test eax, eax
je 0x46da7b
pop edi
pop ebp
mov eax, 1
pop ebx
add esp, 0xd4
ret
push 0x30
lea ecx, [esp + 0x70]
push 0
push ecx
call fcn.00477c40
mov edx, dword [esp + 0xf8]
add esp, 0xc
cmp byte [edx], 4
ja 0x46dab4
mov eax, dword [ebx + 0x18]
push eax
call fcn.00433c40
mov ecx, 0xfffe
add esp, 4
and word [ebx + 6], cx
mov dword [ebx + 0x18], 0
push esi
push 0
push ebx
push ebp
call fcn.0046d9a0
mov edx, dword [ebx + 0x18]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx]
add esp, 0xc
cmp dword [ebp + 0x40], 0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x20], ecx
jne 0x46eb02
mov edx, edi
cmp byte [edx + 0x1e], 0
jne 0x46eb02
movzx eax, word [ebx + 6]
shr eax, 2
and eax, 1
mov edi, ebp
mov dword [esp + 0x24], eax
call fcn.004435d0
mov esi, eax
mov dword [esp + 0x28], esi
test esi, esi
je 0x46eb02
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [esp + 0xf0]
push ecx
call fcn.00442c50
add esp, 4
test eax, eax
jne 0x46eb02
mov dword [esp + 0x30], eax
cmp dword [ebx + 0x1c], eax
jne 0x46dd07
lea esp, [esp]
mov ecx, dword [esp + 0x4c]
movsx edx, word [ecx]
cmp eax, edx
jge 0x46dd07
shl eax, 6
lea edi, [eax + ecx + 8]
mov eax, dword [edi + 0x10]
mov dword [esp + 0x18], eax
test eax, eax
je 0x46dcf4
mov eax, dword [edi + 0x14]
test eax, eax
je 0x46db82
mov ecx, dword [edi + 0x18]
push esi
mov edx, 2
call fcn.0043a030
add esp, 4
jmp 0x46dcf4
mov eax, ebx
call fcn.00433b20
add dword [ebp + 0x21c], eax
mov eax, dword [esp + 0x18]
movzx eax, word [eax + 6]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
shr eax, 2
and eax, 1
push eax
push ecx
push edx
mov dword [esp + 0x44], eax
push ebp
mov eax, ebx
call fcn.004496e0
add esp, 0x10
test eax, eax
je 0x46dbdc
cmp dword [esp + 0x38], 0
je 0x46dbcf
or word [ebx + 6], 4
mov dword [esp + 0x24], 1
mov dword [esp + 0x30], 0xffffffff
jmp 0x46dcbf
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
xor ecx, ecx
push esi
lea edx, [ecx + 7]
mov dword [esp + 0x48], 0
mov dword [edi + 0x18], eax
call fcn.0043a030
mov dword [esp + 0x18], eax
inc eax
add esp, 4
cmp byte [edi + 0x1e], 0
mov dword [edi + 0x14], eax
jne 0x46dc2a
cmp dword [ebp + 0x1ac], 0
jne 0x46dc2a
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
push esi
mov ecx, 0x1a
call fcn.0043a010
add esp, 4
mov dword [esp + 0x44], eax
mov edx, dword [edi + 0x20]
push 9
lea eax, [esp + 0xd8]
call fcn.00435290
mov edx, dword [esp + 0x1c]
mov al, byte [ebp + 0x22c]
lea ecx, [esp + 0xd8]
push ecx
push edx
push ebp
mov byte [edi + 0x1f], al
call fcn.0046da00
fnstcw word [esp + 0x20]
mov eax, dword [esp + 0x28]
fld qword [eax + 0x48]
movzx eax, word [esp + 0x20]
mov edx, dword [edi + 0xc]
or eax, 0xc00
mov dword [esp + 0x48], eax
add esp, 0x10
cmp dword [esp + 0x44], 0
fldcw word [esp + 0x38]
fistp qword [esp + 0xa4]
mov ecx, dword [esp + 0xa4]
mov dword [edx + 0x18], ecx
fldcw word [esp + 0x10]
je 0x46dca1
mov eax, dword [esp + 0x44]
mov ecx, esi
call fcn.00432b40
mov eax, dword [edi + 0x18]
push esi
mov ecx, 3
call fcn.0043a010
mov edx, eax
mov eax, dword [esp + 0x18]
add esp, 4
mov ecx, esi
call fcn.00432af0
mov eax, dword [esp + 0x2c]
cmp byte [eax + 0x1e], 0
jne 0x46eb02
mov eax, ebx
call fcn.00433b20
sub dword [ebp + 0x21c], eax
mov edx, dword [esp + 0xf0]
cmp byte [edx], 4
mov ecx, dword [ebx + 8]
mov dword [esp + 0x4c], ecx
jbe 0x46dcf4
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x30]
inc eax
cmp dword [ebx + 0x1c], 0
mov dword [esp + 0x30], eax
je 0x46db40
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx]
mov edx, dword [ebx + 0xc]
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x38], eax
movzx eax, word [ebx + 6]
and eax, 1
cmp dword [ebx + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x50], eax
je 0x46dd9e
cmp dword [ebx + 0x24], 0
jne 0x46dd73
xor ecx, ecx
xor edx, edx
mov eax, ebx
nop
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
mov ecx, eax
mov eax, dword [eax + 0x1c]
inc edx
test eax, eax
jne 0x46dd40
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + 0x58]
test eax, eax
je 0x46dd73
cmp edx, eax
jle 0x46dd73
push str.too_many_terms_in_compound_SELECT
mov edi, ebp
call fcn.0043e7b0
add esp, 4
jmp 0x46eb02
mov edx, dword [esp + 0xf0]
push edx
push ebx
mov eax, ebp
call fcn.004540a0
mov ecx, dword [esp + 0xa8]
add esp, 8
pop esi
pop edi
mov dword [ebp + 0x228], ecx
pop ebp
pop ebx
add esp, 0xd4
ret
mov edx, dword [esp + 0x1c]
push edx
call fcn.004341c0
add esp, 4
test eax, eax
jne 0x46ddc1
mov eax, dword [esp + 0x2c]
test byte [eax + 0xc], 0x20
jne 0x46ddc1
mov dword [esp + 0x1c], 0
mov cl, byte [ebx + 6]
and cl, 5
cmp cl, 1
jne 0x46debd
mov edx, dword [ebx]
mov edi, dword [esp + 0x1c]
push edx
call fcn.004341c0
add esp, 4
test eax, eax
jne 0x46debd
mov ecx, dword [ebx]
mov edx, dword [esp + 0x2c]
push 0
push ecx
mov eax, 0xfffe
and word [ebx + 6], ax
push edx
call fcn.0043afe0
add esp, 0xc
mov dword [ebx + 0x10], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], 0
or edi, 0xffffffff
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0xf0]
cmp byte [ecx], 9
jne 0x46de3b
mov edx, dword [esp + 0x20]
mov eax, dword [edx]
mov ecx, dword [ecx + 4]
push esi
mov edx, 0x2a
call fcn.0043a030
add esp, 4
mov eax, esi
call fcn.0043a050
fld qword [0x4a2bd8]
push eax
fstp qword [ebx + 0x48]
mov dword [esp + 0xa8], eax
push ebx
mov eax, ebp
call fcn.00443600
add esp, 8
cmp dword [ebx + 0x30], 0
jne 0x46de79
test edi, edi
jl 0x46de79
mov eax, edi
mov ecx, esi
call fcn.00432b80
mov byte [eax], 0x2b
or word [ebx + 6], 0x40
test byte [ebx + 6], 1
je 0x46df03
mov edi, dword [ebp + 0x44]
lea eax, [edi + 1]
mov dword [ebp + 0x44], eax
mov ecx, dword [ebx]
push ecx
push ebp
mov dword [esp + 0x68], edi
call fcn.0044f670
push 0xfffffffffffffff0
push eax
mov edx, edi
push 0x2a
xor eax, eax
xor ecx, ecx
mov edi, esi
call fcn.004400c0
mov dword [esp + 0x28], eax
add esp, 0x14
mov dl, 0x10
mov eax, esi
call fcn.00432b20
jmp 0x46df0e
cmp dword [esp + 0x1c], 0
je 0x46de11
mov edi, dword [esp + 0x1c]
push edi
push ebp
call fcn.0044f670
mov ecx, dword [ebp + 0x44]
mov dword [edi + 8], ecx
inc dword [ebp + 0x44]
mov ecx, dword [edi]
mov edx, dword [edi + 8]
push 0xfffffffffffffff0
push eax
add ecx, 2
push 0x2a
xor eax, eax
mov edi, esi
call fcn.004400c0
add esp, 0x14
mov dword [esp + 0x18], eax
mov dword [ebx + 0x40], eax
mov edi, eax
jmp 0x46de18
or eax, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x60], eax
cmp dword [esp + 0x24], 0
mov edi, dword [esp + 0x10]
jne 0x46e122
test edi, edi
jne 0x46e122
cmp dword [esp + 0x50], edi
je 0x46df2f
mov eax, dword [ebx]
jmp 0x46df31
xor eax, eax
mov ecx, dword [esp + 0x4c]
push 0
push eax
mov eax, dword [esp + 0x48]
lea edx, [esp + 0x24]
push edx
push eax
push ecx
push ebp
call fcn.0046a670
mov edi, eax
add esp, 0x18
mov dword [esp + 0x40], edi
test edi, edi
je 0x46eb02
fld qword [ebx + 0x48]
fcomp qword [edi + 0x30]
fnstsw ax
test ah, 0x41
jne 0x46df6d
fld qword [edi + 0x30]
fstp qword [ebx + 0x48]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x46df8a
cmp dword [esp + 0x1c], 0
jne 0x46df8a
mov edx, esi
call fcn.0043a2b0
mov dword [ebx + 0x40], 0xffffffff
mov bl, byte [edi + 8]
test bl, bl
je 0x46e0df
mov eax, dword [esp + 0x14]
mov ecx, esi
call fcn.00432b80
mov dword [esp + 0x60], 0xffffffff
cmp bl, 2
jne 0x46e0dc
inc dword [ebp + 0x48]
mov edi, dword [ebp + 0x48]
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
lea ecx, [edi + 1]
lea ebx, [edx + ecx]
lea edx, [edi + edx*2]
mov dword [ebp + 0x48], edx
mov byte [eax], 7
mov dword [eax + 4], 1
mov dword [eax + 8], edi
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], ebx
push 1
mov ebx, ebp
mov dword [esp + 0x68], edi
mov dword [esp + 0x38], ecx
call fcn.0043b5c0
mov eax, esi
call fcn.00432ae0
mov ebx, dword [esp + 0x24]
mov ecx, dword [ebx]
lea eax, [eax + ecx + 3]
mov dword [esp + 0x4c], eax
dec eax
push esi
mov ecx, edi
mov edx, 0x1b
call fcn.0043a030
xor eax, eax
add esp, 8
cmp dword [ebx], eax
mov dword [esp + 0x38], eax
jle 0x46e09c
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x3c]
sub eax, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xc]
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + eax]
mov ebx, ebp
call fcn.0044d5d0
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x58]
mov edi, eax
mov eax, dword [esp + 0x48]
add edx, ebx
push edx
push eax
push ebx
push 0x4b
mov eax, esi
call fcn.00439f90
push edi
push esi
mov ecx, 0xfffffffc
or eax, 0xffffffff
call fcn.0043a2f0
add esp, 0x18
mov dl, 0x80
mov eax, esi
call fcn.00432b20
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x18], 0x14
inc eax
inc ebx
cmp eax, dword [ecx]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], ebx
jl 0x46e035
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0x14]
xor ecx, ecx
push esi
lea edx, [ecx + 1]
call fcn.0043a030
mov eax, dword [esp + 0x68]
xor ecx, ecx
push esi
lea edx, [ecx + 7]
call fcn.0043a030
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
push 0xd
mov eax, esi
call fcn.00439f90
add esp, 0x18
jmp 0x46e0df
mov byte [eax], 0x95
mov edi, dword [esp + 0x40]
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x14]
mov eax, dword [esp + 0xf0]
push ecx
mov ecx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0xfc]
push edx
push 0
push 0
push eax
push ecx
push ebp
call fcn.00442c80
push edi
call fcn.0043d050
add esp, 0x2c
jmp 0x46eaa5
mov dword [esp + 0x54], 0
mov dword [esp + 0x24], 0
test edi, edi
je 0x46e182
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov ecx, dword [ecx + 0xc]
test eax, eax
jle 0x46e151
add ecx, 0x10
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x14
test eax, eax
jg 0x46e144
mov eax, dword [edi]
mov ecx, dword [edi + 0xc]
test eax, eax
jle 0x46e16d
add ecx, 0x10
lea ecx, [ecx]
xor edx, edx
mov word [ecx], dx
dec eax
add ecx, 0x14
test eax, eax
jg 0x46e160
fld qword [0x494420]
fcom qword [ebx + 0x48]
fnstsw ax
test ah, 5
jp 0x46e189
fstp qword [ebx + 0x48]
jmp 0x46e18b
fld1
fstp qword [ebx + 0x48]
jmp 0x46e18b
fstp st(0)
mov eax, esi
call fcn.0043a050
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x5c], eax
xor eax, eax
lea edx, [esp + 0x70]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xb0], ebp
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xcc], edx
cmp edi, eax
je 0x46e1fb
mov eax, dword [edi]
inc eax
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
lea edx, [esp + 0xb0]
push edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
call fcn.00447700
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0xb4]
push eax
call fcn.00447700
mov ecx, dword [esp + 0x40]
xor edi, edi
add esp, 8
cmp ecx, edi
je 0x46e248
lea eax, [esp + 0xb0]
call fcn.004476d0
cmp dword [esp + 0x98], edi
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x30], edi
jle 0x46e295
mov edx, dword [esp + 0x94]
mov eax, dword [edi + edx]
mov ebx, dword [eax + 0x10]
lea ecx, [esp + 0xb0]
push ecx
call fcn.00447700
mov eax, dword [esp + 0x34]
inc eax
add esp, 4
add edi, 0x10
cmp eax, dword [esp + 0x98]
mov dword [esp + 0x30], eax
jl 0x46e263
mov edx, dword [esp + 0x2c]
cmp byte [edx + 0x1e], 0
jne 0x46eb02
cmp dword [esp + 0x10], 0
je 0x46e839
mov eax, dword [ebp + 0x44]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x74], eax
inc eax
push ebx
push ebp
mov dword [ebp + 0x44], eax
call fcn.0044f670
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x7c]
push 0xfffffffffffffff0
push eax
mov dword [esp + 0xbc], eax
push 0x2b
xor eax, eax
mov edi, esi
call fcn.004400c0
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x48]
inc eax
lea edi, [eax + 1]
mov dword [esp + 0x50], eax
lea eax, [edi + 1]
mov dword [ebp + 0x48], eax
mov eax, esi
mov dword [esp + 0x5c], edi
call fcn.0043a050
inc dword [ebp + 0x48]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x78], eax
mov eax, esi
call fcn.0043a050
mov edx, dword [ebx]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x48]
lea ecx, [eax + 1]
add eax, edx
mov dword [ebp + 0x48], eax
mov edx, dword [ebx]
mov dword [esp + 0x7c], ecx
lea ecx, [eax + 1]
add edx, eax
mov dword [esp + 0x58], ecx
xor ecx, ecx
mov dword [ebp + 0x48], edx
push esi
mov eax, edi
lea edx, [ecx + 7]
call fcn.0043a030
mov eax, dword [esp + 0x54]
xor ecx, ecx
push esi
lea edx, [ecx + 7]
call fcn.0043a030
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x80]
push esi
mov edx, 2
call fcn.0043a030
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
push 0
push 0
lea eax, [esp + 0x38]
push eax
push ecx
push edx
push ebp
call fcn.0046a670
add esp, 0x38
mov dword [esp + 0x40], eax
test eax, eax
je 0x46eb02
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x46e3b8
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edi
jmp 0x46e592
cmp dword [esp + 0x50], 0
je 0x46e3d1
mov edx, dword [esp + 0xec]
test byte [edx + 6], 1
mov eax, str.DISTINCT
je 0x46e3d6
mov eax, str.GROUP_BY
mov ebx, ebp
call fcn.00443020
mov eax, dword [edi]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x58], eax
inc eax
mov dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
mov esi, eax
mov dword [esp + 0x50], eax
test ecx, ecx
jle 0x46e422
mov edx, dword [esp + 0x84]
add edx, 0xc
jmp 0x46e410
cmp dword [edx], eax
jl 0x46e416
inc esi
inc eax
add edx, 0x18
sub ecx, 1
jne 0x46e410
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x50]
mov ecx, ebp
call fcn.00434290
mov edi, eax
mov eax, ebp
call fcn.00434180
mov eax, dword [esp + 0x10]
push 0
mov ecx, edi
call fcn.0043b5c0
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x78]
add eax, edi
push ebx
mov edx, 0x37
call fcn.0043a030
mov ecx, dword [esp + 0x2c]
xor esi, esi
add esp, 8
cmp dword [esp + 0x88], esi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], esi
jle 0x46e4ee
mov edx, ecx
lea eax, [edi + edx]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
cmp dword [esi + eax + 0xc], ecx
jl 0x46e4d9
mov edx, dword [esi + eax + 4]
mov ecx, dword [esi + eax + 8]
push edx
mov edx, dword [esi + eax]
mov eax, dword [esp + 0x58]
push ecx
push edx
push ebp
call fcn.00453840
mov ecx, eax
add esp, 0x10
cmp dword [esp + 0x54], ecx
je 0x46e4c5
mov eax, dword [esp + 0x54]
push ebx
mov edx, 0xf
call fcn.0043a030
add esp, 4
mov eax, 1
add dword [esp + 0x24], eax
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x30]
inc ecx
add esi, 0x18
cmp ecx, dword [esp + 0x88]
mov dword [esp + 0x30], ecx
jl 0x46e486
mov eax, ebp
call fcn.00434240
mov esi, eax
mov eax, dword [esp + 0x50]
push esi
push eax
push edi
push 0x1f
mov eax, ebx
call fcn.00439f90
mov ecx, dword [esp + 0x84]
push ebx
mov eax, esi
mov edx, 0x60
call fcn.0043a030
mov edx, ebp
call fcn.00434260
mov esi, dword [esp + 0x64]
mov ecx, edi
mov eax, ebp
call fcn.004342c0
mov ecx, dword [esp + 0x54]
push ecx
call fcn.0043d050
mov edx, dword [ebp + 0x44]
lea eax, [edx + 1]
mov dword [ebp + 0x44], eax
mov eax, ebp
mov dword [esp + 0x6c], edx
mov dword [esp + 0x90], edx
call fcn.00434240
mov ecx, esi
push ecx
push eax
push edx
mov dword [esp + 0x48], eax
push 0x2c
mov eax, ebx
call fcn.00439f90
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x9c]
push ebx
mov edx, 0x46
call fcn.0043a030
add esp, 0x2c
mov eax, ebp
mov byte [esp + 0x71], 1
call fcn.00434180
mov esi, dword [esp + 0x28]
mov eax, esi
call fcn.00432ae0
mov dword [esp + 0x58], eax
mov eax, ebp
call fcn.00434180
cmp dword [esp + 0x18], 0
je 0x46e5c1
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x74]
push esi
mov edx, 0x3e
call fcn.0043a030
add esp, 4
mov edx, dword [esp + 0x10]
xor edi, edi
cmp dword [edx], edi
jle 0x46e629
jmp 0x46e5d0
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x44]
je 0x46e600
mov edx, dword [esp + 0x54]
lea ecx, [edi + eax]
push ecx
push edi
push edx
push 0x1d
mov eax, esi
call fcn.00439f90
add esp, 0x10
test edi, edi
jne 0x46e620
mov dl, 0x20
mov eax, esi
call fcn.00432b20
jmp 0x46e620
mov edx, dword [esp + 0x10]
mov byte [esp + 0x70], 1
lea esi, [edi + eax]
mov eax, dword [edx + 0xc]
lea ecx, [edi + edi*4]
mov ecx, dword [eax + ecx*4]
mov eax, ebp
call fcn.0043b460
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
inc edi
cmp edi, dword [ecx]
jl 0x46e5d0
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x68]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
push 0xfffffffffffffffa
push edx
push 0x18
mov edx, esi
call fcn.004400c0
mov eax, edi
call fcn.00432ae0
mov dword [esp + 0x74], eax
inc eax
push eax
push 0
push eax
push 0x19
mov eax, edi
call fcn.00439f90
mov eax, dword [ebx]
mov ebx, esi
mov esi, dword [esp + 0x60]
push eax
mov edi, ebp
call fcn.0043b2b0
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x54]
push esi
inc ecx
mov edx, 2
call fcn.0043a030
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x6c]
push esi
mov edx, 0x78
call fcn.0043a030
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x8c]
push esi
mov edx, 2
call fcn.0043a030
mov eax, dword [esp + 0x94]
mov ecx, esi
call fcn.00432b40
lea ecx, [esp + 0x9c]
push ecx
mov eax, ebp
call fcn.00450280
mov eax, dword [esp + 0x6c]
mov ecx, 1
push esi
lea edx, [ecx + 6]
call fcn.0043a030
add esp, 0x34
cmp dword [esp + 0x18], 0
je 0x46e70c
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x74]
push esi
mov edx, 0x51
call fcn.0043a030
add esp, 4
jmp 0x46e72a
mov edx, dword [esp + 0x40]
push edx
call fcn.0043d050
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x2c]
add esp, 4
call fcn.0043a2b0
mov esi, dword [esp + 0x28]
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x34]
lea edi, [ebx + 1]
push esi
mov ecx, edi
mov edx, 2
call fcn.0043a030
mov eax, dword [esp + 0x60]
xor ecx, ecx
push esi
lea edx, [ecx + 1]
call fcn.0043a030
mov eax, esi
call fcn.00432ae0
mov ecx, 1
mov dword [esp + 0x74], eax
push esi
mov eax, ebx
lea edx, [ecx + 6]
call fcn.0043a030
push esi
mov eax, edi
mov ecx, 3
call fcn.0043a010
mov edx, dword [esp + 0x44]
mov ecx, esi
call fcn.00432ab0
mov eax, esi
call fcn.00432ae0
mov ecx, dword [esp + 0x4c]
mov ebx, eax
lea eax, [ebx + 2]
push esi
mov edx, 0x78
call fcn.0043a030
push esi
mov eax, edi
mov ecx, 3
call fcn.0043a010
lea eax, [esp + 0x88]
push eax
mov eax, ebp
call fcn.00443a70
mov ecx, dword [esp + 0x54]
push 8
inc ebx
push ebx
push ecx
push ebp
call fcn.00460f40
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x8c]
push edx
mov edx, dword [esp + 0x4c]
push ebx
push eax
mov eax, dword [esp + 0x124]
push ecx
mov ecx, dword [eax]
push edx
push 0
push 0
push ecx
push eax
push ebp
call fcn.00442c80
add esp, 0x54
push esi
mov eax, edi
mov ecx, 3
call fcn.0043a010
mov edx, dword [esp + 0x18]
mov ecx, esi
call fcn.00432ab0
push ebp
lea ebx, [esp + 0x78]
call fcn.004501b0
mov eax, dword [esp + 0x6c]
push esi
mov ecx, 3
call fcn.0043a010
add esp, 0xc
jmp 0x46ea96
mov ebx, dword [esp + 0xec]
lea edx, [esp + 0x70]
push edx
mov eax, ebx
mov dword [esp + 0x38], 0
call fcn.004356d0
mov edi, eax
add esp, 4
test edi, edi
je 0x46e95f
mov esi, dword [edi + 0x44]
mov ecx, dword [ebp]
call fcn.00435200
mov esi, eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x3c], eax
inc eax
mov dword [ebp + 0x44], eax
mov eax, dword [edi + 0x14]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov eax, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x48], ebx
call fcn.0045f6c0
mov ecx, dword [edi]
mov edx, dword [edi + 0x14]
push ecx
push ebx
push edx
mov ebx, esi
mov eax, ebp
call fcn.0043ba40
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x54]
add esp, 0xc
test eax, eax
je 0x46e8ec
cmp byte [eax + 0x1a], 0
jne 0x46e8c4
test ebx, ebx
je 0x46e8c2
mov ecx, dword [eax + 4]
cmp ecx, dword [ebx + 4]
jge 0x46e8c4
mov ebx, eax
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x46e8b0
test ebx, ebx
je 0x46e8ec
mov edx, dword [ebx + 4]
cmp edx, dword [edi + 8]
jge 0x46e8ec
mov eax, dword [ebx + 0x14]
push ebx
push ebp
mov dword [esp + 0x20], eax
call fcn.0044e2c0
add esp, 8
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
push esi
mov esi, dword [esp + 0x2c]
push ecx
push edx
push 0x27
mov eax, esi
call fcn.00439f90
add esp, 0x10
cmp dword [esp + 0x14], 0
je 0x46e924
mov eax, dword [esp + 0x14]
push eax
push esi
mov ecx, 0xfffffff0
or eax, 0xffffffff
call fcn.0043a2f0
add esp, 8
mov ecx, dword [esp + 0x94]
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0x3c]
push esi
mov edx, 0x20
call fcn.0043a030
mov eax, dword [esp + 0x40]
push esi
mov ecx, 0x2d
call fcn.0043a010
add esp, 8
mov eax, ebx
mov edx, edi
mov ecx, ebp
call fcn.00443ad0
jmp 0x46ea44
mov eax, ebx
mov dword [esp + 0x14], 0
call fcn.00435660
mov byte [esp + 0x10], al
test al, al
je 0x46e9b8
mov edx, dword [ebx]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
mov edi, dword [esp + 0x2c]
push 0
push edx
push edi
call fcn.0043afe0
add esp, 0xc
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], eax
test eax, eax
je 0x46e9b8
cmp byte [edi + 0x1e], 0
jne 0x46e9b8
cmp byte [esp + 0x10], 1
mov edx, dword [eax + 0xc]
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [eax + 0xc]
mov ecx, dword [eax]
mov byte [ecx], 0x98
push ebp
lea ebx, [esp + 0x74]
call fcn.004501b0
mov bl, byte [esp + 0x14]
movzx dx, bl
movzx eax, dx
mov edx, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x54]
push 0
lea ecx, [esp + 0x20]
push ecx
push edx
push eax
push ebp
call fcn.0046a670
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x46ea04
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
push ecx
call fcn.00433c40
add esp, 4
jmp 0x46eb02
lea edx, [esp + 0x70]
push edx
mov eax, ebp
call fcn.00450280
add esp, 4
cmp dword [esp + 0x14], 0
jne 0x46ea2f
test bl, bl
je 0x46ea2f
mov eax, dword [edi + 0x18]
xor ecx, ecx
push esi
lea edx, [ecx + 1]
call fcn.0043a030
add esp, 4
push edi
call fcn.0043d050
lea eax, [esp + 0x74]
push eax
mov eax, ebp
call fcn.00443a70
add esp, 8
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x38]
push 8
push esi
push ecx
push ebp
mov dword [esp + 0x2c], 0
call fcn.00460f40
mov edx, dword [esp + 0x100]
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax]
push esi
push esi
push edx
push 0xffffffffffffffff
push 0
push 0
push 0
push ecx
push eax
push ebp
call fcn.00442c80
mov edx, dword [esp + 0x6c]
mov edi, dword [esp + 0x64]
push edx
call fcn.00433c40
mov esi, dword [esp + 0x64]
add esp, 0x3c
mov edx, dword [esp + 0x5c]
mov ecx, esi
call fcn.00432ab0
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x60], 0
jl 0x46eab8
mov eax, str.DISTINCT
mov ebx, ebp
call fcn.00443020
cmp dword [esp + 0x1c], 0
je 0x46eaec
mov eax, str.ORDER_BY
mov ebx, ebp
call fcn.00443020
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0xf0]
push edx
push esi
push eax
push ebp
call fcn.004430c0
add esp, 0x14
mov edx, dword [esp + 0xa4]
mov ecx, esi
call fcn.00432ab0
mov dword [esp + 0x58], 0
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0xa0]
mov dword [ebp + 0x228], ecx
test edi, edi
jne 0x46eb36
mov edx, dword [esp + 0xf0]
cmp byte [edx], 5
jne 0x46eb36
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
push eax
push ecx
push ebp
call fcn.00449420
add esp, 0xc
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x2c]
push edx
push esi
call fcn.0042d860
mov eax, dword [esp + 0x9c]
push eax
push esi
call fcn.0042d860
add esp, 0x10
pop esi
mov eax, edi
pop edi
pop ebp
pop ebx
add esp, 0xd4
ret