Function at 0x450a60
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, dword [ebp + 0x14]
push ebx
push esi
xor ebx, ebx
mov dword [esp + 0x14], edx
mov edx, dword [ecx]
xor esi, esi
push edi
xor edi, edi
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x4c], edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], 0xa7
mov dword [eax + 0x1c], 0xffffffff
test ebx, ebx
je 0x450b6d
xor ebx, ebx
test byte [edi + 0x18], 6
je 0x450ae0
mov dword [esp + 0x18], ebx
jmp 0x450b6d
mov ecx, dword [edx + 0x14]
mov dword [esp + 0x30], ecx
test ecx, ecx
jle 0x450b2e
mov ecx, dword [edx + 0x10]
mov eax, ecx
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0x18]
mov edx, dword [eax]
sub edi, edx
nop dword [eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x450c70
test eax, eax
jne 0x450c82
mov edx, dword [esp + 0x24]
mov eax, ebx
add eax, eax
mov ecx, dword [edx + 0x10]
mov esi, dword [ecx + eax*8 + 0xc]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x40], esi
cmp ebx, ecx
mov ebx, dword [esp + 0x18]
jne 0x450b6b
mov edx, str.main
mov edi, ebx
sub edi, edx
nop
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x450ca5
test eax, eax
jne 0x450cbb
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
mov esi, dword [eax + 0xc]
mov ebx, dword [eax]
mov dword [esp + 0x40], esi
mov dword [esp + 0x18], ebx
xor ecx, ecx
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x28]
mov eax, dword [esi + 4]
mov dword [esp + 0x58], eax
test eax, eax
je 0x45103f
xor ecx, ecx
lea esi, [eax + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], esi
cmp dword [eax], ecx
jle 0x451001
nop dword [eax + eax]
test dword [esi + 0x28], 0x2000
mov eax, dword [esi + 0x10]
mov dword [esp + 0x44], eax
je 0x450d85
mov eax, dword [esi + 0x14]
xor ebx, ebx
xor edi, edi
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x54], eax
cmp dword [eax], ebx
jle 0x450d39
lea esi, [eax + 0x14]
nop dword [eax]
lea eax, [esp + 0x50]
mov dword [esp + 0x50], 0
push eax
push dword [esp + 0x1c]
lea ecx, [esi - 0xc]
push edx
mov edx, dword [ebp + 0xc]
call fcn.00450640
add esp, 0xc
test eax, eax
je 0x450d13
cmp dword [esp + 0x50], 0
jne 0x450cf1
cmp dword [esp + 0x14], 0
jle 0x450c62
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x450c45
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
call fcn.0046fb30
test eax, eax
js 0x450c45
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x450d13
test al, 8
jne 0x450cc1
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x450c58
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.00456880
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
inc dword [esp + 0x14]
mov edi, 1
jmp 0x450cf8
movzx ecx, byte [eax + 0x6949d8]
movzx eax, byte [esi + 0x6949d8]
sub ecx, eax
jne 0x450c88
inc edx
jmp 0x450b00
mov eax, dword [esp + 0x44]
inc ebx
mov ecx, dword [esp + 0x30]
add eax, 0x10
mov dword [esp + 0x44], eax
cmp ebx, ecx
jl 0x450af4
jmp 0x450b2e
movzx ecx, byte [eax + 0x6949d8]
movzx eax, byte [esi + 0x6949d8]
sub ecx, eax
jne 0x450b6b
inc edx
jmp 0x450b40
mov eax, dword [ebp + 0x14]
lea edx, [esp + 0x34]
mov ecx, dword [esp + 0x20]
movzx eax, word [eax + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004507f0
mov eax, dword [esp + 0x3c]
add esp, 8
inc dword [esp + 0x14]
mov edi, 1
mov dword [esp + 0x2c], eax
jmp 0x450cf8
cmp dword [esp + 0x14], 0
jg 0x450d13
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov word [eax + 0x20], bx
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x450d26
mov eax, dword [esp + 0x54]
inc ebx
mov edx, dword [ebp + 8]
add esi, 0x14
cmp ebx, dword [eax]
jl 0x450bd0
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 8]
test edi, edi
jne 0x450fd4
mov ebx, dword [esp + 0x18]
test edx, edx
je 0x450fe9
mov eax, dword [esp + 0x44]
test ebx, ebx
je 0x450d9f
mov edi, dword [esp + 0x40]
cmp dword [eax + 0x3c], edi
jne 0x450fe9
test edi, edi
jne 0x450d9f
mov ecx, 0x68dd10
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x450d8f
test dl, dl
je 0x450d81
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x450d8f
add eax, 2
add ecx, 2
test dl, dl
jne 0x450d65
xor eax, eax
jmp 0x450d94
test edx, edx
je 0x450e6a
jmp 0x450d49
sbb eax, eax
or eax, 1
mov edx, dword [ebp + 8]
test eax, eax
jne 0x450fe5
mov ebx, dword [esi + 0xc]
test ebx, ebx
je 0x450ddb
mov edi, ebx
sub edi, dword [ebp + 8]
nop dword [eax + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x450dc2
test eax, eax
je 0x450e32
inc edx
jmp 0x450db0
movzx ecx, byte [eax + 0x6949d8]
movzx eax, byte [esi + 0x6949d8]
sub ecx, eax
jne 0x450fda
inc edx
jmp 0x450db0
mov edi, dword [esp + 0x44]
mov edi, dword [edi]
sub edi, dword [ebp + 8]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x450df6
test eax, eax
je 0x450e32
inc edx
jmp 0x450de4
movzx ecx, byte [eax + 0x6949d8]
movzx eax, byte [esi + 0x6949d8]
sub ecx, eax
jne 0x450e0b
inc edx
jmp 0x450de4
mov eax, dword [esp + 0x44]
cmp dword [eax + 0x14], 1
jne 0x450fda
push dword [esp + 0x40]
mov ecx, dword [ebp + 8]
mov edx, eax
call fcn.004508d0
add esp, 4
test eax, eax
je 0x450fda
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xdc], 2
jb 0x450e66
test ebx, ebx
je 0x450e66
mov eax, dword [eax + 0x118]
test eax, eax
je 0x450e66
mov ecx, dword [ebp + 0x14]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x450e60
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x450e53
jmp 0x450e66
mov dword [eax], 0
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0xc]
call fcn.004154f0
mov edx, dword [esp + 0x44]
mov cl, al
xor ebx, ebx
mov byte [esp + 0xf], cl
movsx eax, word [edx + 0x22]
mov edi, dword [edx + 4]
mov dword [esp + 0x50], eax
test eax, eax
jle 0x450f65
cmp byte [edi + 0xa], cl
jne 0x450f55
mov esi, dword [ebp + 0xc]
mov edx, dword [edi]
sub esi, edx
movzx eax, byte [edx]
movzx ecx, byte [esi + edx]
cmp eax, ecx
jne 0x450f31
test eax, eax
jne 0x450f43
mov esi, dword [esp + 0x1c]
cmp dword [esp + 0x14], eax
jle 0x450f0e
test dword [esi + 0x28], 0x400
je 0x450ef1
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x30]
call fcn.0046fb30
test eax, eax
js 0x450ef1
mov al, byte [esi + 0x24]
test al, 0x10
je 0x450f4d
test al, 8
jne 0x450f8a
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x450f04
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.00456880
xor ecx, ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ecx
mov edi, dword [ebp + 0x14]
mov edx, dword [esp + 0x44]
inc dword [esp + 0x14]
mov dword [esp + 0x20], esi
movsx eax, word [edx + 0x20]
cmp ebx, eax
jne 0x450fb4
or eax, 0xffffffff
jmp 0x450fb7
movzx ecx, byte [ecx + 0x6949d8]
movzx eax, byte [eax + 0x6949d8]
sub eax, ecx
jne 0x450f49
inc edx
jmp 0x450ea1
mov esi, dword [esp + 0x1c]
mov cl, byte [esp + 0xf]
mov eax, dword [esp + 0x50]
inc ebx
add edi, 0x10
cmp ebx, eax
jl 0x450e91
mov edx, dword [esp + 0x44]
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x18]
jne 0x450fe2
test dword [edx + 0x1c], 0x200
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 8]
jne 0x450fe9
inc dword [esp + 0x38]
mov dword [esp + 0x20], esi
jmp 0x450fe9
mov edi, dword [ebp + 0x14]
lea edx, [esp + 0x34]
mov ecx, dword [esp + 0x20]
movzx eax, word [edi + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.004507f0
mov eax, dword [esp + 0x3c]
add esp, 8
mov dword [esp + 0x2c], eax
jmp 0x450f11
movzx eax, bx
mov word [edi + 0x20], ax
test dword [esi + 0x28], 0x2000
je 0x450f65
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [ebx + ebx*4]
or dword [ecx + eax*4 + 0x14], 0x40
jmp 0x450f65
mov ebx, dword [esp + 0x18]
jmp 0x450fe9
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x58]
inc ecx
add esi, 0x48
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], esi
cmp ecx, dword [eax]
jl 0x450ba0
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x45102c
mov edx, dword [ebp + 0x14]
mov eax, dword [ecx + 0x2c]
mov dword [edx + 0x1c], eax
mov eax, dword [ecx + 0x10]
mov dword [edx + 0x2c], eax
test byte [ecx + 0x24], 0x48
je 0x451025
or dword [edx + 4], 0x200000
mov esi, dword [eax + 0x3c]
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x451505
mov edx, dword [ebp + 8]
mov esi, dword [esp + 0x28]
test ebx, ebx
jne 0x451299
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
mov eax, dword [edi + 0x84]
test eax, eax
je 0x45116a
cmp byte [edi + 0x9f], 0
mov bl, byte [edi + 0x9e]
je 0x4510cb
test dword [esi + 0x18], 0x400
je 0x451166
test edx, edx
je 0x451095
mov edi, dword [eax]
sub edi, dword [ebp + 8]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x4510b2
test eax, eax
jne 0x4510c8
mov edi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp bl, 0x80
setne al
mov dword [ecx + 0x1c], eax
mov ebx, dword [edi + 0x84]
mov dword [esp + 0x1c], ebx
jmp 0x45116a
movzx ecx, byte [eax + 0x6949d8]
movzx eax, byte [esi + 0x6949d8]
sub ecx, eax
jne 0x451166
inc edx
jmp 0x451082
cmp bl, 0x80
je 0x451122
test edx, edx
je 0x45111d
mov esi, dword [ebp + 8]
mov edx, 0x68dd14
sub esi, edx
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x451105
test ecx, ecx
jne 0x451117
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], 1
mov ebx, dword [edi + 0x84]
mov dword [esp + 0x1c], ebx
jmp 0x45116a
movzx eax, byte [eax + 0x6949d8]
movzx ecx, byte [ecx + 0x6949d8]
sub ecx, eax
jne 0x45111a
inc edx
jmp 0x4510e0
mov edx, dword [ebp + 8]
cmp bl, 0x7f
je 0x451166
test edx, edx
je 0x451166
mov esi, dword [ebp + 8]
mov edx, 0x68dd18
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x451151
test ecx, ecx
jne 0x451163
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], ecx
mov ebx, dword [edi + 0x84]
mov dword [esp + 0x1c], ebx
jmp 0x45116a
movzx eax, byte [eax + 0x6949d8]
movzx ecx, byte [ecx + 0x6949d8]
sub ecx, eax
jne 0x451166
inc edx
jmp 0x451130
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
test dword [edx + 0x18], 0x200
je 0x4511bb
mov eax, dword [ebp + 8]
test eax, eax
je 0x4511bb
mov edi, dword [edx + 8]
test edi, edi
je 0x4511bb
mov edx, str.excluded
mov esi, eax
sub esi, edx
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x451225
test ecx, ecx
jne 0x451237
mov eax, dword [edi + 0x20]
mov ebx, dword [eax + 0x18]
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], ebx
mov dword [eax + 0x1c], 2
test ebx, ebx
je 0x451295
mov ecx, dword [ebp + 0xc]
call fcn.004154f0
mov ecx, dword [esp + 0x1c]
xor edi, edi
mov esi, dword [ebx + 0x3c]
inc dword [esp + 0x38]
mov ebx, dword [ebx + 4]
mov dword [esp + 0x40], esi
movsx esi, word [ecx + 0x22]
mov byte [esp + 0xf], al
mov dword [esp + 0x50], esi
test esi, esi
jle 0x451264
nop
cmp byte [ebx + 0xa], al
jne 0x45125a
mov esi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x45123d
test ecx, ecx
jne 0x45124f
mov ebx, dword [esp + 0x1c]
movsx eax, word [ebx + 0x20]
cmp edi, eax
je 0x45138a
mov esi, dword [esp + 0x50]
jmp 0x451268
movzx eax, byte [eax + 0x6949d8]
movzx ecx, byte [ecx + 0x6949d8]
sub ecx, eax
jne 0x4511bb
inc edx
jmp 0x451190
movzx eax, byte [eax + 0x6949d8]
movzx ecx, byte [ecx + 0x6949d8]
sub ecx, eax
jne 0x451252
inc edx
jmp 0x451200
mov esi, dword [esp + 0x50]
mov al, byte [esp + 0xf]
inc edi
add ebx, 0x10
cmp edi, esi
jl 0x4511f0
jmp 0x45126c
mov ebx, dword [esp + 0x1c]
cmp edi, esi
jl 0x45128b
mov ecx, dword [ebp + 0xc]
call fcn.00456f80
mov ebx, dword [esp + 0x1c]
test eax, eax
je 0x45128b
test dword [ebx + 0x1c], 0x200
mov eax, 0xffffffff
cmove edi, eax
mov eax, edi
cmp edi, esi
jl 0x45138f
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x38]
mov esi, dword [ebp + 0xc]
cmp ebx, 1
jl 0x4512df
test ecx, ecx
je 0x4512df
mov eax, dword [esp + 0x28]
test byte [eax + 0x18], 0x28
jne 0x4512df
mov ecx, esi
call fcn.00456f80
test eax, eax
je 0x4512df
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
test dword [eax + 0x1c], 0x200
je 0x4514ea
test dword [ecx + 0x28], 0x2000
jne 0x4514df
mov ebx, dword [esp + 0x28]
mov edx, dword [ebp + 8]
test byte [ebx + 0x18], 0x80
je 0x451355
test edx, edx
jne 0x451355
mov ecx, dword [ebx + 8]
mov dword [esp + 0x50], edx
mov eax, dword [ecx]
mov dword [esp + 0x58], eax
test eax, eax
jle 0x451352
lea ebx, [ecx + 0x14]
test byte [ebx], 3
mov edi, dword [ebx - 8]
jne 0x451342
test edi, edi
jne 0x451318
mov ecx, esi
neg ecx
sbb ecx, ecx
jmp 0x45133a
test esi, esi
je 0x451342
mov edx, edi
sub esi, edi
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x451375
test ecx, ecx
jne 0x451387
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov esi, dword [ebp + 0xc]
test ecx, ecx
je 0x451516
inc edx
add ebx, 0x14
mov dword [esp + 0x50], edx
cmp edx, eax
jl 0x451304
mov ebx, dword [esp + 0x28]
mov edx, dword [ebp + 8]
mov ebx, dword [ebx + 0xc]
inc dword [esp + 0x4c]
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x451601
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
jmp 0x450b70
movzx eax, byte [eax + 0x6949d8]
movzx ecx, byte [ecx + 0x6949d8]
sub ecx, eax
jne 0x45132f
inc edx
jmp 0x451320
or edi, 0xffffffff
or eax, edi
xor ecx, ecx
movzx edx, ax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x14], 1
mov esi, dword [ecx + 0x1c]
cmp esi, 2
jne 0x4513fd
cmp byte [eax + 0xdc], 2
jb 0x4513d2
mov esi, dword [esp + 0x14]
mov edi, ecx
mov dword [esp + 0x3c], 0xa7
mov word [edi + 0x20], dx
mov dword [edi + 0x2c], ebx
jmp 0x451863
mov ecx, ebx
call fcn.00468940
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
movsx ecx, ax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x3c], 0xb0
mov eax, dword [eax + 8]
add ecx, dword [eax + 0x24]
mov dword [edi + 0x1c], ecx
jmp 0x451863
mov dword [ecx + 0x2c], ebx
mov al, byte [eax + 0x9f]
mov word [ecx + 0x20], dx
test al, al
je 0x451446
mov edi, ecx
mov dword [esp + 0x3c], 0xb0
mov ecx, ebx
mov byte [edi + 2], 0xa7
call fcn.00468940
movsx ecx, ax
movsx eax, word [ebx + 0x22]
inc eax
imul eax, esi
mov esi, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 8]
inc eax
add eax, ecx
mov dword [edi + 0x1c], eax
jmp 0x451863
mov dword [esp + 0x3c], 0x4d
test edi, edi
jns 0x451461
mov esi, dword [esp + 0x14]
mov edi, ecx
mov byte [edi + 1], 0x44
jmp 0x451863
test esi, esi
jne 0x4514a2
cmp edi, 0x20
jl 0x451483
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
mov esi, dword [esp + 0x14]
mov edi, dword [ebp + 0x14]
or dword [ecx + 0x94], eax
jmp 0x451863
mov esi, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [ebp + 0x14]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x94], eax
jmp 0x451863
cmp edi, 0x20
jl 0x4514c0
mov ecx, dword [esp + 0x10]
or eax, 0xffffffff
mov esi, dword [esp + 0x14]
mov edi, dword [ebp + 0x14]
or dword [ecx + 0x98], eax
jmp 0x451863
mov esi, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [ebp + 0x14]
mov eax, 1
shl eax, cl
mov ecx, dword [esp + 0x10]
or dword [ecx + 0x98], eax
jmp 0x451863
mov esi, ebx
mov edi, dword [ebp + 0x14]
mov byte [edi + 1], 0x44
jmp 0x451508
test dword [ecx + 0x28], 0x2000
mov esi, ebx
jne 0x4514e1
mov edi, dword [ebp + 0x14]
or eax, 0xffffffff
mov word [edi + 0x20], ax
mov byte [edi + 1], 0x44
jmp 0x451508
mov edi, dword [ebp + 0x14]
cmp esi, 1
je 0x451863
jmp 0x4516c2
mov ebx, dword [esp + 0x28]
lea eax, [edx + edx*4]
test byte [ebx + 0x18], 1
mov esi, dword [ebx + 8]
mov eax, dword [esi + eax*4 + 8]
jne 0x45154e
test byte [eax + 4], 0x10
je 0x45154e
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x18]
call fcn.00415290
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [eax + 4], 0x8000
je 0x45156e
test dword [ebx + 0x18], 0x4000
je 0x451566
cmp ebx, dword [esp + 0x48]
je 0x45156e
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x451536
mov cl, byte [eax]
cmp cl, 0xb0
jne 0x451578
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x451582
mov eax, dword [eax + 0x14]
jmp 0x45158d
cmp cl, 0x8a
jne 0x4515af
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x4515af
push str.row_value_misused
push dword [esp + 0x14]
call fcn.00415290
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x10]
push edi
mov edi, dword [ebp + 0x14]
push edi
push edx
mov edx, esi
call fcn.00450460
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp byte [ecx + 0xdc], 2
jb 0x451966
mov eax, dword [ecx + 0x118]
test eax, eax
je 0x451966
cmp dword [eax], edi
je 0x4515f6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4515e6
jmp 0x451966
mov dword [eax], 0
jmp 0x451966
mov edi, dword [ebp + 0x14]
test edx, edx
jne 0x4516be
mov ebx, dword [edi + 4]
test bl, bl
jns 0x451696
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xb1], dl
jne 0x45166f
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0x48]
test dword [eax + 0x18], 0x10000
je 0x451664
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x45164a
mov eax, ecx
and eax, 0x40000000
or eax, edx
jne 0x45166f
and ecx, 0x20000000
or ecx, 0
je 0x45165e
mov eax, 1
test eax, eax
jmp 0x45166d
xor eax, eax
test eax, eax
jmp 0x45166d
and ecx, 0x40000000
or ecx, 0
je 0x451696
push esi
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.00414390
xorps xmm0, xmm0
mov byte [edi], 0x75
add esp, 0xc
movq qword [edi + 0x2c], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ebx, 0x4000800
jne 0x4516be
mov ecx, dword [edi + 8]
call fcn.00456920
test eax, eax
je 0x4516be
or eax, ebx
mov byte [edi], 0xaa
mov dword [edi + 4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x4517cd
lea eax, [esi - 1]
cmp dword [ebx], eax
jne 0x4517c2
mov eax, dword [edi + 4]
test eax, 0x800000
je 0x4516ed
and eax, 0xff7fffff
mov dword [edi + 4], eax
jmp 0x45171b
mov edx, dword [edi + 0xc]
mov esi, dword [esp + 0x24]
test edx, edx
je 0x4516ff
mov ecx, esi
call fcn.00455530
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test edx, edx
je 0x451714
mov ecx, esi
call fcn.00455530
mov dword [edi + 0x10], 0
mov eax, dword [esp + 0x10]
movzx edi, word [edi + 0x20]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00411a60
mov esi, eax
add esp, 8
test esi, esi
je 0x4517ad
push 0x34
push 0
push esi
call fcn.00623f60
mov ecx, dword [esp + 0x2c]
or eax, 0xffffffff
mov byte [esi], 0xa7
add esp, 0xc
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [ecx + 0x2c]
mov dword [esi + 0x1c], eax
mov word [esi + 0x20], di
mov eax, dword [ecx + 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 0x45178f
mov eax, dword [esp + 0x10]
mov edx, ebx
push esi
mov ecx, dword [eax]
call fcn.004563b0
add esp, 4
mov ebx, eax
jmp 0x4517ad
movups xmm0, xmmword [0x6938f0]
lea eax, [eax + eax*4]
mov dword [ebx], edx
lea ecx, [ebx + eax*4]
mov eax, dword [0x693900]
movups xmmword [ecx + 8], xmm0
mov dword [ecx + 0x18], eax
mov dword [ecx + 8], esi
mov edi, dword [ebp + 0x14]
mov byte [edi], 0xac
mov dword [edi + 8], str.coalesce
mov dword [edi + 0x14], ebx
jmp 0x451962
mov ecx, dword [esp + 0x24]
mov edx, ebx
call fcn.00456880
mov edx, dword [esp + 0x18]
test esi, esi
push dword [ebp + 0xc]
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [ebp + 8]
test edx, edx
je 0x451800
push ecx
push edx
push eax
push str._s:__s._s._s
push dword [esp + 0x24]
call fcn.00415290
add esp, 0x18
jmp 0x45182b
test ecx, ecx
je 0x451819
push ecx
push eax
push str._s:__s._s
push dword [esp + 0x20]
call fcn.00415290
add esp, 0x14
jmp 0x45182b
push eax
push str._s:__s
push dword [esp + 0x1c]
call fcn.00415290
add esp, 0x10
mov ecx, dword [esp + 0x10]
mov eax, edi
mov edx, dword [ecx]
test byte [eax + 4], 3
jne 0x451840
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x451849
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x451833
jmp 0x45184c
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x3c], 0x79
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x48]
inc dword [eax + 0x14]
test dword [edi + 4], 0x810000
jne 0x4518a1
mov edx, dword [edi + 0xc]
mov ebx, dword [esp + 0x24]
test edx, edx
je 0x45187e
mov ecx, ebx
call fcn.00455530
mov edx, dword [edi + 0x10]
mov dword [edi + 0xc], 0
test edx, edx
je 0x451893
mov ecx, ebx
call fcn.00455530
or dword [edi + 4], 0x800000
mov dword [edi + 0x10], 0
movzx eax, word [edi + 0x20]
test ax, ax
js 0x451953
cmp esi, 1
jne 0x451953
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x451953
mov edx, dword [edi + 0x2c]
movsx esi, ax
test byte [edx + 0x1c], 0x60
je 0x451925
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x451925
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x4518fb
mov eax, dword [esp + 0x3c]
or ecx, 0xffffffff
or dword [ebx + 0x38], ecx
or edx, 0xffffffff
or dword [ebx + 0x3c], edx
mov byte [edi], al
jmp 0x451962
xor ecx, ecx
cwde
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0x3c]
cmovae edx, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
or dword [ebx + 0x38], ecx
or dword [ebx + 0x3c], edx
mov byte [edi], al
jmp 0x451962
cmp esi, 0x40
mov eax, 0x3f
cmovge esi, eax
mov eax, dword [esp + 0x3c]
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 byte [edi], al
jmp 0x451962
mov eax, dword [esp + 0x3c]
mov byte [edi], al
cmp esi, 1
jne 0x451542
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
cmp dword [eax + 0x16c], 0
je 0x451a47
mov bl, byte [edi]
cmp bl, 0xa7
je 0x451985
cmp bl, 0x4d
jne 0x451a47
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x50], ecx
test esi, esi
je 0x451a47
mov eax, dword [eax + 0x10]
xor edx, edx
add eax, 0xc
cmp dword [eax], esi
je 0x4519be
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], esi
jne 0x4519a8
test ecx, ecx
js 0x451a47
mov ecx, dword [esp + 0x50]
cmp bl, 0x4d
jne 0x4519cf
mov ebx, dword [esp + 0x10]
mov esi, dword [ebx + 0x84]
jmp 0x451a00
mov esi, dword [ecx]
xor eax, eax
test esi, esi
jle 0x451a47
mov edi, dword [edi + 0x1c]
add ecx, 0x34
nop dword [eax]
cmp edi, dword [ecx]
je 0x4519ee
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x4519e0
jmp 0x451a47
mov esi, dword [esp + 0x50]
lea eax, [eax + eax*8]
mov edi, dword [ebp + 0x14]
mov ebx, dword [esp + 0x10]
mov esi, dword [esi + eax*8 + 0x18]
test esi, esi
je 0x451a47
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x451a16
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x451a31
movzx eax, word [esi + 0x20]
test ax, ax
js 0x451a2c
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x451a31
mov eax, str.ROWID
push edx
mov edx, dword [esi]
mov ecx, ebx
push eax
call fcn.00466a80
add esp, 8
cmp eax, 2
jne 0x451a47
mov byte [edi], 0x79
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x28]
inc dword [ecx + 0x10]
cmp ecx, eax
je 0x451a60
mov ecx, dword [ecx + 0xc]
inc dword [ecx + 0x10]
cmp ecx, eax
jne 0x451a56
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret