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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x114
mov eax, dword [0x540024]
xor eax, esp
mov dword [esp + 0x110], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
mov dword [esp + 0x3c], eax
push esi
xor eax, eax
mov dword [esp + 0x38], ebx
push edi
mov edi, dword [ebx]
mov esi, edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x58], 1
mov dword [esp + 0x98], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], edi
call fcn.0044c64f
mov dword [esp + 0x18], eax
test esi, esi
je 0x450e71
cmp byte [edi + 0x51], 0
jne 0x450e71
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x450e71
push eax
push eax
push eax
push 0x15
pop edx
mov ecx, ebx
call fcn.0043a77d
add esp, 0xc
test eax, eax
jne 0x450e71
push 0x30
push eax
lea eax, [esp + 0x70]
push eax
call fcn.00469a60
mov eax, dword [esp + 0x50]
add esp, 0xc
cmp byte [eax], 8
ja 0x44f8b3
mov edx, dword [esi + 0x30]
test edx, edx
je 0x44f8a8
mov ecx, edi
call fcn.004335e4
xor eax, eax
and dword [esi + 8], 0xfffffffe
mov dword [esi + 0x30], eax
jmp 0x44f8b5
xor eax, eax
push eax
mov edx, esi
mov ecx, ebx
call fcn.0044f2ea
xor eax, eax
pop ecx
cmp dword [ebx + 0x24], eax
jne 0x44fa86
cmp byte [edi + 0x51], al
jne 0x44fa86
mov eax, dword [esp + 0x44]
cmp byte [eax], 9
jne 0x44f8e6
mov edx, esi
mov ecx, ebx
call fcn.0044c110
mov edx, esi
mov ecx, ebx
call fcn.0045ea02
test eax, eax
jne 0x44fa86
mov eax, dword [esi + 0x20]
lea edi, [esp + 0xa8]
mov dword [esp + 0x2c], eax
xor edx, edx
mov eax, dword [esi + 8]
shr eax, 3
and eax, 1
mov dword [esp + 0xc], edx
mov dword [esp + 0x4c], eax
xor eax, eax
push 0xa
pop ecx
rep stosd dword es:[edi], eax
mov ecx, edx
mov eax, dword [esi + 0x30]
mov dword [esp + 0xa8], eax
cmp dword [esi + 0x34], edx
jne 0x44fa44
mov edi, dword [esp + 0x2c]
cmp ecx, dword [edi]
jge 0x44faba
imul eax, ecx, 0x48
mov dword [esp + 0x14], eax
test byte [eax + edi + 0x2c], 8
mov ebx, dword [eax + edi + 0x18]
mov edx, dword [eax + edi + 0x1c]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x54], edx
je 0x44f99e
mov edx, dword [eax + edi + 0x34]
mov ecx, dword [esi + 0x24]
call fcn.00436d8d
test eax, eax
je 0x44f996
mov eax, dword [esp + 0x20]
mov ecx, 0x2000
test word [eax + 0x4c], cx
jne 0x44f996
mov edx, dword [esp + 0x14]
and byte [edx + edi + 0x2c], 0xd7
mov edx, dword [edx + edi + 0x34]
mov ecx, dword [esi + 0x24]
call fcn.0044ac60
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x54]
test edx, edx
je 0x44fa35
mov eax, dword [edx]
mov ebx, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
movsx eax, word [ebx + 0x2a]
mov ebx, dword [esp + 0x3c]
cmp eax, dword [esp + 0x28]
jne 0x44fa69
test byte [edx + 8], 8
jne 0x44fa35
xor eax, eax
cmp dword [edx + 0x30], eax
je 0x44f9e9
test ecx, ecx
jne 0x44f9e9
test dword [esi + 8], 0x40000
je 0x44f9e9
cmp dword [edi], 1
je 0x44fa35
test byte [edi + 0x74], 0xa
jne 0x44fa35
push dword [esp + 0x4c]
mov edx, esi
push ecx
mov ecx, ebx
call fcn.0044de51
pop ecx
pop ecx
test eax, eax
je 0x44fa09
xor eax, eax
cmp dword [ebx + 0x24], eax
jne 0x44fa82
or dword [esp + 0xc], 0xffffffff
mov eax, dword [esp + 0x20]
mov edi, dword [esi + 0x20]
mov dword [esp + 0x2c], edi
cmp byte [eax + 0x51], 0
jne 0x450e6a
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xc]
cmp byte [eax], 8
jbe 0x44fa35
mov eax, dword [esi + 0x30]
mov dword [esp + 0xa8], eax
inc ecx
cmp dword [esi + 0x34], 0
mov dword [esp + 0xc], ecx
je 0x44f938
push dword [esp + 0x44]
mov edx, esi
mov ecx, ebx
call fcn.0044cc0e
mov edi, eax
xor eax, eax
pop ecx
cmp dword [esi + 0x38], eax
jne 0x44fa62
mov ecx, ebx
call fcn.00423842
mov eax, edi
jmp 0x450e74
push dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
push dword [ecx]
push eax
push str.expected__d_columns_for__s_but_got__d
push ebx
call fcn.0040e498
add esp, 0x14
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x84]
test edx, edx
je 0x44fa98
mov ecx, edi
call fcn.0040bcca
mov edx, dword [esp + 0x90]
test edx, edx
je 0x44faaa
mov ecx, edi
call fcn.0040bcca
mov ecx, ebx
call fcn.00423842
mov eax, dword [esp + 0x58]
jmp 0x450e74
mov eax, dword [edi]
xor edx, edx
cmp eax, 1
jle 0x44fada
mov ecx, dword [esp + 0x20]
cmp word [ecx + 0x4c], dx
jl 0x44fada
mov edx, esi
mov ecx, ebx
call fcn.0044e47c
mov eax, dword [edi]
xor edx, edx
mov dword [esp + 0x38], 0x534ee8
mov ecx, edx
mov dword [esp + 0x1c], ecx
test eax, eax
jle 0x44fdf0
mov dword [esp + 0x2c], edi
jmp 0x44faf8
xor edx, edx
imul eax, ecx, 0x48
add eax, 8
add edi, eax
mov dword [esp + 0x24], edi
mov eax, dword [edi + 0x38]
or eax, dword [edi + 0x3c]
jne 0x44fb2e
cmp dword [edi + 8], eax
je 0x44fb2e
push dword [edi + 4]
mov ecx, ebx
push dword [esp + 0x3c]
push dword [edi + 8]
push 0x14
pop edx
call fcn.0043a77d
mov ecx, dword [esp + 0x28]
add esp, 0xc
xor edx, edx
mov eax, dword [edi + 0x14]
mov dword [esp + 0xc], eax
test eax, eax
je 0x44fddf
mov dword [esp + 0x28], edx
mov ecx, esi
lea edx, [esp + 0x28]
call fcn.00432508
mov eax, dword [esp + 0x28]
mov ecx, 0x1000
add dword [ebx + 0xd0], eax
mov eax, dword [esp + 0x20]
test word [eax + 0x4c], cx
jne 0x44fb84
movzx eax, byte [edi + 0x24]
mov ecx, ebx
mov edx, dword [esp + 0xc]
shr eax, 5
and eax, 1
push eax
push dword [edi + 0x2c]
push dword [esi + 0x24]
call fcn.0044e502
add esp, 0xc
cmp dword [esp + 0x1c], 0
mov eax, dword [ebx + 0xf0]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 8]
mov dword [ebx + 0xf0], eax
jne 0x44fc75
mov eax, dword [esp + 0x2c]
cmp dword [eax], 1
je 0x44fbb5
test byte [eax + 0x74], 0xa
je 0x44fc75
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov esi, dword [edi + 0x6c]
inc esi
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
push esi
push 0
push eax
mov dword [ecx + 0x1c], eax
mov ecx, edi
push 0xd
pop edx
call fcn.0042365a
mov eax, dword [esp + 0x30]
add esp, 0xc
mov byte [esp + 0xd0], 0xd
mov dword [eax + 0x18], esi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0xd4], eax
xor eax, eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xc]
push dword [eax + 0x14]
push str.CO_ROUTINE__u
push 1
push ebx
call fcn.004237f1
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xe0]
push eax
mov ecx, ebx
call fcn.0044f7f8
mov edx, dword [esp + 0x38]
add esp, 0x14
mov eax, dword [esp + 0xc]
mov ecx, dword [edx + 0x10]
mov ax, word [eax + 6]
mov word [ecx + 0x2c], ax
mov ecx, edi
mov eax, dword [esp + 0xd8]
or dword [edx + 0x28], 0x10
mov dword [edx + 0x20], eax
mov edx, dword [edx + 0x1c]
call fcn.004238df
lea edx, [esi - 1]
mov ecx, edi
call fcn.00423db7
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x44fd9f
mov eax, dword [ebx + 0x2c]
xor ecx, ecx
push ecx
inc eax
mov dword [esp + 0x2c], ecx
push eax
push ecx
mov dword [ebx + 0x2c], eax
mov dword [edi + 0x1c], eax
mov edi, dword [esp + 0x24]
mov ecx, edi
push 0x46
pop edx
call fcn.0042365a
mov esi, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x10], eax
lea ecx, [eax + 1]
test byte [esi + 0x28], 8
mov dword [esi + 0x18], ecx
jne 0x44fcc3
xor eax, eax
mov ecx, edi
push eax
push eax
push eax
push 0x11
pop edx
call fcn.0042365a
add esp, 0xc
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x2c]
mov edx, esi
call fcn.0044f763
mov dword [esp + 0x14], eax
test eax, eax
je 0x44fd02
push 0
push dword [eax + 0x2c]
mov ecx, edi
push dword [esi + 0x2c]
push 0x6d
pop edx
call fcn.0042365a
mov eax, dword [esp + 0x20]
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
movzx eax, word [eax + 6]
mov word [ecx + 6], ax
mov ecx, eax
jmp 0x44fd5d
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xd4], eax
xor eax, eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xc]
mov byte [esp + 0xd0], 0xc
push dword [eax + 0x14]
push str.MATERIALIZE__u
push 1
push ebx
call fcn.004237f1
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0xe0]
push eax
mov ecx, ebx
call fcn.0044f7f8
mov eax, dword [esp + 0x20]
add esp, 0x14
movzx ecx, word [eax + 6]
mov eax, dword [esi + 0x10]
mov word [eax + 0x2c], cx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x44fd7b
mov edx, eax
mov ecx, edi
call fcn.00423db7
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esi + 0x1c]
push 0x42
pop edx
call fcn.0042365a
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, edi
mov esi, eax
call fcn.00423db7
mov dword [eax + 4], esi
mov edi, dword [esp + 0x20]
xor eax, eax
mov byte [ebx + 0x13], al
mov dword [ebx + 0x1c], eax
cmp byte [edi + 0x51], al
jne 0x450e49
mov esi, dword [esp + 0x40]
lea edx, [esp + 0x28]
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.00432508
mov eax, dword [esp + 0x28]
sub dword [ebx + 0xd0], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 0xf0], eax
mov edi, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x1c], ecx
cmp ecx, dword [edi]
jl 0x44faf6
mov eax, dword [esi + 0x24]
xor ecx, ecx
mov edi, dword [esi]
inc ecx
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x54], eax
mov al, byte [esi + 8]
and al, cl
mov dword [esp + 0x28], edi
mov byte [esp + 0x110], al
mov eax, dword [esi + 8]
and al, 9
cmp al, cl
jne 0x44fe50
mov ecx, dword [esp + 0xa8]
mov edx, edi
push 0xffffffffffffffff
call fcn.00436a24
pop ecx
test eax, eax
jne 0x44fe50
mov ecx, dword [esp + 0x20]
mov edx, edi
and dword [esi + 8], 0xfffffffe
push eax
call fcn.00432ed7
pop ecx
mov dword [esp + 0xc], eax
mov dword [esi + 0x28], eax
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x44fea7
push dword [edi]
xor eax, eax
mov ecx, ebx
push eax
call fcn.0044ba73
mov edx, dword [ebx + 0x28]
push 0xfffffffffffffff7
push eax
xor eax, eax
mov dword [esp + 0xc0], edx
push eax
mov eax, dword [esp + 0xbc]
lea ecx, [edx + 1]
mov dword [ebx + 0x28], ecx
mov ecx, dword [eax]
mov eax, dword [edi]
inc ecx
mov edi, dword [esp + 0x2c]
add eax, ecx
push eax
push edx
push 0x70
pop edx
mov ecx, edi
call fcn.0042377e
add esp, 0x1c
mov dword [esp + 0xbc], eax
jmp 0x44feb3
or dword [esp + 0xbc], 0xffffffff
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
cmp byte [eax], 0xc
jne 0x44fed4
mov ecx, dword [esp + 0x28]
push 0
push dword [ecx]
mov ecx, edi
push dword [eax + 4]
push 0x70
pop edx
call fcn.0042365a
add esp, 0xc
dec dword [ebx + 0x38]
mov ecx, 0x4000
mov eax, dword [ebx + 0x38]
mov dword [esp + 0xec], eax
test dword [esi + 8], ecx
jne 0x44fef4
mov ecx, 0x140
mov word [esi + 6], cx
push eax
mov edx, esi
mov ecx, ebx
call fcn.0044c66f
xor eax, eax
pop ecx
cmp dword [esi + 0xc], eax
jne 0x44ff25
mov edx, dword [esp + 0xbc]
test edx, edx
js 0x44ff25
mov ecx, edi
call fcn.00423db7
mov byte [eax], 0x72
or byte [esp + 0xc8], 1
xor eax, eax
test byte [esi + 8], 1
je 0x44ff97
mov eax, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0x114], eax
inc eax
mov dword [ebx + 0x28], eax
xor eax, eax
mov edx, dword [esi]
push eax
push eax
call fcn.0044ba73
mov ecx, dword [esp + 0x20]
mov edi, eax
xor eax, eax
push eax
push eax
push dword [esp + 0x124]
push 0x70
pop edx
call fcn.0042365a
add esp, 0x14
mov esi, eax
mov edx, esi
push 0xfffffffffffffff7
push edi
mov edi, dword [esp + 0x20]
mov ecx, edi
call fcn.00423cf9
pop ecx
pop ecx
push 8
pop edx
mov ecx, edi
mov dword [esp + 0x118], esi
call fcn.00423b1e
mov esi, dword [esp + 0x40]
xor eax, eax
mov byte [esp + 0x111], 3
jmp 0x44ff9e
mov byte [esp + 0x111], al
cmp dword [esp + 0x4c], 0
mov ecx, dword [esp + 0xc]
jne 0x4501b3
test ecx, ecx
jne 0x4501b3
cmp byte [esp + 0x110], cl
mov eax, pe_nt_image_headers32
mov edx, 0x4000
cmovne ecx, eax
mov ax, word [esi + 8]
and ax, dx
or cx, ax
movzx eax, cx
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x44]
mov dword [esp + 0x10], eax
test eax, eax
je 0x44ffee
mov edx, eax
mov ecx, ebx
call fcn.0045f14f
movsx eax, word [esi + 6]
mov ecx, ebx
mov edx, dword [esp + 0x2c]
push eax
push dword [esp + 0x18]
push dword [esi]
push dword [esp + 0xb4]
push dword [esp + 0x60]
call fcn.0045d194
mov ecx, eax
add esp, 0x14
mov dword [esp + 0x24], ecx
test ecx, ecx
je 0x450e45
movzx eax, word [ecx + 0x48]
cmp ax, word [esi + 6]
jge 0x45002e
mov word [esi + 6], ax
cmp byte [esp + 0x110], 0
je 0x450056
mov cl, byte [ecx + 0x33]
movzx edx, byte [esp + 0x111]
test cl, cl
movzx eax, cl
mov ecx, dword [esp + 0x24]
cmovne edx, eax
mov byte [esp + 0x111], dl
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x4500a1
movsx eax, byte [ecx + 0x2f]
mov dword [esp + 0xac], eax
cmp byte [ecx + 0x34], 0
jne 0x450077
mov eax, dword [ecx + 0x20]
jmp 0x450085
movzx eax, byte [ecx + 0x2e]
imul eax, eax, 0x58
mov eax, dword [eax + ecx + 0x2a8]
mov dword [esp + 0xc4], eax
xor ecx, ecx
mov eax, dword [esp + 0xac]
cmp eax, dword [edx]
cmove edx, ecx
mov dword [esp + 0xa8], edx
cmp dword [esp + 0xbc], 0
jl 0x4500bd
test edx, edx
jne 0x4500bd
mov edx, dword [esp + 0xbc]
mov ecx, edi
call fcn.00423c5f
cmp dword [esp + 0x10], 0
je 0x450179
mov ebx, dword [ebx + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
lea esi, [ebx - 1]
sub ebx, 2
inc dword [ecx + 0x2c]
mov edi, dword [ecx + 0x2c]
push esi
push edi
push dword [esp + 0x2c]
lea eax, [ebx - 1]
mov dword [ecx + 0x38], eax
call fcn.0046056e
add esp, 0xc
lea eax, [ebx - 1]
xor ecx, ecx
push ecx
push eax
push ecx
mov ecx, dword [esp + 0x24]
push 0xb
pop edx
call fcn.0042365a
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov edx, esi
call fcn.00423947
mov edx, dword [esp + 0x40]
lea esi, [ebx - 1]
mov ecx, dword [esp + 0x3c]
xor eax, eax
push esi
push ebx
push dword [esp + 0x4c]
mov dword [esp + 0xd0], eax
lea eax, [esp + 0x11c]
push eax
lea eax, [esp + 0xb8]
push eax
push 0xffffffffffffffff
call fcn.0044b2ea
mov ecx, dword [esp + 0x30]
mov edx, ebx
call fcn.00423947
xor eax, eax
push eax
push eax
push edi
mov edi, dword [esp + 0x3c]
mov ecx, edi
push 0x42
pop edx
call fcn.0042365a
add esp, 0x24
mov edx, esi
mov ecx, edi
call fcn.00423947
mov ebx, dword [esp + 0x3c]
jmp 0x450dbf
mov eax, dword [esp + 0x24]
mov edx, esi
mov ecx, ebx
push dword [eax + 0x24]
push dword [eax + 0x20]
lea eax, [esp + 0x118]
push dword [esp + 0x4c]
push eax
lea eax, [esp + 0xb8]
push eax
push 0xffffffffffffffff
call fcn.0044b2ea
mov ecx, dword [esp + 0x3c]
add esp, 0x18
call fcn.0045db5b
jmp 0x450dbf
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], eax
test ecx, ecx
je 0x450263
mov edx, dword [esi]
mov eax, dword [edx]
test eax, eax
jle 0x4501e3
add edx, 0x1a
xor edi, edi
dec eax
mov word [edx], di
lea edx, [edx + 0x18]
test eax, eax
jg 0x4501d2
mov edi, dword [esp + 0x18]
mov eax, dword [ecx]
test eax, eax
jle 0x4501fd
lea edx, [ecx + 0x1a]
xor ebx, ebx
dec eax
mov word [edx], bx
lea edx, [edx + 0x18]
test eax, eax
jg 0x4501ec
mov ebx, dword [esp + 0x3c]
push 0x42
pop eax
cmp word [esi + 6], ax
jle 0x45020a
mov word [esi + 6], ax
mov edx, dword [esp + 0xa8]
test edx, edx
je 0x450269
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x450269
and dword [esp + 0x10], 0
test eax, eax
jle 0x45024d
mov ebx, dword [esp + 0x10]
xor eax, eax
mov edi, eax
mov al, byte [edi + edx + 0x10]
lea edi, [edi + 0x18]
and al, 1
inc ebx
mov byte [ecx + edi - 8], al
mov edx, dword [esp + 0xa8]
cmp ebx, dword [ecx]
jl 0x45022c
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
push 0xffffffffffffffff
call fcn.00436a24
pop ecx
test eax, eax
jne 0x450269
mov dword [esp + 0x5c], 1
jmp 0x450269
xor eax, eax
mov word [esi + 6], ax
dec dword [ebx + 0x38]
xor edx, edx
mov eax, dword [ebx + 0x38]
xorps xmm0, xmm0
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x68]
mov dword [esp + 0xf8], eax
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0xf4], ecx
inc eax
mov ecx, dword [esp + 0xc]
movlpd qword [esp + 0xfc], xmm0
movlpd qword [esp + 0x104], xmm0
mov dword [esp + 0x10c], edx
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x78], eax
test ecx, ecx
je 0x4502c6
mov eax, dword [ecx]
mov dword [esp + 0x74], eax
jmp 0x4502ca
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x80], ecx
lea ecx, [esp + 0xf0]
call fcn.00437193
mov edx, dword [esp + 0xa8]
lea ecx, [esp + 0xf0]
call fcn.00437193
mov ecx, dword [esp + 0x54]
test ecx, ecx
je 0x45035d
cmp dword [esp + 0xc], 0
je 0x45034f
mov edx, dword [esi + 0x2c]
xorps xmm0, xmm0
movlpd qword [esp + 0xd8], xmm0
movlpd qword [esp + 0xe0], xmm0
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], 0x44f6c4
mov dword [esp + 0xe8], esi
test edx, edx
je 0x450348
lea ecx, [esp + 0xd0]
call fcn.004300d7
mov ecx, dword [esp + 0x54]
mov eax, dword [esi + 0x24]
mov dword [esp + 0x50], eax
mov edx, ecx
lea ecx, [esp + 0xf0]
call fcn.0043715f
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x94]
mov dword [esp + 0x8c], eax
xor eax, eax
cmp dword [esi + 0x28], eax
jne 0x4503b5
cmp dword [esi + 0x2c], eax
jne 0x4503b5
cmp edx, 1
jne 0x4503b5
mov edx, dword [esp + 0x90]
lea eax, [esp + 0x48]
mov ecx, dword [esp + 0x20]
push eax
mov edx, dword [edx]
call fcn.0044e608
mov edx, dword [esp + 0x98]
mov byte [esp + 0x3b], al
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x9c], eax
xor eax, eax
pop ecx
jmp 0x4503b9
mov byte [esp + 0x37], al
mov dword [esp + 0x10], eax
test edx, edx
jle 0x45043a
mov ecx, dword [esp + 0x108]
mov edi, eax
mov esi, eax
mov eax, dword [esp + 0x90]
or ecx, 8
mov eax, dword [edi + eax]
mov dword [esp + 0x108], ecx
lea ecx, [esp + 0xf0]
mov dword [esp + 0x10], eax
mov edx, dword [eax + 0x14]
call fcn.00437193
mov edx, dword [esp + 0x10]
test dword [edx + 4], 0x1000000
je 0x450412
mov edx, dword [edx + 0x2c]
lea ecx, [esp + 0xf0]
mov edx, dword [edx + 0x28]
call fcn.0043715f
mov ecx, dword [esp + 0x108]
add edi, 0x10
mov edx, dword [esp + 0x94]
and ecx, 0xfffffff7
inc esi
mov dword [esp + 0x108], ecx
cmp esi, edx
jl 0x4503cc
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x51], 0
jne 0x450e66
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x450a47
mov eax, dword [ebx + 0x28]
mov edx, ecx
push dword [esp + 0x88]
mov dword [esp + 0x70], eax
mov ecx, ebx
inc eax
mov dword [ebx + 0x28], eax
xor eax, eax
push eax
call fcn.0044ba73
push 0xfffffffffffffff7
push eax
mov dword [esp + 0xb0], eax
mov ecx, edi
xor eax, eax
push eax
push dword [esp + 0x88]
push dword [esp + 0x84]
push 0x72
pop edx
call fcn.0042377e
mov ecx, dword [ebx + 0x38]
add esp, 0x1c
mov edx, dword [esp + 0xc]
mov dword [esp + 0xa4], eax
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esp + 0x10], eax
inc eax
dec ecx
mov dword [esp + 0x30], eax
add eax, 2
mov dword [esp + 0x4c], ecx
dec ecx
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x38], ecx
mov dword [esp + 0x38], ecx
mov ecx, eax
add ecx, dword [edx]
mov dword [esp + 0x1c], eax
mov dword [ebx + 0x2c], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x64], eax
mov eax, dword [edx]
add eax, ecx
mov ecx, edi
mov dword [ebx + 0x2c], eax
xor eax, eax
push eax
push dword [esp + 0x34]
push eax
push 0x46
pop edx
call fcn.0042365a
mov eax, dword [esp + 0x18]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
inc ecx
mov eax, dword [eax]
dec eax
add eax, ecx
push eax
push ecx
xor eax, eax
mov ecx, edi
push eax
push 0x49
pop edx
call fcn.0042365a
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x3c]
push dword [esp + 0x24]
push 0xc
pop edx
call fcn.0042365a
add esp, 0xc
xor edx, edx
push edx
cmp dword [esp + 0x60], edx
mov ecx, 0x240
push 0x40
pop eax
cmovne eax, ecx
mov ecx, ebx
movzx eax, ax
push eax
push edx
push dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
push dword [esp + 0x60]
call fcn.0045d194
mov edx, eax
add esp, 0x14
mov dword [esp + 0x48], edx
test edx, edx
je 0x450e45
mov eax, dword [esp + 0xc]
movsx ecx, byte [edx + 0x2f]
cmp ecx, dword [eax]
jne 0x450589
xor ecx, ecx
mov esi, ecx
mov dword [esp + 0x2c], esi
jmp 0x450743
cmp byte [esp + 0x110], 0
je 0x45059e
test byte [esi + 8], 1
mov eax, str.DISTINCT
je 0x4505a3
mov eax, str.GROUP_BY
push eax
push str.USE_TEMP_B_TREE_FOR__s
xor eax, eax
push eax
push ebx
call fcn.004237f1
mov esi, dword [esp + 0x1c]
add esp, 0x10
cmp dword [esp + 0x88], 0
mov dword [esp + 0x2c], 1
mov eax, dword [esi]
mov edx, eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x14], eax
jle 0x45061b
mov ebx, dword [esp + 0x84]
mov edi, eax
mov esi, dword [esp + 0x88]
add ebx, 0xc
cmp dword [ebx], edi
lea eax, [edx + 1]
lea ebx, [ebx + 0x18]
cmovl eax, edx
mov edx, eax
lea eax, [edi + 1]
cmovl eax, edi
mov edi, eax
sub esi, 1
jne 0x4505f1
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
mov dword [esp + 0x58], edx
mov ecx, ebx
call fcn.004371ff
xor ecx, ecx
mov dword [esp + 0x50], eax
push ecx
push ecx
push eax
mov edx, esi
mov ecx, ebx
call fcn.00435ee2
mov ecx, dword [esp + 0x94]
xor edx, edx
add esp, 0xc
mov eax, edx
mov dword [esp + 0x60], eax
test ecx, ecx
jle 0x450698
mov ebx, dword [esp + 0x9c]
mov esi, edx
mov edx, dword [esp + 0x84]
cmp dword [esi + edx + 0xc], ebx
jl 0x450688
mov eax, dword [esp + 0x50]
mov ecx, edi
add eax, ebx
push eax
push dword [esi + edx + 8]
push dword [esi + edx + 4]
mov edx, dword [esi + edx]
call fcn.00434d0c
mov ecx, dword [esp + 0x94]
add esp, 0xc
mov eax, dword [esp + 0x60]
inc ebx
inc eax
add esi, 0x18
mov dword [esp + 0x60], eax
cmp eax, ecx
jl 0x450653
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
call fcn.004371c7
mov esi, eax
mov ecx, edi
push esi
push dword [esp + 0x5c]
push dword [esp + 0x58]
push 0x5c
pop edx
call fcn.0042365a
add esp, 0xc
xor eax, eax
mov edx, 0x83
mov ecx, edi
push eax
push esi
push dword [esp + 0x74]
call fcn.0042365a
add esp, 0xc
mov edx, esi
mov ecx, ebx
call fcn.004371e6
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x50]
push esi
call fcn.00437235
mov ecx, dword [esp + 0x4c]
add esp, 4
call fcn.0045db5b
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov dword [esp + 0x60], edx
mov dword [esp + 0x70], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.004371c7
push esi
push eax
push edx
push 0x74
pop edx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.0042365a
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push dword [esp + 0x74]
push 0x22
pop edx
call fcn.0042365a
mov edx, dword [esp + 0x54]
xor esi, esi
add esp, 0xc
mov byte [esp + 0x69], 1
inc esi
xor ecx, ecx
cmp dword [esp + 0x5c], 0
je 0x450773
mov eax, dword [esp + 0x20]
test byte [eax + 0x4c], 4
jne 0x450773
test esi, esi
jne 0x45075e
cmp byte [edx + 0x30], 0
je 0x450773
mov edx, dword [esp + 0xbc]
mov dword [esp + 0xa8], ecx
mov ecx, edi
call fcn.00423c5f
mov eax, dword [edi + 0x6c]
mov dword [esp + 0x9c], eax
test esi, esi
je 0x45079a
push dword [esp + 0x60]
mov ecx, edi
push dword [esp + 0x18]
push dword [esp + 0x74]
push 0x7e
pop edx
call fcn.0042365a
add esp, 0xc
mov esi, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x14], eax
mov ecx, dword [esi]
test ecx, ecx
jle 0x4507fc
lea edx, [esi + 4]
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x64]
add ecx, eax
cmp dword [esp + 0x2c], 0
push ecx
je 0x4507d3
push eax
push dword [esp + 0x68]
mov ecx, edi
push 0x5a
pop edx
call fcn.0042365a
add esp, 0xc
jmp 0x4507e2
mov byte [esp + 0x6c], 1
mov ecx, ebx
mov edx, dword [edx]
call fcn.00435e15
pop ecx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
inc eax
mov ecx, dword [esi]
add edx, 0x18
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], edx
cmp eax, ecx
jl 0x4507b1
mov eax, dword [esp + 0xa0]
test eax, eax
je 0x45080b
inc dword [eax]
mov ecx, dword [esi]
push 0xfffffffffffffff7
push eax
mov eax, dword [esp + 0x24]
push ecx
push dword [esp + 0x70]
inc eax
mov ecx, edi
push eax
push 0x57
pop edx
call fcn.0042377e
mov esi, dword [edi + 0x6c]
add esp, 0x14
mov ecx, edi
lea eax, [esi + 1]
push eax
push 0
push eax
push 0x10
pop edx
call fcn.0042365a
mov eax, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x64]
mov ecx, ebx
push dword [eax]
mov eax, dword [esp + 0x20]
inc eax
push eax
call fcn.00434dfa
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x58]
mov eax, dword [esp + 0x40]
inc eax
push eax
push 0xc
pop edx
call fcn.0042365a
add esp, 0x14
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x28]
push dword [esp + 0x38]
push 0x2f
pop edx
call fcn.0042365a
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0x3c]
push dword [esp + 0x24]
push 0xc
pop edx
call fcn.0042365a
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00423db7
mov ecx, dword [edi + 0x6c]
mov esi, dword [esp + 0x10]
mov edx, esi
mov dword [eax + 8], ecx
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.0044f461
pop ecx
xor eax, eax
mov ecx, edi
push eax
push esi
push 1
push 0x46
pop edx
call fcn.0042365a
add esp, 0xc
cmp dword [esp + 0x2c], 0
je 0x4508f7
xor eax, eax
mov ecx, edi
push eax
push dword [esp + 0xa0]
push dword [esp + 0x74]
push 3
pop edx
call fcn.0042365a
add esp, 0xc
jmp 0x45090e
mov ecx, dword [esp + 0x48]
call fcn.0045db5b
mov edx, dword [esp + 0xa4]
mov ecx, edi
call fcn.00423c5f
mov esi, dword [esp + 0x30]
xor eax, eax
push eax
push dword [esp + 0x50]
mov ecx, edi
lea eax, [esi + 1]
push eax
push 0xc
pop edx
call fcn.0042365a
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, edi
call fcn.004236b3
mov edi, dword [edi + 0x6c]
xor eax, eax
push eax
push esi
mov esi, dword [esp + 0x20]
mov ecx, esi
push 1
push 0x46
pop edx
call fcn.0042365a
add esp, 0xc
xor eax, eax
mov ecx, esi
push eax
push eax
mov eax, dword [esp + 0x38]
inc eax
push eax
push 0x42
pop eax
mov edx, eax
call fcn.0042365a
mov edx, dword [esp + 0x58]
add esp, 0xc
mov ecx, esi
call fcn.00423947
mov esi, dword [esi + 0x6c]
xor eax, eax
mov ecx, dword [esp + 0x18]
push eax
lea eax, [esi + 2]
push eax
push dword [esp + 0x18]
push 0x2f
pop edx
call fcn.0042365a
mov ecx, dword [esp + 0x24]
add esp, 0xc
xor eax, eax
push eax
push eax
mov eax, dword [esp + 0x38]
inc eax
push eax
push 0x42
pop eax
mov edx, eax
call fcn.0042365a
add esp, 0xc
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.0044f407
push 0x10
inc esi
push esi
push dword [esp + 0x5c]
push ebx
call fcn.004363f6
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x120]
push edi
push esi
push dword [esp + 0x5c]
push eax
lea eax, [esp + 0xc8]
push eax
push 0xffffffffffffffff
mov ecx, ebx
call fcn.0044b2ea
mov eax, dword [esp + 0x58]
xor esi, esi
mov edi, dword [esp + 0x40]
inc eax
push esi
push esi
push eax
push 0x42
pop eax
mov edx, eax
mov ecx, edi
call fcn.0042365a
mov edx, dword [esp + 0x6c]
add esp, 0x34
mov ecx, edi
call fcn.00423947
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.0044f358
push esi
push dword [esp + 0x14]
mov ecx, edi
push esi
push 0x46
pop edx
call fcn.0042365a
add esp, 0xc
mov ecx, edi
push esi
push esi
push dword [esp + 0x24]
push 0x42
pop eax
mov edx, eax
call fcn.0042365a
add esp, 0xc
jmp 0x450db4
cmp dword [esi + 0x24], 0
mov ecx, dword [esp + 0x90]
jne 0x450c90
mov ebx, dword [esi]
xor eax, eax
inc eax
cmp dword [ebx], eax
mov ebx, dword [esp + 0x3c]
jne 0x450c90
mov edi, dword [esi + 0x20]
cmp dword [edi], eax
mov edi, dword [esp + 0x18]
jne 0x450c90
mov eax, dword [esi + 0x20]
cmp dword [eax + 0x1c], 0
jne 0x450c90
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x1c], ecx
cmp dword [ecx + 0x38], 0
jne 0x450c89
mov eax, dword [esi]
mov eax, dword [eax + 4]
cmp byte [eax], 0xa3
jne 0x450c89
test edx, edx
je 0x450c89
mov eax, dword [esp + 0x90]
mov eax, dword [eax + 4]
test dword [eax + 4], 0x100
je 0x450c89
mov esi, dword [esi]
mov eax, dword [esi + 4]
mov esi, dword [esp + 0x40]
test dword [eax + 4], 0x1000002
jne 0x450c89
test ecx, ecx
je 0x450c89
mov edx, dword [ecx + 0x48]
mov ecx, dword [ebx]
call fcn.0044a260
mov edx, eax
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
lea ecx, [eax + 1]
mov dword [ebx + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x1c]
mov ecx, ebx
mov dword [esp + 0x4c], eax
call fcn.0043eff2
mov eax, dword [esp + 0x1c]
mov ecx, ebx
mov edx, dword [esp + 0x14]
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.0043a801
mov edx, dword [esp + 0x28]
add esp, 0xc
lea eax, [edx + 0x24]
test byte [eax], 0x20
mov dword [esp + 0xa0], eax
je 0x450b53
mov ecx, edx
call fcn.0043b3c8
mov dword [esp + 0x30], eax
jmp 0x450b57
mov eax, dword [esp + 0x30]
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x450ba7
lea esi, [edx + 0x2e]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0xa4]
test byte [ecx + 0x38], 4
jne 0x450b98
movzx edx, word [ecx + 0x30]
cmp dx, word [edi]
jge 0x450b98
cmp dword [ecx + 0x24], 0
jne 0x450b98
test eax, eax
je 0x450b96
cmp dx, word [eax + 0x30]
jge 0x450b98
mov eax, ecx
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x450b77
mov edi, dword [esp + 0x18]
mov dword [esp + 0x30], eax
test eax, eax
je 0x450bbf
mov ecx, dword [eax + 0x2c]
mov edx, eax
mov dword [esp + 0x4c], ecx
mov ecx, ebx
call fcn.0043f46d
mov dword [esp + 0x48], eax
push 1
push dword [esp + 0x18]
mov ecx, edi
push dword [esp + 0x54]
push dword [esp + 0x1c]
push 0x61
pop edx
call fcn.004238ad
mov eax, dword [esp + 0x58]
add esp, 0x10
test eax, eax
je 0x450bf1
push 0xfffffffffffffff7
push eax
or edx, 0xffffffff
mov ecx, edi
call fcn.00423cf9
pop ecx
pop ecx
xor eax, eax
mov ecx, edi
push eax
mov eax, dword [esp + 0x94]
push dword [eax + 8]
push dword [esp + 0x18]
push 0x5d
pop edx
call fcn.0042365a
add esp, 0xc
xor eax, eax
mov ecx, edi
push eax
push eax
push dword [esp + 0x18]
push 0x75
pop edx
call fcn.0042365a
add esp, 0xc
cmp byte [ebx + 0xc7], 2
jne 0x450d7f
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x450c52
mov eax, dword [esp + 0xa0]
test byte [eax], 0x20
je 0x450c4e
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x450c52
mov eax, dword [ecx]
jmp 0x450c5c
xor eax, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
cmp dword [esp + 0x58], 0
mov ecx, dword [esp + 0x1c]
push eax
mov eax, str._USING_COVERING_INDEX
cmove eax, dword [esp + 0x3c]
push eax
push dword [ecx]
xor eax, eax
push str.SCAN_TABLE__s_s_s
push eax
push ebx
call fcn.004237f1
add esp, 0x18
jmp 0x450d7f
mov ecx, dword [esp + 0x90]
and dword [esp + 0x38], 0
cmp dword [esp + 0x8c], 0
je 0x450cf0
xor eax, eax
test edx, edx
jle 0x450ccf
mov esi, eax
mov eax, dword [ecx]
test dword [eax + 4], 0x1000000
jne 0x450cbb
mov eax, dword [ecx + 4]
test byte [eax + 4], 0x20
jne 0x450cc3
inc esi
add ecx, 0x10
cmp esi, edx
jl 0x450ca7
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
cmp eax, edx
jne 0x450cf0
mov eax, dword [ebx + 0x2c]
xor ecx, ecx
push ecx
inc eax
push eax
push ecx
push 0x46
pop edx
mov ecx, edi
mov dword [esp + 0x44], eax
mov dword [ebx + 0x2c], eax
call fcn.0042365a
add esp, 0xc
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.0044f358
movzx eax, byte [esp + 0x37]
xor ecx, ecx
mov edx, dword [esp + 0x2c]
push ecx
push eax
push ecx
push dword [esp + 0xa4]
mov ecx, ebx
push dword [esp + 0x60]
call fcn.0045d194
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
je 0x450e45
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.0044f461
mov eax, dword [esp + 0x3c]
pop ecx
test eax, eax
je 0x450d55
push 0
push eax
push 1
push 0x46
pop edx
mov ecx, edi
call fcn.0042365a
add esp, 0xc
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x2f], 0
jle 0x450d6d
mov edx, dword [eax + 0x24]
mov ecx, edi
call fcn.004236b3
mov eax, dword [esp + 0x14]
mov ecx, eax
call fcn.0045db5b
lea edx, [esp + 0x68]
mov ecx, ebx
call fcn.0044f407
push 0x10
push dword [esp + 0x28]
xor eax, eax
push dword [esp + 0x5c]
mov dword [esp + 0xb4], eax
push ebx
call fcn.004363f6
mov eax, dword [esp + 0x34]
mov edx, esi
push eax
push eax
push dword [esp + 0x5c]
xor eax, eax
mov ecx, ebx
push eax
push eax
push 0xffffffffffffffff
call fcn.0044b2ea
add esp, 0x28
mov edx, dword [esp + 0x24]
mov ecx, edi
call fcn.00423947
xor esi, esi
cmp byte [esp + 0x111], 3
jne 0x450ddf
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push esi
push ebx
call fcn.004237f1
add esp, 0x10
cmp dword [esp + 0xa8], 0
je 0x450e2b
cmp dword [esp + 0xac], 0
mov ecx, str.ORDER_BY
mov eax, str.RIGHT_PART_OF_ORDER_BY
cmovle eax, ecx
push eax
push str.USE_TEMP_B_TREE_FOR__s
push esi
push ebx
call fcn.004237f1
mov eax, dword [esp + 0x38]
mov ecx, ebx
push dword [esp + 0x54]
mov edx, dword [esp + 0x54]
push dword [eax]
lea eax, [esp + 0xc0]
push eax
call fcn.0044bb2c
add esp, 0x1c
mov edx, dword [esp + 0xec]
mov ecx, edi
call fcn.00423947
xor eax, eax
cmp dword [ebx + 0x24], esi
setg al
mov dword [esp + 0x58], eax
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x98]
test eax, eax
je 0x44fa86
mov edx, eax
mov ecx, edi
call fcn.004335e4
jmp 0x44fa86
mov edi, eax
jmp 0x450e49
mov edi, eax
jmp 0x44fa86
xor eax, eax
inc eax
mov ecx, dword [esp + 0x11c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00467b12
mov esp, ebp
pop ebp
ret