Function at 0x4e4a90
Capabilities:
Inspect section memory permissions

Disassembly:
sub esp, 0x44
mov edx, dword [esp + 0x48]
xor eax, eax
push ebx
push ebp
xor ebx, ebx
mov dword [esp + 0x40], eax
mov ecx, dword [edx]
xor ebp, ebp
push esi
mov esi, dword [esp + 0x64]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x68]
push edi
xor edi, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x3c], 0xa7
mov dword [eax + 0x1c], 0xffffffff
test ebx, ebx
je 0x4e4b74
test byte [esi + 0x18], 6
je 0x4e4afa
xor ebx, ebx
mov dword [esp + 0x5c], ebx
jmp 0x4e4b74
mov ebx, dword [ecx + 0x14]
xor esi, esi
test ebx, ebx
jle 0x4e4b3c
mov ebp, dword [ecx + 0x10]
mov edi, ebp
nop dword [eax + eax]
push dword [esp + 0x5c]
push dword [edi]
call fcn.00526840
add esp, 8
test eax, eax
je 0x4e4b2c
inc esi
add edi, 0x10
cmp esi, ebx
jl 0x4e4b10
jmp 0x4e4b38
mov eax, esi
add eax, eax
mov eax, dword [ebp + eax*8 + 0xc]
mov dword [esp + 0x34], eax
xor ebp, ebp
xor edi, edi
cmp esi, ebx
mov ebx, dword [esp + 0x5c]
jne 0x4e4b70
push ebx
push str.main
call fcn.00526840
mov esi, dword [esp + 0x70]
add esp, 8
test eax, eax
jne 0x4e4b74
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0xc]
mov ebx, dword [eax]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], ebx
jmp 0x4e4b74
mov esi, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
nop dword [eax + eax]
mov ecx, dword [esi + 4]
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x4e4fea
xor eax, eax
lea esi, [ecx + 8]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
cmp dword [ecx], eax
jle 0x4e4fba
nop dword [eax]
nop dword [eax + eax]
test dword [esi + 0x28], 0x2000
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x40], ebp
je 0x4e4ce9
mov eax, dword [esi + 0x14]
xor ebx, ebx
xor edi, edi
mov ebp, dword [eax + 0x1c]
cmp dword [ebp], ebx
jle 0x4e4cac
lea esi, [ebp + 0x14]
nop word [eax + eax]
push dword [esp + 0x5c]
lea eax, [esi - 0xc]
push edx
push dword [esp + 0x6c]
push eax
call fcn.00515de0
add esp, 0x10
test eax, eax
je 0x4e4c8b
cmp dword [esp + 0x18], 0
jle 0x4e4c5e
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x4e4c3f
push dword [esp + 0x64]
push dword [eax + 0x30]
call fcn.00512580
add esp, 8
test eax, eax
js 0x4e4c3f
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x4e4c8b
test al, 8
jne 0x4e4cc1
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4e4c54
push eax
push dword [esp + 0x2c]
call fcn.004d6580
add esp, 8
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ebx, 1
inc dword [esp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x38], 2
mov word [eax + 0x20], di
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x4e4f8a
mov edx, dword [esp + 0x60]
inc edi
add esi, 0x14
cmp edi, dword [ebp]
jl 0x4e4be0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
test ebx, ebx
jne 0x4e5063
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x5c]
test edx, edx
jne 0x4e4cf3
mov ebp, dword [esp + 0x18]
jmp 0x4e4fa2
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
movzx eax, word [eax + 0x20]
push eax
push edx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x64]
call fcn.004d6f00
mov eax, dword [esp + 0x40]
add esp, 0x10
jmp 0x4e4c5a
test edx, edx
je 0x4e4e07
jmp 0x4e4cf7
mov ebp, dword [esp + 0x40]
test ebx, ebx
je 0x4e4d41
mov edi, dword [esp + 0x34]
cmp dword [ebp + 0x3c], edi
jne 0x4e4cb8
test edi, edi
jne 0x4e4d41
mov ecx, 0x774270
mov eax, ebx
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4e4d30
test dl, dl
je 0x4e4d2c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4e4d30
add eax, 2
add ecx, 2
test dl, dl
jne 0x4e4d10
xor eax, eax
jmp 0x4e4d35
sbb eax, eax
or eax, 1
mov edx, dword [esp + 0x60]
test eax, eax
jne 0x4e5090
mov edi, dword [esi + 0xc]
test edi, edi
je 0x4e4d7b
mov esi, edi
sub esi, dword [esp + 0x60]
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4e4d62
test ecx, ecx
je 0x4e4dcb
inc edx
jmp 0x4e4d50
movzx eax, byte [eax + 0x6e8f28]
movzx ecx, byte [ecx + 0x6e8f28]
sub ecx, eax
jne 0x4e506c
inc edx
jmp 0x4e4d50
mov esi, dword [ebp]
mov ebx, dword [esp + 0x60]
sub esi, ebx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4e4d96
test ecx, ecx
je 0x4e4dcb
inc edx
jmp 0x4e4d84
movzx eax, byte [eax + 0x6e8f28]
movzx ecx, byte [ecx + 0x6e8f28]
sub ecx, eax
jne 0x4e4dab
inc edx
jmp 0x4e4d84
cmp dword [ebp + 0x14], 1
jne 0x4e5081
push dword [esp + 0x34]
push ebp
push ebx
call fcn.004df910
add esp, 0xc
test eax, eax
je 0x4e5081
mov eax, dword [esp + 0x58]
cmp byte [eax + 0xd8], 2
jb 0x4e4e03
test edi, edi
je 0x4e4e03
mov eax, dword [eax + 0x114]
test eax, eax
je 0x4e4e03
mov ecx, dword [esp + 0x6c]
add ecx, 0x2c
nop dword [eax]
cmp dword [eax], ecx
je 0x4e4dfd
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4e4df0
jmp 0x4e4e03
mov dword [eax], 0
mov esi, dword [esp + 0x1c]
push dword [esp + 0x64]
call fcn.00526880
mov edi, dword [ebp + 4]
add esp, 4
movsx ebp, word [ebp + 0x22]
xor ebx, ebx
mov byte [esp + 0x13], al
test ebp, ebp
jle 0x4e4f09
nop dword [eax + eax]
cmp byte [edi + 0xa], al
jne 0x4e4efd
mov esi, dword [esp + 0x64]
mov edx, dword [edi]
sub esi, edx
movzx eax, byte [edx]
movzx ecx, byte [esi + edx]
cmp eax, ecx
jne 0x4e4edd
test eax, eax
jne 0x4e4eef
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
jle 0x4e4eb4
test dword [esi + 0x28], 0x400
je 0x4e4e95
push dword [esp + 0x64]
push dword [esi + 0x30]
call fcn.00512580
add esp, 8
test eax, eax
js 0x4e4e95
mov al, byte [esi + 0x24]
test al, 0x10
je 0x4e4ef9
test al, 8
jne 0x4e4f3e
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4e4eaa
push eax
push dword [esp + 0x2c]
call fcn.004d6580
add esp, 8
xor ecx, ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
inc ebp
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
movsx eax, word [edx + 0x20]
cmp ebx, eax
jne 0x4e4f6a
or eax, 0xffffffff
jmp 0x4e4f6d
movzx ecx, byte [ecx + 0x6e8f28]
movzx eax, byte [eax + 0x6e8f28]
sub eax, ecx
jne 0x4e4ef5
inc edx
jmp 0x4e4e41
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x13]
inc ebx
add edi, 0x10
cmp ebx, ebp
jl 0x4e4e30
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x18]
test ebp, ebp
jne 0x4e4f92
test dword [edx + 0x1c], 0x200
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
jne 0x4e4fa2
inc dword [esp + 0x38]
mov edi, esi
mov dword [esp + 0x14], edi
jmp 0x4e4fa6
mov edi, dword [esp + 0x6c]
mov edx, dword [esp + 0x14]
movzx eax, word [edi + 0x20]
push eax
push edx
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x64]
call fcn.004d6f00
mov eax, dword [esp + 0x40]
add esp, 0x10
mov dword [esp + 0x24], eax
jmp 0x4e4eb8
movzx eax, bx
mov word [edi + 0x20], ax
test dword [esi + 0x28], 0x2000
je 0x4e4f11
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [ebx + ebx*4]
or dword [ecx + eax*4 + 0x14], 0x40
jmp 0x4e4f11
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
inc eax
add esi, 0x48
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], esi
cmp eax, dword [ecx]
jl 0x4e4bb0
test edi, edi
je 0x4e4fe2
mov ecx, dword [esp + 0x6c]
mov eax, dword [edi + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x10]
mov dword [ecx + 0x2c], eax
test byte [edi + 0x24], 0x48
je 0x4e4fdb
or dword [ecx + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x34], eax
test ebp, ebp
jne 0x4e5357
test ebx, ebx
jne 0x4e52a2
mov esi, dword [esp + 0x58]
xor ebp, ebp
mov dword [esp + 0x2c], ebp
mov eax, dword [esi + 0x80]
test eax, eax
je 0x4e5101
cmp byte [esi + 0x9b], 0
mov bl, byte [esi + 0x9a]
je 0x4e509d
mov edi, dword [esp + 0x68]
test dword [edi + 0x18], 0x400
je 0x4e5101
test edx, edx
je 0x4e5045
push dword [eax]
push edx
call fcn.00526840
add esp, 8
test eax, eax
jne 0x4e5101
xor eax, eax
cmp bl, 0x80
mov ebx, dword [esp + 0x6c]
setne al
mov dword [ebx + 0x1c], eax
mov ebp, dword [esi + 0x80]
mov dword [esp + 0x2c], ebp
jmp 0x4e5105
mov ebp, dword [esp + 0x18]
jmp 0x4e4f9a
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
jmp 0x4e4f9e
mov esi, dword [esp + 0x1c]
mov edx, ebx
mov ebp, dword [esp + 0x18]
jmp 0x4e4f96
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
jmp 0x4e4f9e
cmp bl, 0x80
je 0x4e50d8
test edx, edx
je 0x4e50d3
push edx
push 0x6ed2ac
call fcn.00526840
add esp, 8
test eax, eax
jne 0x4e50cf
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], 1
mov ebp, dword [esi + 0x80]
mov dword [esp + 0x2c], ebp
jmp 0x4e5105
mov edx, dword [esp + 0x60]
cmp bl, 0x7f
je 0x4e5101
test edx, edx
je 0x4e5101
push edx
push 0x6ed2b0
call fcn.00526840
mov ebx, dword [esp + 0x74]
add esp, 8
test eax, eax
jne 0x4e5105
mov dword [ebx + 0x1c], ebp
mov ebp, dword [esi + 0x80]
mov dword [esp + 0x2c], ebp
jmp 0x4e5105
mov ebx, dword [esp + 0x6c]
mov eax, dword [esp + 0x68]
test dword [eax + 0x18], 0x200
je 0x4e5158
mov ecx, dword [esp + 0x60]
test ecx, ecx
je 0x4e5158
mov edi, dword [eax + 8]
test edi, edi
je 0x4e5158
mov edx, str.excluded
mov esi, ecx
sub esi, edx
nop word [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x4e5215
test ecx, ecx
jne 0x4e522b
mov eax, dword [edi + 0x20]
mov ebp, dword [eax + 0x18]
mov dword [esp + 0x2c], ebp
mov dword [ebx + 0x1c], 2
test ebp, ebp
je 0x4e52a2
mov esi, dword [esp + 0x64]
push esi
call fcn.00526880
mov ecx, dword [ebp + 0x3c]
add esp, 4
mov ebx, dword [ebp + 4]
xor edi, edi
movsx ebp, word [ebp + 0x22]
inc dword [esp + 0x38]
mov byte [esp + 0x13], al
mov dword [esp + 0x34], ecx
test ebp, ebp
jle 0x4e5267
nop dword [eax]
cmp byte [ebx + 0xa], al
jne 0x4e5251
mov edx, dword [ebx]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [edx + esi]
cmp ecx, eax
jne 0x4e5231
test ecx, ecx
jne 0x4e5243
mov ebx, dword [esp + 0x2c]
movsx eax, word [ebx + 0x20]
cmp edi, eax
jne 0x4e526b
or edi, 0xffffffff
mov ecx, edi
xor edx, edx
movzx ecx, cx
mov dword [esp + 0x14], edx
mov ebp, 1
mov edx, dword [esp + 0x6c]
mov esi, dword [edx + 0x1c]
cmp esi, 2
jne 0x4e5394
mov edx, dword [esp + 0x58]
mov eax, ecx
cmp byte [edx + 0xd8], 2
jb 0x4e5369
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x3c], 0xa7
mov word [edi + 0x20], ax
mov dword [edi + 0x2c], ebx
jmp 0x4e5818
movzx eax, byte [eax + 0x6e8f28]
movzx ecx, byte [ecx + 0x6e8f28]
sub ecx, eax
jne 0x4e5158
inc edx
jmp 0x4e5130
movzx eax, byte [eax + 0x6e8f28]
movzx ecx, byte [ecx + 0x6e8f28]
sub ecx, eax
jne 0x4e5249
inc edx
jmp 0x4e51a0
mov al, byte [esp + 0x13]
mov esi, dword [esp + 0x64]
inc edi
add ebx, 0x10
cmp edi, ebp
jl 0x4e5190
mov ebx, dword [esp + 0x2c]
movzx esi, word [ebx + 0x22]
jmp 0x4e5276
mov ebx, dword [esp + 0x2c]
movzx esi, word [ebx + 0x22]
movsx eax, si
cmp edi, eax
jl 0x4e5295
push dword [esp + 0x64]
call fcn.00514680
add esp, 4
test eax, eax
je 0x4e5295
test dword [ebx + 0x1c], 0x200
mov eax, 0xffffffff
cmove edi, eax
movsx eax, si
mov ecx, edi
cmp edi, eax
jl 0x4e51cc
cmp dword [esp + 0x38], 1
mov esi, dword [esp + 0x68]
jne 0x4e52db
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x4e52db
test byte [esi + 0x18], 0x28
jne 0x4e52db
push dword [esp + 0x64]
call fcn.00514680
add esp, 4
test eax, eax
je 0x4e52db
mov eax, dword [ebx + 0x10]
test dword [eax + 0x1c], 0x200
je 0x4e545b
test byte [esi + 0x18], 0x80
mov edx, dword [esp + 0x60]
je 0x4e5333
test edx, edx
jne 0x4e5333
mov eax, dword [esi + 8]
xor ebx, ebx
mov ebp, dword [eax]
test ebp, ebp
jle 0x4e5333
lea esi, [eax + 0x14]
test byte [esi], 3
mov edi, dword [esi - 8]
jne 0x4e5323
mov eax, dword [esp + 0x64]
test edi, edi
jne 0x4e530d
neg eax
sbb eax, eax
jmp 0x4e531b
test eax, eax
je 0x4e5323
push eax
push edi
call fcn.00526840
add esp, 8
test eax, eax
je 0x4e5474
inc ebx
add esi, 0x14
cmp ebx, ebp
jl 0x4e52f7
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
mov esi, dword [esi + 0xc]
inc dword [esp + 0x48]
mov dword [esp + 0x68], esi
test esi, esi
je 0x4e555f
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x5c]
jmp 0x4e4b80
mov edi, dword [esp + 0x6c]
cmp ebp, 1
je 0x4e5818
jmp 0x4e566f
push eax
push ebx
call fcn.00526e00
mov edi, dword [esp + 0x70]
add esp, 8
movsx ecx, ax
mov dword [esp + 0x3c], 0xb0
mov eax, dword [edi + 8]
mov edi, dword [esp + 0x6c]
add ecx, dword [eax + 0x24]
mov dword [edi + 0x1c], ecx
jmp 0x4e5818
mov eax, dword [esp + 0x58]
mov dword [edx + 0x2c], ebx
mov al, byte [eax + 0x9b]
mov word [edx + 0x20], cx
test al, al
je 0x4e53e0
mov edi, edx
mov dword [esp + 0x3c], 0xb0
push ecx
push ebx
mov byte [edi + 2], 0xa7
call fcn.00526e00
movsx ecx, ax
add esp, 8
movsx eax, word [ebx + 0x22]
inc eax
imul eax, esi
add ecx, eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 8]
inc eax
add eax, ecx
mov dword [edi + 0x1c], eax
jmp 0x4e5818
mov dword [esp + 0x3c], 0x4d
test edi, edi
jns 0x4e53f7
mov edi, edx
mov byte [edi + 1], 0x44
jmp 0x4e5818
test esi, esi
jne 0x4e542b
cmp edi, 0x20
jl 0x4e5414
mov ecx, dword [esp + 0x58]
or eax, 0xffffffff
mov edi, edx
or dword [ecx + 0x90], eax
jmp 0x4e5818
mov ecx, edi
mov eax, ebp
shl eax, cl
mov edi, edx
mov ecx, dword [esp + 0x58]
or dword [ecx + 0x90], eax
jmp 0x4e5818
cmp edi, 0x20
jl 0x4e5444
mov ecx, dword [esp + 0x58]
or eax, 0xffffffff
mov edi, edx
or dword [ecx + 0x94], eax
jmp 0x4e5818
mov ecx, edi
mov eax, ebp
shl eax, cl
mov edi, edx
mov ecx, dword [esp + 0x58]
or dword [ecx + 0x94], eax
jmp 0x4e5818
mov edi, dword [esp + 0x6c]
or eax, 0xffffffff
mov ebp, 1
mov word [edi + 0x20], ax
mov byte [edi + 1], 0x44
jmp 0x4e581c
mov ebp, dword [esp + 0x68]
lea eax, [ebx + ebx*4]
mov esi, dword [ebp + 8]
mov edx, dword [ebp + 0x18]
mov eax, dword [esi + eax*4 + 8]
test dl, 1
jne 0x4e54af
test byte [eax + 4], 0x10
je 0x4e54af
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x60]
call fcn.00505000
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 2
pop ebx
add esp, 0x44
ret
test dword [eax + 4], 0x8000
je 0x4e54ce
test edx, 0x4000
je 0x4e54c6
cmp ebp, dword [esp + 0x44]
je 0x4e54ce
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x4e5496
mov cl, byte [eax]
cmp cl, 0xb0
jne 0x4e54d8
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x4e54e2
mov eax, dword [eax + 0x14]
jmp 0x4e54ed
cmp cl, 0x8a
jne 0x4e5510
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x4e5510
push str.row_value_misused
push dword [esp + 0x5c]
call fcn.00505000
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x58]
push eax
push edi
push ebx
push esi
push ebp
call fcn.004f1920
add esp, 0x14
cmp byte [ebp + 0xd8], 2
jb 0x4e58f4
mov eax, dword [ebp + 0x114]
test eax, eax
je 0x4e58f4
cmp dword [eax], edi
je 0x4e5554
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4e5544
jmp 0x4e58f4
mov dword [eax], 0
jmp 0x4e58f4
mov edi, dword [esp + 0x6c]
test edx, edx
jne 0x4e566b
test byte [edi + 4], 0x80
je 0x4e55f9
mov eax, dword [esp + 0x28]
cmp byte [eax + 0xb1], dl
jne 0x4e55ce
mov edx, dword [esp + 0x44]
mov ecx, dword [eax + 0x20]
test dword [edx + 0x18], 0x10000
je 0x4e55c3
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x4e55a9
mov eax, ecx
and eax, 0x40000000
or eax, 0
jne 0x4e55ce
and ecx, 0x20000000
or ecx, 0
je 0x4e55bd
mov eax, 1
test eax, eax
jmp 0x4e55cc
xor eax, eax
test eax, eax
jmp 0x4e55cc
and ecx, 0x40000000
or ecx, 0
je 0x4e55f9
push dword [esp + 0x64]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.004b1f90
add esp, 0xc
mov byte [edi], 0x75
xorps xmm0, xmm0
mov eax, 1
movq qword [edi + 0x2c], xmm0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret
mov esi, dword [edi + 4]
test esi, 0x4000800
jne 0x4e566b
mov edi, dword [edi + 8]
push str.true
push edi
call fcn.00526840
add esp, 8
test eax, eax
jne 0x4e5637
mov ecx, dword [esp + 0x6c]
mov eax, 0x10000000
or esi, eax
mov eax, 1
pop edi
mov dword [ecx + 4], esi
pop esi
pop ebp
mov byte [ecx], 0xaa
pop ebx
add esp, 0x44
ret
push str.false
push edi
call fcn.00526840
add esp, 8
test eax, eax
jne 0x4e5667
mov ecx, dword [esp + 0x6c]
mov eax, 0x20000000
or esi, eax
mov eax, 1
pop edi
mov dword [ecx + 4], esi
pop esi
pop ebp
mov byte [ecx], 0xaa
pop ebx
add esp, 0x44
ret
mov edi, dword [esp + 0x6c]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
test ebx, ebx
je 0x4e5784
lea eax, [ebp - 1]
cmp dword [ebx], eax
jne 0x4e5777
mov eax, dword [edi + 4]
test eax, 0x800000
je 0x4e569a
and eax, 0xff7fffff
mov dword [edi + 4], eax
jmp 0x4e56ce
mov eax, dword [edi + 0xc]
mov ebp, dword [esp + 0x28]
test eax, eax
je 0x4e56af
push eax
push ebp
call fcn.00508c00
add esp, 8
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test eax, eax
je 0x4e56c7
push eax
push ebp
call fcn.00508c00
add esp, 8
mov dword [edi + 0x10], 0
mov ebp, dword [esp + 0x58]
movzx edi, word [edi + 0x20]
push 0
push 0x34
push dword [ebp]
call fcn.00503030
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4e5761
push 0x34
push 0
push esi
call sub.VCRUNTIME140.dll_memset
mov edx, dword [esp + 0x20]
or eax, 0xffffffff
mov byte [esi], 0xa7
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [edx + 0x2c]
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], di
mov eax, dword [edx + 0x10]
or dword [esi + 4], 0x200000
mov dword [esi + 0x2c], eax
mov eax, dword [ebx]
lea edx, [eax + 1]
cmp dword [ebx + 4], edx
jge 0x4e5743
push esi
push ebx
push dword [ebp]
call fcn.00509a30
add esp, 0xc
mov ebx, eax
jmp 0x4e5761
movups xmm0, xmmword [0x6e89cc]
lea eax, [eax + eax*4]
mov dword [ebx], edx
lea ecx, [ebx + eax*4]
mov eax, dword [0x6e89dc]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], esi
mov edi, dword [esp + 0x6c]
mov byte [edi], 0xac
mov dword [edi + 8], str.coalesce
mov dword [edi + 0x14], ebx
jmp 0x4e58f4
push ebx
push dword [esp + 0x2c]
call fcn.004d6580
add esp, 8
mov edx, dword [esp + 0x5c]
test ebp, ebp
push dword [esp + 0x64]
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [esp + 0x64]
test edx, edx
je 0x4e57b9
push ecx
push edx
push eax
push str._s:__s._s._s
push dword [esp + 0x6c]
call fcn.00505000
add esp, 0x18
jmp 0x4e57e4
test ecx, ecx
je 0x4e57d2
push ecx
push eax
push str._s:__s._s
push dword [esp + 0x68]
call fcn.00505000
add esp, 0x14
jmp 0x4e57e4
push eax
push str._s:__s
push dword [esp + 0x64]
call fcn.00505000
add esp, 0x10
mov edx, dword [esp + 0x58]
mov eax, edi
mov edx, dword [edx]
nop dword [eax]
test byte [eax + 4], 3
jne 0x4e57fd
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x4e5806
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4e57f0
jmp 0x4e5809
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x58]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x44]
inc dword [eax + 0x14]
mov ebx, dword [esp + 0x14]
test dword [edi + 4], 0x810000
jne 0x4e5860
mov eax, dword [edi + 0xc]
mov esi, dword [esp + 0x28]
test eax, eax
je 0x4e583a
push eax
push esi
call fcn.00508c00
add esp, 8
mov eax, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test eax, eax
je 0x4e5852
push eax
push esi
call fcn.00508c00
add esp, 8
or dword [edi + 4], 0x800000
mov dword [edi + 0x10], 0
movzx eax, word [edi + 0x20]
test ax, ax
js 0x4e58e1
test ebx, ebx
je 0x4e58e1
mov edx, dword [edi + 0x2c]
movsx esi, ax
test byte [edx + 0x1c], 0x60
je 0x4e58bb
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x4e58bb
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x4e589d
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x4e58db
xor ecx, ecx
cwde
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
jmp 0x4e58db
cmp esi, 0x40
mov eax, 0x3f
cmovge esi, eax
xor ecx, ecx
xor edx, edx
bts ecx, esi
cmp esi, 0x20
cmovae edx, ecx
xor ecx, edx
cmp esi, 0x40
cmovae edx, ecx
or dword [ebx + 0x38], ecx
or dword [ebx + 0x3c], edx
mov eax, dword [esp + 0x3c]
mov byte [edi], al
cmp ebp, 1
jne 0x4e54a2
mov ebp, dword [esp + 0x58]
mov ecx, dword [ebp]
cmp dword [ecx + 0x16c], 0
je 0x4e59c1
mov al, byte [edi]
cmp al, 0xa7
je 0x4e5912
cmp al, 0x4d
jne 0x4e59c1
mov eax, dword [esp + 0x68]
mov esi, dword [esp + 0x34]
mov ebx, dword [eax + 4]
test esi, esi
je 0x4e59c1
mov eax, dword [ecx + 0x10]
xor edx, edx
add eax, 0xc
cmp dword [eax], esi
je 0x4e5943
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], esi
jne 0x4e5931
test ecx, ecx
js 0x4e59c1
cmp byte [edi], 0x4d
jne 0x4e5950
mov esi, dword [ebp + 0x80]
jmp 0x4e597b
mov esi, dword [ebx]
xor eax, eax
test esi, esi
jle 0x4e59c1
mov edi, dword [edi + 0x1c]
lea ecx, [ebx + 0x34]
cmp edi, dword [ecx]
je 0x4e5970
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x4e5962
jmp 0x4e59c1
mov edi, dword [esp + 0x6c]
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x18]
test esi, esi
je 0x4e59c1
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x4e5991
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x4e59ac
movzx eax, word [esi + 0x20]
test ax, ax
js 0x4e59a7
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x4e59ac
mov eax, str.ROWID
push edx
push eax
push dword [esi]
push ebp
call fcn.004f9ae0
add esp, 0x10
cmp eax, 2
jne 0x4e59c1
mov byte [edi], 0x79
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x68]
inc dword [eax + 0x10]
cmp eax, ecx
je 0x4e59da
mov eax, dword [eax + 0xc]
inc dword [eax + 0x10]
cmp eax, ecx
jne 0x4e59d0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x44
ret