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

Disassembly:
sub esp, 0xd0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
push edi
mov eax, dword [esi + 0x22c]
mov ebp, dword [esi]
mov dword [esp + 0xa4], eax
mov eax, dword [esi + 0x230]
mov dword [esi + 0x22c], eax
inc eax
test ebx, ebx
mov dword [esp + 0x30], 1
mov dword [esi + 0x230], eax
mov dword [esp + 0x2c], ebp
je 0x44406f
mov al, byte [ebp + 0x1e]
test al, al
jne 0x44406f
mov eax, dword [esi + 0x40]
test eax, eax
jne 0x44406f
push 0
push 0
push 0
push 0x15
push esi
call fcn.00437f50
add esp, 0x14
test eax, eax
jne 0x44406f
mov ecx, 0xb
lea edi, [esp + 0x78]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xec]
cmp byte [ecx], 4
ja 0x4431fe
mov edx, dword [ebx + 0x18]
push edx
push ebp
call fcn.004299e0
add esp, 8
and word [ebx + 6], 0xfffe
mov dword [ebx + 0x18], 0
push 0
push ebx
push esi
call fcn.00442650
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x40]
add esp, 0xc
test eax, eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x54], edx
jne 0x44400b
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x1e]
test cl, cl
jne 0x44400b
mov cl, byte [ebx + 6]
push esi
shr ecx, 2
and ecx, 1
mov dword [esp + 0x18], ecx
call fcn.004425a0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x44400b
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0xec]
mov eax, dword [edx]
push eax
push ecx
push esi
call fcn.004444a0
add esp, 0xc
test eax, eax
jne 0x44400b
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x1c]
test eax, eax
jne 0x4433bc
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
movsx eax, word [edx]
cmp ecx, eax
jge 0x4433bc
mov eax, ecx
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + ecx*8 + 0x18]
test eax, eax
lea edi, [edx + ecx*8 + 8]
mov dword [esp + 0x10], eax
je 0x4433a8
mov al, byte [edi + 0x14]
test al, al
jne 0x4433a8
push ebx
call fcn.00444080
mov edx, dword [esi + 0x220]
mov ecx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x14]
mov dword [esi + 0x220], edx
mov edx, dword [esp + 0x28]
mov al, byte [eax + 6]
shr eax, 2
and eax, 1
push eax
push ecx
push edx
push ebx
push esi
mov dword [esp + 0x5c], eax
call fcn.00446510
add esp, 0x18
test eax, eax
je 0x443320
mov eax, dword [esp + 0x44]
test eax, eax
je 0x443316
or byte [ebx + 6], 4
mov dword [esp + 0x14], 1
mov dword [esp + 0x24], 0xffffffff
jmp 0x443368
mov eax, dword [edi + 0x18]
lea ecx, [esp + 0xd0]
push eax
push 9
push ecx
call fcn.00441e10
mov ecx, dword [esp + 0x1c]
mov dl, byte [esi + 0x230]
lea eax, [esp + 0xdc]
mov byte [edi + 0x17], dl
push eax
push ecx
push esi
call fcn.00443150
mov edx, dword [esp + 0x28]
mov byte [edi + 0x14], 1
add esp, 0x18
fld qword [edx + 0x48]
call fcn.00453da8
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x18], eax
mov edx, dword [esp + 0x2c]
mov al, byte [edx + 0x1e]
test al, al
jne 0x44400b
push ebx
call fcn.00444080
mov ecx, dword [esi + 0x220]
add esp, 4
sub ecx, eax
mov dword [esi + 0x220], ecx
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0xec]
mov dword [esp + 0x34], eax
cmp byte [ecx], 4
jbe 0x4433a8
mov edx, dword [ebx + 0x18]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 0x1c]
inc ecx
test eax, eax
mov dword [esp + 0x24], ecx
je 0x443287
mov eax, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x38], eax
mov ax, word [ebx + 6]
mov edi, dword [ebx]
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, eax
and ecx, 1
mov dword [esp + 0x54], edi
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
mov dword [esp + 0x68], edx
je 0x443454
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x44342a
xor ecx, ecx
xor edx, edx
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 0x4433f8
mov eax, dword [esp + 0x2c]
mov eax, dword [eax + 0x58]
test eax, eax
je 0x44342a
cmp edx, eax
jle 0x44342a
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.00427b10
add esp, 8
jmp 0x44400b
mov ecx, dword [esp + 0xec]
push ecx
push ebx
push esi
call fcn.00445120
mov edx, dword [esp + 0xb0]
add esp, 0xc
mov dword [esi + 0x22c], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret
and al, 5
cmp al, 1
jne 0x443477
mov eax, dword [esp + 0x2c]
push 0
push edi
push eax
call fcn.00437740
add esp, 0xc
and word [ebx + 6], 0xfffe
mov dword [ebx + 0x10], eax
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x20]
mov edx, dword [ebx + 0x10]
push ecx
push edx
call fcn.00437cf0
add esp, 8
test eax, eax
jne 0x443532
mov eax, dword [esp + 0x2c]
test byte [eax + 0xc], 0x20
jne 0x443532
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 0xec]
cmp byte [eax], 9
jne 0x4434ce
mov ecx, dword [edi]
mov edx, eax
push ecx
mov eax, dword [edx + 4]
push eax
push 0x29
push ebp
call fcn.00432990
add esp, 0x10
push ebp
call fcn.00433430
xor edi, edi
push eax
push ebx
mov dword [ebx + 0x48], edi
push esi
mov dword [esp + 0xb8], eax
mov dword [ebx + 0x4c], 0x43e00000
call fcn.00444fd0
mov al, byte [ebx + 6]
add esp, 0x10
test al, 1
je 0x443580
mov edi, dword [esi + 0x44]
mov dword [esp + 0x74], edi
lea ecx, [edi + 1]
mov dword [esi + 0x44], ecx
mov edx, dword [ebx]
push edx
push esi
call fcn.00444a50
push 0xfffffffffffffff0
push eax
push 0
push 0
push edi
push 0x29
push ebp
call fcn.00431fc0
push 0x10
push ebp
call fcn.00432ec0
add esp, 0x2c
xor edi, edi
jmp 0x443588
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4434a6
push eax
push esi
call fcn.00444a50
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 0x44]
push 0xfffffffffffffff0
push eax
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x44]
mov eax, dword [esp + 0x30]
inc ecx
mov dword [esi + 0x44], ecx
push 0
mov ecx, dword [eax]
mov edx, dword [eax + 8]
add ecx, 2
push ecx
push edx
push 0x29
push ebp
call fcn.00431fc0
add esp, 0x24
mov dword [esp + 0x10], eax
mov dword [ebx + 0x40], eax
jmp 0x4434ae
mov dword [esp + 0x74], 0xffffffff
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp eax, edi
jne 0x443639
cmp edx, edi
jne 0x44363d
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x20]
push 0
push eax
push ecx
push edx
push esi
call fcn.00449850
mov edi, eax
add esp, 0x14
test edi, edi
je 0x44400b
fld qword [edi + 0x28]
fcomp qword [ebx + 0x48]
fnstsw ax
test ah, 1
je 0x4435dd
mov eax, dword [edi + 0x28]
mov dword [ebx + 0x48], eax
mov ecx, dword [edi + 0x2c]
mov dword [ebx + 0x4c], ecx
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x443604
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x443604
mov edx, dword [esp + 0x10]
push 1
push edx
push ebp
call fcn.00427d40
add esp, 0xc
mov dword [ebx + 0x40], 0xffffffff
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x10]
mov edx, dword [esp + 0xec]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
push 0xffffffffffffffff
push eax
push 0
push 0
push ecx
push ebx
push esi
call fcn.004444e0
push edi
call fcn.0044e650
add esp, 0x2c
jmp 0x443faf
cmp edx, edi
je 0x443689
mov eax, dword [ebx]
mov ecx, dword [eax]
mov eax, dword [eax + 0xc]
cmp ecx, edi
jle 0x443658
add eax, 0x10
mov word [eax], di
add eax, 0x14
dec ecx
jne 0x44364b
mov edx, dword [esp + 0x18]
mov ecx, dword [edx]
mov edx, dword [edx + 0xc]
cmp ecx, edi
jle 0x44366d
lea eax, [edx + 0x10]
mov word [eax], di
add eax, 0x14
dec ecx
jne 0x443664
fld qword [ebx + 0x48]
fcomp qword [0x469a58]
fnstsw ax
test ah, 0x41
jne 0x443693
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x4c], 0x40590000
jmp 0x443693
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x4c], 0x3ff00000
push ebp
call fcn.00433430
mov dword [esp + 0x68], eax
mov edx, dword [esp + 0x38]
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xb0]
add esp, 4
rep stosd dword es:[edi], eax
lea eax, [esp + 0x78]
mov dword [esp + 0xac], esi
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0xb0], edx
je 0x4436e1
mov ecx, dword [eax]
inc ecx
mov dword [esp + 0x84], ecx
jmp 0x4436ec
mov dword [esp + 0x84], 0
mov edx, dword [esp + 0x54]
mov dword [esp + 0x80], eax
lea eax, [esp + 0xac]
push edx
push eax
call fcn.00444460
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0xb4]
push ecx
push edx
call fcn.00444460
mov eax, dword [esp + 0x78]
xor edi, edi
add esp, 0x10
cmp eax, edi
je 0x443735
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.00444130
add esp, 8
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x8c]
cmp eax, edi
mov dword [esp + 0x94], ecx
mov dword [esp + 0x24], edi
jle 0x443787
mov edx, dword [esp + 0x98]
mov eax, dword [edi + edx]
lea edx, [esp + 0xac]
mov ecx, dword [eax + 0x10]
push ecx
push edx
call fcn.00444460
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xa4]
add esp, 8
inc eax
add edi, 0x10
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x443752
mov eax, dword [esp + 0x2c]
mov cl, byte [eax + 0x1e]
test cl, cl
jne 0x44400b
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x443d51
mov eax, dword [esi + 0x44]
push ecx
mov dword [esp + 0x80], eax
inc eax
push esi
mov dword [esi + 0x44], eax
call fcn.00444a50
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x84]
push 0xfffffffffffffff0
push eax
push 0
push ecx
push edx
push 0x29
push ebp
mov dword [esp + 0x7c], eax
call fcn.00431fc0
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x48]
inc eax
push ebp
mov dword [esp + 0x64], eax
lea edi, [eax + 1]
mov dword [esp + 0x98], edi
inc edi
mov dword [esi + 0x48], edi
call fcn.00433430
mov dword [esp + 0x88], eax
mov eax, dword [esi + 0x48]
inc eax
push ebp
mov dword [esi + 0x48], eax
mov dword [esp + 0x78], eax
call fcn.00433430
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
add eax, edx
mov dword [esi + 0x48], eax
mov ecx, dword [ecx]
lea edx, [eax + 1]
add ecx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x9c]
push edx
push 0
push 7
push ebp
mov dword [esi + 0x48], ecx
call fcn.00432990
mov eax, dword [esp + 0x78]
push eax
push 0
push 7
push ebp
call fcn.00432990
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x98]
add esp, 0x4c
push ecx
push edx
push 2
push ebp
call fcn.00432990
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
lea eax, [esp + 0x28]
push 0
push eax
push ecx
push edx
push esi
call fcn.00449850
add esp, 0x24
mov dword [esp + 0x44], eax
test eax, eax
je 0x44400b
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4438bb
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x38], 0
mov dword [esp + 0x18], eax
jmp 0x443aad
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4438ce
test byte [ebx + 6], 1
mov eax, str.DISTINCT
je 0x4438d3
mov eax, str.GROUP_BY
push eax
push esi
call fcn.00444af0
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x38], 1
mov eax, dword [ecx]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x48], eax
inc eax
test ecx, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], eax
jle 0x44392d
mov edx, dword [esp + 0x88]
mov dword [esp + 0x14], ecx
add edx, 0xc
cmp dword [edx], eax
jl 0x44391f
mov ecx, dword [esp + 0x40]
inc ecx
inc eax
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
add edx, 0x18
dec ecx
mov dword [esp + 0x14], ecx
jne 0x443911
mov eax, dword [esp + 0x40]
push eax
push esi
call fcn.00435ee0
push esi
mov dword [esp + 0x3c], eax
call fcn.004440a0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x24]
push 0
push ecx
push edx
push esi
call fcn.00435800
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x98]
add eax, ecx
push eax
push edx
push 0x35
push ebp
call fcn.00432990
mov eax, dword [esp + 0x54]
add esp, 0x2c
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x8c]
test eax, eax
mov dword [esp + 0x24], 0
jle 0x443a27
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x88]
add ecx, edx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
cmp dword [edx + eax + 0xc], ecx
jl 0x443a08
mov ecx, dword [esp + 0x48]
push ecx
mov ecx, 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.004355f0
mov ecx, dword [esp + 0x5c]
add esp, 0x14
cmp ecx, eax
je 0x4439ef
push ecx
push eax
push 0xf
push ebp
call fcn.00432990
add esp, 0x10
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
inc ecx
inc eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
add edx, 0x18
inc ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x8c]
cmp ecx, edx
mov dword [esp + 0x24], ecx
jl 0x4439ae
push esi
call fcn.004329d0
mov edx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
push eax
mov eax, dword [esp + 0x38]
push edx
push eax
push 0x1e
push ebp
call fcn.00432000
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x94]
push ecx
push edx
push 0x46
push ebp
call fcn.00432990
mov eax, dword [esp + 0x3c]
push eax
push esi
call fcn.00432a00
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x60]
push ecx
push edx
push esi
call fcn.00435f10
mov eax, dword [esp + 0x80]
push eax
call fcn.0044e650
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xbc]
add esp, 0x40
push ecx
push edx
push pe_nt_image_headers32
push ebp
call fcn.00432990
push esi
mov byte [esp + 0x8d], 1
call fcn.004440a0
add esp, 0x14
push ebp
call fcn.004334b0
push esi
mov dword [esp + 0x38], eax
call fcn.004440a0
mov eax, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x28], 0
cmp dword [eax], 0
jle 0x443b43
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x443b03
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
lea edx, [eax + ecx]
push edx
push eax
mov eax, dword [esp + 0x84]
push eax
push 0x1c
push ebp
call fcn.00432000
add esp, 0x14
jmp 0x443b27
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
add ecx, edx
mov byte [esp + 0x78], 1
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + ecx]
push edx
push esi
call fcn.004336f0
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
add eax, 0x14
inc ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
cmp ecx, dword [eax]
jl 0x443ad9
mov ecx, dword [esp + 0x58]
mov edx, dword [eax]
mov eax, dword [esp + 0x10]
push 0xfffffffffffffffa
push ecx
mov ecx, dword [esp + 0x64]
push edx
push eax
push ecx
push 0x18
push ebp
call fcn.00431fc0
push ebp
call fcn.004334b0
mov dword [esp + 0x78], eax
inc eax
push eax
push 0
push eax
push 0x19
push ebp
call fcn.00432000
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x90]
mov eax, dword [edx]
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
push esi
call fcn.004440e0
mov eax, dword [esp + 0xa4]
add esp, 0x44
push eax
push edi
push 2
push ebp
call fcn.00432990
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
push ecx
push edx
push 0x71
push ebp
call fcn.00432990
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
push eax
push ecx
push 2
push ebp
call fcn.00432990
mov edx, dword [esp + 0x88]
push edx
push ebp
call fcn.004329b0
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.00446ef0
mov ecx, dword [esp + 0x7c]
add esp, 0x40
push ecx
push 1
push 7
push ebp
call fcn.00432990
mov eax, dword [esp + 0x48]
add esp, 0x10
test eax, eax
je 0x443c18
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x7c]
push edx
push eax
push 0x43
push ebp
call fcn.00432990
jmp 0x443c2f
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0044e650
mov edx, dword [esp + 0x70]
push 1
push edx
push ebp
call fcn.00427d40
mov eax, dword [esp + 0x70]
add esp, 0x10
push eax
push edi
push 2
push ebp
call fcn.00432990
mov ecx, dword [esp + 0x74]
push ecx
push 0
push 1
push ebp
call fcn.00432990
push ebp
call fcn.004334b0
mov edx, dword [esp + 0x94]
mov dword [esp + 0x90], eax
push edx
push 1
push 7
push ebp
call fcn.00432990
push edi
push 3
push ebp
call fcn.00433410
mov eax, dword [esp + 0xa0]
add esp, 0x40
push eax
push ebp
call fcn.00433490
push ebp
call fcn.004334b0
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
add eax, 2
push eax
push ecx
push 0x71
push ebp
call fcn.00432990
push edi
push 3
push ebp
call fcn.00433410
lea edx, [esp + 0xa0]
push edx
push esi
call fcn.00446e90
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x98]
inc eax
push 8
push eax
push ecx
push esi
mov dword [esp + 0x98], eax
call fcn.00435870
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x12c]
add esp, 0x40
push edx
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [ebx]
push edx
push eax
push 0
push 0
push ecx
push ebx
push esi
call fcn.004444e0
push edi
push 3
push ebp
call fcn.00433410
mov edx, dword [esp + 0x84]
push edx
push ebp
call fcn.00433490
lea eax, [esp + 0xb4]
push eax
push esi
call fcn.00446dc0
mov ecx, dword [esp + 0x90]
add esp, 0x44
push ecx
push 3
push ebp
call fcn.00433410
mov edi, dword [esp + 0x70]
add esp, 0xc
jmp 0x443fa5
lea edx, [esp + 0x78]
mov dword [esp + 0x3c], 0
push edx
push ebx
call fcn.00446d60
mov edi, eax
add esp, 8
test edi, edi
je 0x443e71
mov eax, dword [edi + 0x44]
mov ecx, dword [esi]
push eax
push ecx
call fcn.0042c980
mov ecx, dword [esi + 0x44]
push eax
mov dword [esp + 0x5c], ecx
inc ecx
mov dword [esi + 0x44], ecx
mov edx, dword [edi + 0x14]
xor ecx, ecx
push esi
mov dword [esp + 0x54], eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x6c], edx
call fcn.0043b530
mov eax, dword [edi]
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x54]
push eax
push 0
push ecx
push edx
push esi
call fcn.00438000
mov eax, dword [edi + 0x10]
add esp, 0x24
test eax, eax
je 0x443e06
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x443dd2
mov edx, dword [eax + 4]
cmp edx, dword [ecx + 4]
jge 0x443dd4
mov ecx, eax
mov eax, dword [eax + 0x20]
test eax, eax
jne 0x443dc6
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x443e06
mov eax, dword [ecx + 4]
mov ecx, dword [edi + 8]
cmp eax, ecx
jge 0x443e06
mov eax, dword [esp + 0x10]
push eax
push esi
mov ecx, dword [eax + 0x14]
mov dword [esp + 0x64], ecx
call fcn.0043b930
add esp, 8
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
push edx
push eax
push ecx
push 0x26
push ebp
call fcn.00432000
mov eax, dword [esp + 0x60]
add esp, 0x14
test eax, eax
je 0x443e38
mov edx, eax
push 0xfffffffffffffff0
push edx
push 0xffffffffffffffff
push ebp
call fcn.00427da0
add esp, 0x10
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x50]
mov ecx, dword [eax + 8]
push ecx
push edx
push 0x1f
push ebp
call fcn.00432990
mov eax, dword [esp + 0x60]
push eax
push 0x2b
push ebp
call fcn.00433410
mov ecx, dword [esp + 0x2c]
push ecx
push edi
push esi
call fcn.004470b0
add esp, 0x28
jmp 0x443f5d
push ebx
mov dword [esp + 0x14], 0
call fcn.00446ce0
add esp, 4
mov byte [esp + 0x1f], al
test al, al
je 0x443ed3
mov edx, dword [ebx]
mov edi, dword [esp + 0x2c]
push 0
mov eax, dword [edx + 0xc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
push edx
push edi
call fcn.00437740
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x3c], eax
je 0x443ed3
mov cl, byte [edi + 0x1e]
test cl, cl
jne 0x443ed3
mov cl, byte [esp + 0x1f]
mov edx, dword [eax + 0xc]
cmp cl, 1
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx]
mov byte [edx], 0x98
lea eax, [esp + 0x78]
push eax
push esi
call fcn.00446dc0
movzx cx, byte [esp + 0x27]
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push eax
push ecx
push esi
call fcn.00449850
mov edi, eax
add esp, 0x1c
test edi, edi
jne 0x443f1a
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
push edx
push eax
call fcn.004299e0
add esp, 8
jmp 0x44400b
lea ecx, [esp + 0x78]
push ecx
push esi
call fcn.00446ef0
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x443f49
mov al, byte [esp + 0x1f]
test al, al
je 0x443f49
mov edx, dword [edi + 0x14]
push edx
push 0
push 1
push ebp
call fcn.00432990
add esp, 0x10
push edi
call fcn.0044e650
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.00446e90
add esp, 0xc
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
push 8
push edi
push ecx
push esi
mov dword [esp + 0x30], 0
call fcn.00435870
mov edx, dword [esp + 0xfc]
mov eax, dword [ebx]
push edi
push edi
push edx
push 0xffffffffffffffff
push 0
push 0
push 0
push eax
push ebx
push esi
call fcn.004444e0
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x64]
push ecx
push edx
call fcn.004299e0
add esp, 0x40
push edi
push ebp
call fcn.00433490
add esp, 8
mov eax, dword [esp + 0x74]
test eax, eax
jl 0x443fc5
push str.DISTINCT
push esi
call fcn.00444af0
add esp, 8
mov eax, dword [esp + 0x20]
test eax, eax
je 0x443ff2
push str.ORDER_BY
push esi
call fcn.00444af0
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0xf4]
push eax
mov edx, dword [ecx]
push edx
push ebp
push ebx
push esi
call fcn.00444b40
add esp, 0x1c
mov eax, dword [esp + 0xa8]
push eax
push ebp
call fcn.00433490
add esp, 8
mov dword [esp + 0x30], 0
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0xa4]
test edi, edi
mov dword [esi + 0x22c], ecx
jne 0x44403f
mov edx, dword [esp + 0xec]
cmp byte [edx], 5
jne 0x44403f
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
push eax
push ecx
push esi
call fcn.00444db0
add esp, 0xc
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x2c]
push edx
push esi
call fcn.00408e50
mov eax, dword [esp + 0xa0]
push eax
push esi
call fcn.00408e50
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xd0
ret