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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x228]
mov dword [esp + 0xa8], eax
mov eax, dword [esi + 0x22c]
xor ecx, ecx
inc ecx
mov dword [esi + 0x228], eax
inc eax
push edi
mov dword [esi + 0x22c], eax
mov eax, dword [esi]
xor edi, edi
cmp ebx, edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
je 0x440092
cmp byte [eax + 0x1e], 0
jne 0x440092
cmp dword [esi + 0x40], edi
jne 0x440092
push edi
push edi
push edi
push 0x15
mov eax, esi
call fcn.00430034
add esp, 0x10
test eax, eax
je 0x43f0a7
xor eax, eax
inc eax
jmp 0x440094
push 0x30
lea eax, [esp + 0x80]
push edi
push eax
call fcn.0044c4b0
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp byte [eax], 4
ja 0x43f0db
push dword [esp + 0x30]
mov edi, dword [ebx + 0x18]
call fcn.0042bf15
and dword [ebx + 0x18], 0
and word [ebx + 6], 0xfffe
pop ecx
xor edi, edi
push edi
push ebx
push esi
call fcn.0043ecc5
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x34], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x68], eax
mov eax, dword [ebx]
add esp, 0xc
cmp dword [esi + 0x40], edi
mov dword [esp + 0x44], eax
jne 0x44003c
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x44003c
movzx eax, byte [ebx + 6]
shr eax, 2
and eax, 1
mov edi, esi
mov dword [esp + 0x2c], eax
call fcn.0043cc7b
test eax, eax
mov dword [esp + 0x10], eax
je 0x44003c
mov ecx, dword [esp + 0x44]
cmp dword [ecx], 1
mov eax, dword [ebp + 0x10]
movzx eax, byte [eax]
jle 0x43f155
cmp eax, 6
je 0x43f14b
cmp eax, 7
jne 0x43f155
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
jmp 0x43f399
and dword [esp + 0x20], 0
jmp 0x43f333
mov eax, dword [esp + 0x5c]
movsx ecx, word [eax]
cmp dword [esp + 0x20], ecx
jge 0x43f33d
mov ecx, dword [esp + 0x20]
shl ecx, 6
lea edi, [ecx + eax + 8]
mov eax, dword [edi + 0x10]
test eax, eax
mov dword [esp + 0x34], eax
je 0x43f32f
mov eax, dword [edi + 0x14]
test eax, eax
je 0x43f1a8
push eax
push dword [edi + 0x18]
mov eax, dword [esp + 0x18]
push 2
call fcn.004200ec
add esp, 0xc
jmp 0x43f32f
and dword [esp + 0x14], 0
lea eax, [esp + 0x14]
mov ecx, ebx
call fcn.0042b2ad
mov eax, dword [esp + 0x14]
add dword [esi + 0x21c], eax
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 6]
shr eax, 2
and eax, 1
push eax
push dword [esp + 0x30]
mov dword [esp + 0x1c], eax
push dword [esp + 0x28]
mov eax, ebx
push esi
call fcn.0043e17a
add esp, 0x10
test eax, eax
je 0x43f20a
cmp dword [esp + 0x14], 0
je 0x43f200
or word [ebx + 6], 4
mov dword [esp + 0x2c], 1
or dword [esp + 0x20], 0xffffffff
jmp 0x43f2f1
xor ecx, ecx
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
push ecx
push eax
push ecx
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x1c]
push 7
mov dword [esp + 0x28], ecx
call fcn.00420071
add esp, 0x10
mov dword [esp + 0x4c], eax
inc eax
cmp byte [edi + 0x1e], 0
mov dword [edi + 0x14], eax
jne 0x43f258
cmp dword [esi + 0x1ac], 0
jne 0x43f258
inc dword [esi + 0x48]
push dword [esi + 0x48]
mov eax, dword [esp + 0x14]
push 0x1a
call fcn.004200d7
pop ecx
pop ecx
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x20]
and dword [esp + 0xc4], 0
and dword [esp + 0xc8], 0
mov dword [esp + 0xc0], eax
mov al, byte [esi + 0x22c]
mov byte [esp + 0xbc], 9
mov byte [esp + 0xbd], 0
mov byte [edi + 0x1f], al
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x38]
push esi
call fcn.0043f02d
mov eax, dword [esp + 0x40]
fld qword [eax + 0x48]
mov ecx, dword [edi + 0xc]
fistp qword [esp + 0xbc]
add esp, 0xc
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0xb0]
mov dword [ecx + 0x18], eax
je 0x43f2d2
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x1c]
mov eax, dword [esp + 0x18]
call fcn.0042037c
push dword [edi + 0x18]
mov eax, dword [esp + 0x14]
push 3
call fcn.004200d7
pop ecx
pop ecx
mov ecx, dword [esp + 0x10]
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.0042036c
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x44003c
and dword [esp + 0x14], 0
lea eax, [esp + 0x14]
mov ecx, ebx
call fcn.0042b2ad
mov eax, dword [esp + 0x14]
sub dword [esi + 0x21c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x10]
cmp byte [eax], 4
jbe 0x43f32f
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x28], eax
inc dword [esp + 0x20]
cmp dword [ebx + 0x1c], 0
je 0x43f15f
mov eax, dword [ebx]
mov edi, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x34], eax
movzx eax, byte [ebx + 6]
and eax, 1
xor edx, edx
cmp dword [ebx + 0x1c], edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], eax
je 0x43f3c3
cmp dword [ebx + 0x24], edx
jne 0x43f3a4
xor ecx, ecx
mov eax, ebx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ebx
mov ecx, eax
mov eax, dword [eax + 0x1c]
inc edx
test eax, eax
jne 0x43f373
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x43f3a4
cmp edx, eax
jle 0x43f3a4
push str.too_many_terms_in_compound_SELECT
mov edi, esi
call fcn.0040fa2a
pop ecx
jmp 0x44003c
push dword [ebp + 0x10]
mov eax, ebx
push esi
call fcn.0043ce40
pop ecx
pop ecx
mov ecx, dword [esp + 0xac]
mov dword [esi + 0x228], ecx
jmp 0x440094
mov ebx, dword [esp + 0x28]
call fcn.0042ded1
test eax, eax
jne 0x43f3df
mov eax, dword [esp + 0x30]
test byte [eax + 0xc], 0x20
jne 0x43f3df
and dword [esp + 0x28], 0
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 6]
and al, 5
cmp al, 1
jne 0x43f420
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax]
mov edi, dword [esp + 0x28]
call fcn.0042ded1
test eax, eax
jne 0x43f420
mov edi, dword [ebp + 0xc]
mov ebx, dword [edi]
and word [edi + 6], 0xfffe
push eax
push dword [esp + 0x34]
call fcn.0042baa9
and dword [esp + 0x30], 0
pop ecx
pop ecx
mov dword [edi + 0x10], eax
mov dword [esp + 0x24], eax
mov edi, dword [esp + 0x28]
test edi, edi
je 0x43f461
push edi
push esi
call fcn.0043c209
mov ecx, dword [esi + 0x44]
push 0xfffffffffffffff0
push eax
mov dword [edi + 8], ecx
inc dword [esi + 0x44]
mov eax, dword [edi]
push 0
inc eax
inc eax
push eax
push dword [edi + 8]
push 0x2a
push dword [esp + 0x30]
call fcn.00420103
mov edi, dword [ebp + 0xc]
mov ebx, eax
add esp, 0x24
mov dword [esp + 0x14], eax
mov dword [edi + 0x40], ebx
jmp 0x43f46b
mov edi, dword [ebp + 0xc]
or ebx, 0xffffffff
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 0x10]
cmp byte [eax], 9
jne 0x43f48a
mov ecx, dword [esp + 0x44]
push dword [ecx]
push dword [eax + 4]
mov eax, dword [esp + 0x18]
push 0x2a
call fcn.004200ec
add esp, 0xc
mov eax, dword [esp + 0x10]
call fcn.0042019f
fld qword [0x469380]
push eax
fstp qword [edi + 0x48]
mov dword [esp + 0xb4], eax
push edi
mov eax, esi
call fcn.0043cca4
cmp dword [edi + 0x30], 0
pop ecx
pop ecx
jne 0x43f4cb
test ebx, ebx
jl 0x43f4cb
mov ecx, dword [esp + 0x10]
mov eax, ebx
call fcn.00420623
mov byte [eax], 0x2b
or word [edi + 6], 0x40
test byte [edi + 6], 1
je 0x43f50d
mov ebx, dword [esi + 0x44]
lea eax, [ebx + 1]
mov dword [esi + 0x44], eax
push dword [edi]
mov dword [esp + 0x6c], ebx
push esi
call fcn.0043c209
push 0xfffffffffffffff0
push eax
push 0
push 0
push ebx
push 0x2a
push dword [esp + 0x30]
call fcn.00420103
mov ecx, dword [esp + 0x34]
add esp, 0x24
mov dl, 0x10
mov dword [esp + 0x38], eax
call fcn.0042038c
jmp 0x43f517
or dword [esp + 0x38], 0xffffffff
or dword [esp + 0x68], 0xffffffff
cmp dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x24]
jne 0x43f709
test ebx, ebx
jne 0x43f709
xor eax, eax
cmp dword [esp + 0x18], eax
je 0x43f538
mov eax, dword [edi]
push 0
push eax
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x54]
push dword [esp + 0x6c]
push esi
call fcn.00446cc1
mov ebx, eax
add esp, 0x18
test ebx, ebx
mov dword [esp + 0x6c], ebx
je 0x44003c
fld qword [edi + 0x48]
fcomp qword [ebx + 0x30]
fnstsw ax
test ah, 0x41
jne 0x43f572
fld qword [ebx + 0x30]
fstp qword [edi + 0x48]
mov eax, dword [esp + 0x14]
test eax, eax
jl 0x43f58e
cmp dword [esp + 0x28], 0
jne 0x43f58e
mov edx, dword [esp + 0x10]
call fcn.004204c0
or dword [edi + 0x40], 0xffffffff
mov bl, byte [ebx + 8]
test bl, bl
je 0x43f6d5
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x10]
call fcn.00420623
or dword [esp + 0x68], 0xffffffff
cmp bl, 2
mov ebx, dword [esp + 0x44]
jne 0x43f6d0
inc dword [esi + 0x48]
mov edi, dword [esi + 0x48]
mov ecx, dword [ebx]
lea edx, [edi + 1]
mov dword [esp + 0x50], edx
add edx, ecx
lea ecx, [edi + ecx*2]
mov dword [esi + 0x48], ecx
xor ecx, ecx
inc ecx
push ecx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x54]
mov byte [eax], 7
mov dword [eax + 8], edi
push esi
mov eax, ebx
mov dword [esp + 0x1c], edx
call fcn.0042d840
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebx]
lea ecx, [ecx + edx + 3]
mov dword [esp + 0x40], ecx
dec ecx
push ecx
push edi
push 0x1b
call fcn.004200ec
and dword [esp + 0x40], 0
add esp, 0x14
cmp dword [ebx], 0
jle 0x43f690
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
and dword [esp + 0x34], 0
sub eax, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + eax]
mov ecx, esi
call fcn.0042b08f
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
add ecx, eax
push ecx
push dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x1c]
push 0x4b
call fcn.00420071
push 0xfffffffffffffffc
push dword [esp + 0x54]
or eax, 0xffffffff
push dword [esp + 0x28]
call fcn.004204f3
mov ecx, dword [esp + 0x2c]
add esp, 0x1c
mov dl, 0x80
call fcn.0042038c
inc dword [esp + 0x2c]
add dword [esp + 0x34], 0x14
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x18]
cmp eax, dword [ebx]
jl 0x43f62b
mov eax, dword [esp + 0x6c]
push 0
push dword [eax + 0x14]
mov eax, dword [esp + 0x18]
push 0
push 1
call fcn.00420071
mov eax, dword [esp + 0x20]
push 0
push edi
push 0
push 7
call fcn.00420071
push dword [ebx]
mov eax, dword [esp + 0x34]
push dword [esp + 0x38]
push dword [esp + 0x78]
push 0xd
call fcn.00420071
add esp, 0x30
jmp 0x43f6d9
mov byte [eax], 0x95
jmp 0x43f6d9
mov ebx, dword [esp + 0x44]
mov edi, dword [esp + 0x6c]
push dword [edi + 0x18]
mov eax, dword [ebp + 0x10]
push dword [edi + 0x14]
push dword [esp + 0x70]
push dword [esp + 0x34]
push 0
push 0
push ebx
push dword [ebp + 0xc]
push esi
call fcn.0043bedd
add esp, 0x24
call fcn.00447538
jmp 0x43ffe5
xor edx, edx
cmp ebx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], edx
je 0x43f75c
mov eax, dword [edi]
mov ecx, dword [eax]
cmp ecx, edx
mov eax, dword [eax + 0xc]
jle 0x43f730
add eax, 0x10
mov word [eax], dx
dec ecx
add eax, 0x14
cmp ecx, edx
jg 0x43f725
mov eax, dword [ebx]
cmp eax, edx
mov ecx, dword [ebx + 0xc]
jle 0x43f747
add ecx, 0x10
mov word [ecx], dx
dec eax
add ecx, 0x14
cmp eax, edx
jg 0x43f73c
fld qword [0x4693d0]
fcom qword [edi + 0x48]
fnstsw ax
test ah, 5
jp 0x43f760
fstp qword [edi + 0x48]
jmp 0x43f762
fld1
jmp 0x43f757
fstp st(0)
mov eax, dword [esp + 0x10]
call fcn.0042019f
push 0x24
mov dword [esp + 0x5c], eax
xor edi, edi
lea eax, [esp + 0xd0]
push edi
push eax
call fcn.0044c4b0
mov eax, dword [esp + 0x68]
mov dword [esp + 0xdc], eax
add esp, 0xc
cmp ebx, edi
lea eax, [esp + 0x7c]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xe8], eax
je 0x43f7b1
mov eax, dword [ebx]
inc eax
mov dword [esp + 0x8c], eax
jmp 0x43f7b8
mov dword [esp + 0x8c], edi
mov esi, dword [esp + 0x44]
lea eax, [esp + 0xcc]
push eax
mov dword [esp + 0x8c], ebx
call fcn.0042e1ca
mov esi, dword [esp + 0x2c]
pop ecx
lea eax, [esp + 0xcc]
push eax
call fcn.0042e1ca
cmp dword [esp + 0x38], edi
pop ecx
je 0x43f7fa
push dword [esp + 0x34]
lea eax, [esp + 0xd0]
call fcn.0042e1a3
pop ecx
mov eax, dword [esp + 0x94]
xor ebx, ebx
cmp dword [esp + 0xa4], edi
mov dword [esp + 0x9c], eax
jle 0x43f83b
mov eax, dword [esp + 0xa0]
mov eax, dword [edi + eax]
mov esi, dword [eax + 0x10]
lea ecx, [esp + 0xcc]
push ecx
call fcn.0042e1ca
inc ebx
add edi, 0x10
cmp ebx, dword [esp + 0xa8]
pop ecx
jl 0x43f813
mov eax, dword [esp + 0x30]
cmp byte [eax + 0x1e], 0
jne 0x440039
mov edi, dword [esp + 0x24]
test edi, edi
je 0x43fd99
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x44]
mov dword [esp + 0x80], eax
inc eax
push edi
push esi
mov dword [esi + 0x44], eax
call fcn.0043c209
mov ebx, dword [esp + 0x18]
push 0xfffffffffffffff0
push eax
push 0
push dword [esp + 0xa0]
mov dword [esp + 0x88], eax
push dword [esp + 0x98]
push 0x2b
push ebx
call fcn.00420103
mov dword [esp + 0x9c], eax
mov eax, dword [esi + 0x48]
add esp, 0x24
inc eax
mov dword [esp + 0x40], eax
inc eax
mov dword [esp + 0x74], eax
inc eax
mov dword [esp + 0x50], eax
mov dword [esi + 0x48], eax
mov eax, ebx
call fcn.0042019f
inc dword [esi + 0x48]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x14], eax
mov eax, ebx
call fcn.0042019f
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi]
add eax, ecx
lea ecx, [eax + 1]
mov dword [esi + 0x48], eax
mov dword [esp + 0x2c], ecx
mov ecx, dword [edi]
xor edi, edi
push edi
push dword [esp + 0x78]
add ecx, eax
push edi
push 7
mov eax, ebx
mov dword [esi + 0x48], ecx
call fcn.00420071
push edi
push dword [esp + 0x54]
mov eax, ebx
push edi
push 7
call fcn.00420071
push dword [esp + 0x58]
mov eax, ebx
push dword [esp + 0x38]
push 2
call fcn.004200ec
add esp, 0x2c
push edi
push edi
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x54]
push dword [esp + 0x6c]
push esi
call fcn.00446cc1
add esp, 0x18
cmp eax, edi
mov dword [esp + 0x6c], eax
je 0x440039
xor eax, eax
cmp dword [esp + 0x24], eax
jne 0x43f964
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
jmp 0x43fb1e
cmp dword [esp + 0x18], eax
je 0x43f978
mov eax, dword [ebp + 0xc]
test byte [eax + 6], 1
mov eax, str.DISTINCT
je 0x43f97d
mov eax, str.GROUP_BY
push eax
mov edi, esi
call fcn.0043c2c5
mov eax, dword [esp + 0x28]
mov edi, dword [eax]
mov edx, dword [esp + 0x98]
test edx, edx
lea eax, [edi + 1]
pop ecx
mov dword [esp + 0x18], 1
mov dword [esp + 0x3c], eax
mov dword [esp + 0x60], eax
jle 0x43f9c3
mov ecx, dword [esp + 0x90]
add ecx, 0xc
cmp dword [ecx], eax
jl 0x43f9bd
inc dword [esp + 0x60]
inc eax
add ecx, 0x18
dec edx
jne 0x43f9b4
mov esi, dword [esp + 0x60]
mov ecx, dword [ebp + 8]
call fcn.0042e23f
mov esi, eax
mov eax, ecx
mov dword [esp + 0x48], esi
call fcn.0042cbd9
push 0
push eax
mov eax, dword [esp + 0x2c]
mov ecx, esi
call fcn.0042d840
add esi, edi
push esi
push dword [esp + 0x8c]
mov eax, ebx
push 0x37
call fcn.004200ec
mov esi, dword [esp + 0x50]
xor eax, eax
add esp, 0x14
cmp dword [esp + 0x94], eax
mov dword [esp + 0x20], eax
jle 0x43fa7c
mov ecx, dword [esp + 0x48]
add ecx, esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x3c]
add eax, ecx
cmp dword [eax + 0xc], esi
jl 0x43fa66
push dword [esp + 0x54]
mov edi, dword [ebp + 8]
push dword [eax + 4]
push dword [eax + 8]
push dword [eax]
call fcn.0042cb61
add esp, 0x10
cmp dword [esp + 0x54], eax
je 0x43fa61
push dword [esp + 0x54]
push eax
push 0xf
mov eax, ebx
call fcn.004200ec
add esp, 0xc
inc esi
inc dword [esp + 0x54]
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
add dword [esp + 0x3c], 0x18
cmp eax, dword [esp + 0x94]
jl 0x43fa21
mov esi, dword [ebp + 8]
mov eax, esi
call fcn.0042e1f0
mov edi, eax
push edi
push dword [esp + 0x64]
mov eax, ebx
push dword [esp + 0x50]
push 0x1f
call fcn.00420071
push edi
push dword [esp + 0x94]
mov eax, ebx
push 0x60
call fcn.004200ec
add esp, 0x1c
mov edx, edi
mov eax, esi
call fcn.0042e20b
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x48]
call fcn.0042e263
mov edi, dword [esp + 0x6c]
call fcn.00447538
mov edx, dword [esi + 0x44]
lea eax, [edx + 1]
mov dword [esi + 0x44], eax
mov eax, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x84], edx
call fcn.0042e1f0
push dword [esp + 0x60]
mov dword [esp + 0x58], eax
push eax
push edx
push 0x2c
mov eax, ebx
call fcn.00420071
push dword [esp + 0x68]
mov eax, ebx
push dword [esp + 0x94]
push 0x46
call fcn.004200ec
add esp, 0x1c
mov eax, esi
mov byte [esp + 0x7d], 1
call fcn.0042cbd9
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
call fcn.0042cbd9
xor esi, esi
cmp dword [esp + 0x18], esi
je 0x43fb4c
push dword [esp + 0x54]
mov eax, ebx
push dword [esp + 0x84]
push 0x3e
call fcn.004200ec
add esp, 0xc
mov eax, dword [esp + 0x24]
cmp dword [eax], esi
jle 0x43fbaa
cmp dword [esp + 0x18], 0
mov eax, dword [esp + 0x2c]
je 0x43fb82
add eax, esi
push eax
push esi
push dword [esp + 0x28]
mov eax, ebx
push 0x1d
call fcn.00420071
add esp, 0x10
test esi, esi
jne 0x43fba1
mov dl, 0x20
mov ecx, ebx
call fcn.0042038c
jmp 0x43fba1
mov ecx, dword [esp + 0x24]
lea edi, [esi + eax]
mov eax, esi
imul eax, eax, 0x14
mov byte [esp + 0x7c], 1
mov ecx, dword [ecx + 0xc]
mov eax, dword [eax + ecx]
mov ecx, dword [ebp + 8]
call fcn.0042d727
mov eax, dword [esp + 0x24]
inc esi
cmp esi, dword [eax]
jl 0x43fb54
mov esi, dword [esp + 0x24]
push 0xfffffffffffffffa
push dword [esp + 0x74]
push dword [esi]
push dword [esp + 0x38]
push dword [esp + 0x5c]
push 0x18
push ebx
call fcn.00420103
mov eax, dword [ebx + 0x1c]
add esp, 0x1c
mov dword [esp + 0x70], eax
inc eax
push eax
push 0
push eax
push 0x19
mov eax, ebx
call fcn.00420071
push dword [esp + 0x5c]
mov ebx, dword [esi]
mov edi, dword [esp + 0x40]
mov eax, dword [ebp + 8]
call fcn.0042cbf7
mov esi, dword [esp + 0x24]
add esp, 0x14
push dword [esp + 0x64]
mov eax, esi
push dword [esp + 0x54]
push 2
call fcn.004200ec
add esp, 0xc
push dword [esp + 0x58]
mov eax, esi
push dword [esp + 0x78]
push 0x78
call fcn.004200ec
add esp, 0xc
push dword [esp + 0x38]
mov eax, esi
push dword [esp + 0x18]
push 2
call fcn.004200ec
mov edx, dword [esi + 0x1c]
mov eax, dword [esp + 0x7c]
add esp, 0xc
mov ecx, esi
call fcn.0042037c
lea eax, [esp + 0x7c]
push eax
push dword [ebp + 8]
call fcn.0043ee58
push 0
push dword [esp + 0x4c]
mov eax, esi
push 1
push 7
call fcn.00420071
add esp, 0x18
cmp dword [esp + 0x18], 0
je 0x43fc82
push dword [esp + 0x48]
mov eax, esi
push dword [esp + 0x84]
push 0x51
call fcn.004200ec
add esp, 0xc
jmp 0x43fc96
mov edi, dword [esp + 0x6c]
call fcn.00447538
mov eax, dword [esp + 0x78]
mov edx, esi
call fcn.004204c0
push dword [esp + 0x64]
mov eax, esi
push dword [esp + 0x54]
push 2
call fcn.004200ec
add esp, 0xc
xor edi, edi
push edi
push dword [esp + 0x5c]
mov eax, esi
push edi
push 1
call fcn.00420071
mov eax, dword [esi + 0x1c]
push edi
push dword [esp + 0x88]
mov dword [esp + 0x90], eax
push 1
push 7
mov eax, esi
call fcn.00420071
push dword [esp + 0x70]
mov eax, esi
push 3
call fcn.004200d7
mov edx, dword [esp + 0x8c]
mov ecx, esi
call fcn.004201eb
mov ebx, dword [esi + 0x1c]
lea eax, [ebx + 2]
push eax
push dword [esp + 0x6c]
mov eax, esi
push 0x78
call fcn.004200ec
add esp, 0x34
push dword [esp + 0x50]
mov eax, esi
push 3
call fcn.004200d7
mov eax, dword [ebp + 8]
lea edi, [esp + 0x84]
call fcn.0043ee0d
push 8
inc ebx
push ebx
push dword [esp + 0x44]
push dword [ebp + 8]
call fcn.0042db8a
push dword [esp + 0x90]
mov eax, dword [ebp + 0xc]
push ebx
push dword [esp + 0x88]
push dword [esp + 0x4c]
push 0
push 0
push dword [eax]
push eax
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
call fcn.0043bedd
add esp, 0x3c
push dword [esp + 0x50]
mov eax, esi
push 3
call fcn.004200d7
mov edx, dword [esp + 0x40]
mov ecx, esi
call fcn.004201eb
push dword [ebp + 8]
mov ebx, edi
call fcn.0043ed4a
add esp, 0xc
push dword [esp + 0x14]
mov eax, esi
push 3
call fcn.004200d7
pop ecx
jmp 0x43ffd2
mov esi, dword [ebp + 0xc]
and dword [esp + 0x40], 0
lea edx, [esp + 0x7c]
mov eax, esi
call fcn.0043e6b8
mov edi, eax
test edi, edi
je 0x43feaf
mov ebx, dword [ebp + 8]
mov esi, dword [edi + 0x44]
mov ecx, dword [ebx]
call fcn.0043b31d
and dword [esp + 0x14], 0
and dword [esp + 0x4c], 0
mov esi, eax
mov eax, dword [ebx + 0x44]
mov dword [esp + 0x38], eax
inc eax
mov dword [ebx + 0x44], eax
mov eax, dword [edi + 0x14]
mov dword [esp + 0x64], eax
mov eax, ebx
call fcn.004333cb
push dword [edi]
mov ebx, dword [edi + 0x14]
mov eax, dword [ebp + 8]
push 0
push esi
call fcn.004300b3
mov eax, dword [edi + 0x10]
mov ebx, dword [esp + 0x58]
add esp, 0xc
test eax, eax
je 0x43fe43
cmp byte [eax + 0x1a], 0
jne 0x43fe1a
test ebx, ebx
je 0x43fe18
mov ecx, dword [eax + 4]
cmp ecx, dword [ebx + 4]
jge 0x43fe1a
mov ebx, eax
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x43fe06
test ebx, ebx
je 0x43fe43
mov eax, dword [ebx + 4]
cmp eax, dword [edi + 8]
jge 0x43fe43
mov eax, dword [ebx + 0x14]
push ebx
push dword [ebp + 8]
mov dword [esp + 0x6c], eax
call fcn.00433713
pop ecx
pop ecx
mov dword [esp + 0x14], eax
push esi
push dword [esp + 0x68]
mov esi, dword [esp + 0x18]
push dword [esp + 0x40]
mov eax, esi
push 0x27
call fcn.00420071
add esp, 0x10
cmp dword [esp + 0x14], 0
je 0x43fe75
push 0xfffffffffffffff0
push dword [esp + 0x18]
or eax, 0xffffffff
push esi
call fcn.004204f3
add esp, 0xc
mov eax, dword [esp + 0xa0]
push dword [eax + 8]
mov eax, esi
push dword [esp + 0x3c]
push 0x20
call fcn.004200ec
add esp, 0xc
push dword [esp + 0x38]
mov eax, esi
push 0x2d
call fcn.004200d7
pop ecx
pop ecx
mov eax, edi
mov edi, dword [ebp + 8]
mov ecx, ebx
call fcn.0043efd4
jmp 0x43ff88
and dword [esp + 0x14], 0
mov eax, esi
call fcn.0043e655
test al, al
mov byte [esp + 0x1f], al
je 0x43ff03
mov eax, dword [esi]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov esi, dword [esp + 0x30]
mov ebx, dword [eax + 0x10]
push 0
push esi
call fcn.0042baa9
test eax, eax
pop ecx
pop ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x40], eax
je 0x43ff03
cmp byte [esi + 0x1e], 0
jne 0x43ff03
cmp byte [esp + 0x1f], 1
mov edx, dword [eax + 0xc]
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov byte [eax], 0x98
mov esi, dword [ebp + 8]
push esi
lea ebx, [esp + 0x80]
call fcn.0043ed4a
movzx ax, byte [esp + 0x23]
pop ecx
xor ebx, ebx
push eax
push ebx
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x54]
push dword [esp + 0x6c]
push esi
call fcn.00446cc1
mov edi, eax
add esp, 0x18
cmp edi, ebx
jne 0x43ff4c
push dword [esp + 0x30]
mov edi, dword [esp + 0x44]
call fcn.0042bf15
jmp 0x43f39e
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.0043ee58
cmp dword [esp + 0x1c], ebx
pop ecx
pop ecx
jne 0x43ff78
cmp byte [esp + 0x1f], bl
je 0x43ff78
mov eax, dword [esp + 0x10]
push ebx
push dword [edi + 0x18]
push ebx
push 1
call fcn.00420071
add esp, 0x10
call fcn.00447538
lea edi, [esp + 0x7c]
mov eax, esi
call fcn.0043ee0d
push 8
push dword [esp + 0x5c]
xor esi, esi
push dword [esp + 0x3c]
mov dword [esp + 0x34], esi
push dword [ebp + 8]
call fcn.0042db8a
push dword [esp + 0x68]
mov eax, dword [ebp + 0xc]
push dword [esp + 0x6c]
push 0xffffffffffffffff
push esi
push esi
push esi
push dword [eax]
push eax
push dword [ebp + 8]
mov eax, dword [ebp + 0x10]
call fcn.0043bedd
mov edi, dword [esp + 0x74]
add esp, 0x34
push dword [esp + 0x30]
call fcn.0042bf15
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
pop ecx
mov ecx, esi
call fcn.004201eb
mov ebx, dword [esp + 0x44]
mov esi, dword [ebp + 8]
cmp dword [esp + 0x68], 0
jl 0x43fff9
push str.DISTINCT
mov edi, esi
call fcn.0043c2c5
pop ecx
cmp dword [esp + 0x28], 0
je 0x440022
push str.ORDER_BY
mov edi, esi
call fcn.0043c2c5
pop ecx
push dword [ebp + 0x10]
push dword [ebx]
push dword [esp + 0x18]
push dword [ebp + 0xc]
push esi
call fcn.0043c35c
add esp, 0x14
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0x10]
call fcn.004201eb
and dword [esp + 0x3c], 0
jmp 0x44003c
mov esi, dword [ebp + 8]
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0xac]
mov dword [esi + 0x228], eax
jne 0x440069
mov eax, dword [ebp + 0x10]
cmp byte [eax], 5
jne 0x440069
push dword [esp + 0x44]
push dword [esp + 0x60]
push esi
call fcn.0043c81e
add esp, 0xc
push dword [esp + 0x90]
push dword [esp + 0x34]
call fcn.0040e02c
push dword [esp + 0xa8]
push dword [esp + 0x3c]
call fcn.0040e02c
mov eax, dword [esp + 0x4c]
add esp, 0x10
jmp 0x440094
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret