Function at 0x455350
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
mov eax, ecx
mov dword [esp + 0x10], 0
xor ecx, ecx
mov dword [esp + 4], eax
push ebx
mov dword [esp + 0x48], ecx
xor ebx, ebx
mov ecx, dword [eax]
mov eax, dword [ebp + 0x14]
push esi
mov esi, edx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x40], 0xa7
mov dword [esp + 0x24], ebx
mov dword [esp + 0x34], ebx
mov dword [eax + 0x1c], 0xffffffff
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x4c], edi
test esi, esi
je 0x455490
test byte [edi + 0x18], 6
je 0x4553d0
xor edx, edx
mov dword [esp + 0x14], edx
jmp 0x455490
mov eax, dword [ecx + 0x14]
xor edi, edi
mov dword [esp + 0x48], eax
test eax, eax
jle 0x45543b
mov ebx, dword [ecx + 0x10]
mov edx, dword [ebx]
sub esi, edx
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x455410
test ecx, ecx
jne 0x455422
mov ebx, dword [esp + 0x24]
mov eax, edi
mov esi, dword [esp + 0x14]
add eax, eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + eax*8 + 0xc]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x48]
jmp 0x45543d
movzx eax, byte [eax + 0x501178]
movzx ecx, byte [ecx + 0x501178]
sub ecx, eax
jne 0x455425
inc edx
jmp 0x4553e4
mov eax, dword [esp + 0x48]
inc edi
mov esi, dword [esp + 0x14]
add ebx, 0x10
cmp edi, eax
jl 0x4553e0
mov ebx, dword [esp + 0x24]
jmp 0x45543d
mov ebx, ecx
cmp edi, eax
jne 0x455486
mov edx, str.main
sub esi, edx
nop dword [eax + eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x455471
test ecx, ecx
jne 0x455483
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], edx
jmp 0x45548a
movzx eax, byte [eax + 0x501178]
movzx ecx, byte [ecx + 0x501178]
sub ecx, eax
jne 0x455486
inc edx
jmp 0x455450
mov edx, dword [esp + 0x14]
mov edi, dword [ebp + 0x10]
nop dword [eax]
mov ecx, dword [edi + 4]
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x4558d2
xor eax, eax
lea edi, [ecx + 8]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edi
cmp dword [ecx], eax
jle 0x455898
nop dword [eax]
nop dword [eax + eax]
test dword [edi + 0x28], 0x2000
mov esi, dword [edi + 0x10]
mov dword [esp + 0x30], esi
je 0x4555f4
mov eax, dword [esp + 0x18]
xor ebx, ebx
xor edi, edi
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x48], eax
cmp dword [eax], ebx
jle 0x4555b6
lea esi, [eax + 0x14]
push edx
push dword [ebp + 8]
mov edx, dword [ebp + 0xc]
lea ecx, [esi - 0xc]
call fcn.00455100
add esp, 8
test eax, eax
je 0x455592
cmp dword [esp + 0x1c], 0
jle 0x455566
mov eax, dword [esp + 0x18]
test dword [eax + 0x28], 0x400
je 0x455549
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
call fcn.00473bc0
test eax, eax
js 0x455549
mov eax, dword [esp + 0x18]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x455592
test al, 8
jne 0x4555ce
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x45555c
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.0045ab70
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
mov edi, 1
inc dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x40], 2
mov word [eax + 0x20], bx
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x455874
mov eax, dword [esp + 0x48]
inc ebx
mov edx, dword [esp + 0x14]
add esi, 0x14
cmp ebx, dword [eax]
jl 0x4554f1
mov ecx, dword [esp + 0x3c]
test edi, edi
jne 0x45586e
mov esi, dword [esp + 0x30]
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
test ebx, ebx
jne 0x4555ff
jmp 0x455884
mov eax, dword [ebp + 0x14]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x20]
movzx eax, word [eax + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00455270
mov eax, dword [esp + 0x40]
add esp, 8
jmp 0x455562
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x4556c4
test edx, edx
je 0x45564f
mov edi, dword [esp + 0x34]
cmp dword [esi + 0x3c], edi
mov edi, dword [esp + 0x18]
jne 0x455884
cmp dword [esp + 0x34], 0
jne 0x45564f
mov ecx, 0x507860
mov eax, edx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x455642
test dl, dl
je 0x45563e
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x455642
add eax, 2
add ecx, 2
test dl, dl
jne 0x455622
xor eax, eax
jmp 0x455647
sbb eax, eax
or eax, 1
test eax, eax
jne 0x455878
mov edi, dword [edi + 0xc]
mov edx, edi
test edi, edi
jne 0x45565a
mov edx, dword [esi]
mov esi, ebx
sub esi, edx
nop
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x45569d
test ecx, ecx
jne 0x4556b3
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xd4], 2
jb 0x4556bc
test edi, edi
je 0x4556bc
mov eax, dword [eax + 0x110]
test eax, eax
je 0x4556bc
mov ecx, dword [ebp + 0x14]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x4556b6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x455690
jmp 0x4556bc
movzx eax, byte [eax + 0x501178]
movzx ecx, byte [ecx + 0x501178]
sub ecx, eax
jne 0x455874
inc edx
jmp 0x455660
mov dword [eax], 0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
xor dl, dl
mov byte [esp + 0xf], dl
mov ecx, eax
test eax, eax
jne 0x4556db
xor cl, cl
mov byte [esp + 0xf], cl
jmp 0x4556fb
mov al, byte [eax]
test al, al
je 0x4556f7
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x501178]
mov al, byte [ecx]
test al, al
jne 0x4556e1
mov byte [esp + 0xf], dl
mov cl, byte [esp + 0xf]
movzx eax, word [esi + 0x22]
xor edx, edx
mov ebx, dword [esi + 4]
mov esi, eax
mov dword [esp + 0x54], esi
xor esi, esi
mov dword [esp + 0x48], edx
cmp si, ax
jge 0x4557fa
nop dword [eax]
cmp byte [ebx + 0xa], cl
jne 0x4557e5
mov edi, dword [ebp + 0xc]
mov edx, dword [ebx]
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edi + edx]
cmp eax, esi
jne 0x4557c1
test eax, eax
jne 0x4557d3
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
test esi, esi
jle 0x455799
test dword [edi + 0x28], 0x400
je 0x45577c
mov edx, dword [ebp + 0xc]
mov ecx, dword [edi + 0x30]
call fcn.00473bc0
test eax, eax
js 0x45577c
mov al, byte [edi + 0x24]
test al, 0x10
je 0x4557dd
test al, 8
jne 0x455824
xor esi, esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x45578f
mov ecx, dword [esp + 0x24]
mov edx, eax
call fcn.0045ab70
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], ecx
mov ebx, dword [ebp + 0x14]
mov edx, dword [esp + 0x48]
inc esi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x20], edi
movsx eax, word [esi + 0x20]
cmp edx, eax
jne 0x45584e
or eax, 0xffffffff
jmp 0x455851
movzx ecx, byte [eax + 0x501178]
movzx eax, byte [esi + 0x501178]
sub ecx, eax
jne 0x4557d9
inc edx
jmp 0x455730
mov edi, dword [esp + 0x18]
mov cl, byte [esp + 0xf]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
inc edx
cwde
add ebx, 0x10
mov dword [esp + 0x48], edx
cmp edx, eax
jl 0x455720
mov esi, dword [esp + 0x30]
cmp dword [esp + 0x1c], 0
jne 0x455878
test dword [esi + 0x1c], 0x200
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x14]
jne 0x455884
inc dword [esp + 0x40]
mov dword [esp + 0x20], edi
jmp 0x455884
mov ebx, dword [ebp + 0x14]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x20]
movzx eax, word [ebx + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x18]
call fcn.00455270
mov eax, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0x28], eax
jmp 0x45579c
movzx eax, dx
mov word [ebx + 0x20], ax
test dword [edi + 0x28], 0x2000
je 0x4557fe
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [edx + edx*4]
or dword [ecx + eax*4 + 0x14], 0x40
jmp 0x4557fe
mov edi, dword [esp + 0x18]
jmp 0x45587c
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
inc eax
add edi, 0x48
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], edi
cmp eax, dword [ecx]
jl 0x4554c0
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x4558c3
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebx + 0x2c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x10]
mov dword [ecx + 0x2c], eax
test byte [ebx + 0x24], 0x48
je 0x4558bc
or dword [ecx + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x1c]
test edi, edi
jne 0x455c16
mov edi, dword [ebp + 0x10]
test edx, edx
jne 0x455b41
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov eax, dword [ecx + 0x7c]
test eax, eax
je 0x4559d0
mov bl, byte [ecx + 0x98]
cmp byte [ecx + 0x99], dl
je 0x455950
test dword [edi + 0x18], 0x400
je 0x4559d0
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x455924
mov edi, dword [eax]
mov edx, ecx
sub edi, ecx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x455937
test eax, eax
jne 0x45594d
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp bl, 0x80
setne al
mov dword [ecx + 0x1c], eax
jmp 0x4559c5
movzx ecx, byte [eax + 0x501178]
movzx eax, byte [esi + 0x501178]
sub ecx, eax
jne 0x4559d0
inc edx
jmp 0x455915
cmp bl, 0x80
je 0x45599a
mov eax, dword [ebp + 8]
test eax, eax
je 0x455995
mov edx, 0x507864
mov edi, eax
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x455980
test eax, eax
jne 0x455992
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], 1
jmp 0x4559c5
movzx ecx, byte [eax + 0x501178]
movzx eax, byte [esi + 0x501178]
sub ecx, eax
jne 0x455995
inc edx
jmp 0x455965
cmp bl, 0x7f
je 0x4559d0
mov eax, dword [ebp + 8]
test eax, eax
je 0x4559d3
mov edx, 0x507868
mov edi, eax
sub edi, edx
nop word [eax + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x455a18
test eax, eax
jne 0x455a2a
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x7c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
test dword [ecx + 0x18], 0x200
je 0x455a45
test eax, eax
je 0x455a45
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x455a45
mov edx, str.excluded
mov edi, eax
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x455a30
test eax, eax
jne 0x455a42
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x18], eax
mov dword [ecx + 0x1c], 2
jmp 0x455a49
movzx ecx, byte [eax + 0x501178]
movzx eax, byte [esi + 0x501178]
sub ecx, eax
jne 0x4559d0
inc edx
jmp 0x4559b0
movzx ecx, byte [eax + 0x501178]
movzx eax, byte [esi + 0x501178]
sub ecx, eax
jne 0x455a45
inc edx
jmp 0x4559f3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x455b41
mov esi, dword [ebp + 0xc]
xor dl, dl
mov byte [esp + 0xf], dl
mov ecx, esi
test esi, esi
je 0x455a82
mov al, byte [esi]
test al, al
je 0x455a86
nop word [eax + eax]
movzx eax, al
lea ecx, [ecx + 1]
add dl, byte [eax + 0x501178]
mov al, byte [ecx]
test al, al
jne 0x455a70
mov byte [esp + 0xf], dl
mov ecx, dword [esp + 0x18]
xor edi, edi
inc dword [esp + 0x40]
mov dword [esp + 0x54], edi
mov eax, dword [ecx + 0x3c]
mov ebx, dword [ecx + 4]
mov dword [esp + 0x34], eax
movzx eax, word [ecx + 0x22]
mov ecx, eax
mov dword [esp + 0x48], ecx
cmp di, ax
jge 0x455b0e
nop dword [eax]
cmp byte [ebx + 0xa], dl
jne 0x455b03
mov edx, dword [ebx]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x455ae3
test ecx, ecx
jne 0x455af5
mov ebx, dword [esp + 0x18]
movsx eax, word [ebx + 0x20]
cmp edi, eax
mov eax, 0xffffffff
cmove edi, eax
jmp 0x455b12
movzx eax, byte [eax + 0x501178]
movzx ecx, byte [ecx + 0x501178]
sub ecx, eax
jne 0x455af8
inc edx
jmp 0x455ac0
mov dl, byte [esp + 0xf]
mov ecx, dword [esp + 0x48]
mov esi, dword [ebp + 0xc]
inc edi
movsx eax, cx
add ebx, 0x10
cmp edi, eax
jl 0x455ab0
mov ebx, dword [esp + 0x18]
movsx esi, word [ebx + 0x22]
cmp edi, esi
jl 0x455c27
mov ecx, dword [ebp + 0xc]
call fcn.0045b1f0
test eax, eax
je 0x455b39
test dword [ebx + 0x1c], 0x200
mov eax, 0xffffffff
cmove edi, eax
cmp edi, esi
jl 0x455c27
cmp dword [esp + 0x40], 1
mov edi, dword [ebp + 0x10]
jne 0x455b75
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x455b75
test byte [edi + 0x18], 0x28
jne 0x455b75
mov ecx, dword [ebp + 0xc]
call fcn.0045b1f0
test eax, eax
je 0x455b75
mov eax, dword [ebx + 0x10]
test dword [eax + 0x1c], 0x200
je 0x455d73
test byte [edi + 0x18], 0x80
mov esi, dword [ebp + 8]
je 0x455be6
test esi, esi
jne 0x455be6
mov ecx, dword [edi + 8]
mov dword [esp + 0x48], esi
mov eax, dword [ecx]
mov dword [esp + 0x54], eax
test eax, eax
jle 0x455be3
lea ebx, [ecx + 0x14]
test byte [ebx], 3
mov edi, dword [ebx - 8]
jne 0x455bd4
mov ecx, dword [ebp + 0xc]
test edi, edi
jne 0x455bab
neg ecx
sbb ecx, ecx
jmp 0x455bcc
test ecx, ecx
je 0x455bd4
mov esi, ecx
mov edx, edi
sub esi, edi
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x455c01
test ecx, ecx
jne 0x455c13
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x54]
test ecx, ecx
je 0x455d8b
inc esi
add ebx, 0x14
mov dword [esp + 0x48], esi
cmp esi, eax
jl 0x455b96
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edi, dword [edi + 0xc]
inc dword [esp + 0x50]
mov dword [ebp + 0x10], edi
test edi, edi
je 0x455e7b
mov edx, dword [esp + 0x14]
jmp 0x455490
movzx eax, byte [eax + 0x501178]
movzx ecx, byte [ecx + 0x501178]
sub ecx, eax
jne 0x455bc4
inc edx
jmp 0x455bb5
cmp edi, 1
je 0x4560fc
mov esi, dword [ebp + 8]
jmp 0x455f51
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], 0
movzx eax, di
mov esi, dword [ecx + 0x1c]
cmp esi, 2
jne 0x455ca0
mov edx, eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0xd4], 2
jb 0x455c72
mov edi, dword [esp + 0x1c]
mov word [ecx + 0x20], dx
mov edx, ecx
mov dword [ecx + 0x2c], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x44], 0xa7
jmp 0x4560ff
mov ecx, ebx
call fcn.0046cd90
mov edx, dword [ebp + 0x10]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
movsx ecx, ax
mov eax, dword [edx + 8]
mov edx, dword [ebp + 0x14]
mov dword [esp + 0x44], 0xb0
add ecx, dword [eax + 0x24]
mov dword [edx + 0x1c], ecx
jmp 0x4560ff
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x2c], ebx
cmp byte [edx + 0x99], 0
je 0x455cee
mov byte [ecx + 2], 0xa7
mov edx, eax
mov ecx, ebx
mov dword [esp + 0x44], 0xb0
call fcn.0046cd90
mov edx, dword [ebp + 0x10]
mov edi, dword [esp + 0x1c]
movsx ecx, ax
movsx eax, word [ebx + 0x22]
mov ebx, dword [esp + 0x20]
inc eax
imul eax, esi
add ecx, eax
mov eax, dword [edx + 8]
mov edx, dword [ebp + 0x14]
inc eax
add eax, ecx
mov dword [edx + 0x1c], eax
jmp 0x4560ff
mov word [ecx + 0x20], ax
mov dword [esp + 0x44], 0x4d
test edi, edi
jns 0x455d11
mov edi, dword [esp + 0x1c]
mov edx, ecx
mov ebx, dword [esp + 0x20]
mov byte [ecx + 1], 0x44
jmp 0x4560ff
test esi, esi
jne 0x455d44
cmp edi, 0x20
jl 0x455d2c
mov edi, dword [esp + 0x1c]
or eax, 0xffffffff
or dword [edx + 0x90], eax
jmp 0x4560f8
mov ecx, edi
mov eax, 1
mov edi, dword [esp + 0x1c]
shl eax, cl
or dword [edx + 0x90], eax
jmp 0x4560f8
cmp edi, 0x20
jl 0x455d5b
mov edi, dword [esp + 0x1c]
or eax, 0xffffffff
or dword [edx + 0x94], eax
jmp 0x4560f8
mov ecx, edi
mov eax, 1
mov edi, dword [esp + 0x1c]
shl eax, cl
or dword [edx + 0x94], eax
jmp 0x4560f8
mov edx, dword [ebp + 0x14]
or eax, 0xffffffff
mov edi, 1
mov word [edx + 0x20], ax
mov byte [edx + 1], 0x44
jmp 0x4560ff
mov ecx, dword [ebp + 0x10]
lea eax, [esi + esi*4]
mov ebx, dword [ecx + 8]
mov edx, dword [ecx + 0x18]
mov eax, dword [ebx + eax*4 + 8]
test dl, 1
jne 0x455dc4
test byte [eax + 4], 0x10
je 0x455dc4
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x18]
call fcn.0041c910
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [eax + 4], 0x8000
je 0x455de6
test edx, 0x4000
je 0x455dde
mov edx, dword [ebp + 0x10]
cmp edx, dword [esp + 0x4c]
je 0x455de6
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x455dac
mov cl, byte [eax]
cmp cl, 0xb0
jne 0x455df0
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x455dfa
mov eax, dword [eax + 0x14]
jmp 0x455e05
cmp cl, 0x8a
jne 0x455e27
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x455e27
push str.row_value_misused
push dword [esp + 0x14]
call fcn.0041c910
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x50]
mov edx, ebx
mov edi, dword [ebp + 0x14]
push ecx
push edi
push esi
mov esi, dword [esp + 0x1c]
mov ecx, esi
call fcn.00454f60
add esp, 0xc
cmp byte [esi + 0xd4], 2
jb 0x4561e3
mov eax, dword [esi + 0x110]
test eax, eax
je 0x4561e3
nop dword [eax]
cmp dword [eax], edi
je 0x455e70
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x455e60
jmp 0x4561e3
mov dword [eax], 0
jmp 0x4561e3
test esi, esi
jne 0x455f4d
mov ecx, dword [ebp + 0x14]
test byte [ecx + 4], 0x80
je 0x455f16
mov eax, dword [esp + 0x24]
cmp byte [eax + 0xb1], 0
jne 0x455edc
mov ecx, dword [eax + 0x20]
mov eax, dword [esp + 0x4c]
test dword [eax + 0x18], 0x10000
je 0x455f08
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x455ec4
mov eax, ecx
and eax, 0x40000000
or eax, esi
jne 0x455edc
and ecx, 0x20000000
or ecx, 0
je 0x455ed6
mov eax, 1
jmp 0x455ed8
xor eax, eax
test eax, eax
je 0x455f13
push dword [ebp + 0xc]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.0041bb20
mov eax, dword [ebp + 0x14]
xorps xmm0, xmm0
add esp, 0xc
mov byte [eax], 0x75
movq qword [eax + 0x2c], xmm0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x40000000
or ecx, 0
jne 0x455edc
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 4]
test esi, 0x4000800
jne 0x455f44
mov ecx, dword [ecx + 8]
call fcn.0045ac00
mov ecx, dword [ebp + 0x14]
test eax, eax
je 0x455f44
or eax, esi
mov byte [ecx], 0xaa
mov dword [ecx + 4], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x1c]
mov esi, dword [ebp + 8]
jmp 0x455f54
mov edi, dword [esp + 0x1c]
mov ecx, dword [ebp + 0x14]
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x456069
lea eax, [edi - 1]
cmp dword [ebx], eax
jne 0x45605e
mov eax, dword [ecx + 4]
test eax, 0x800000
je 0x455f7f
and eax, 0xff7fffff
mov dword [ecx + 4], eax
jmp 0x455fb3
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0x24]
test edx, edx
je 0x455f94
mov ecx, esi
call fcn.00459770
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x10]
mov dword [ecx + 0xc], 0
test edx, edx
je 0x455fac
mov ecx, esi
call fcn.00459770
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x10]
movzx edi, word [ecx + 0x20]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.00419010
mov esi, eax
add esp, 8
test esi, esi
je 0x456049
push 0x34
push 0
push esi
call fcn.004d4bd0
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 0x45602b
mov eax, dword [esp + 0x10]
mov edx, ebx
push esi
mov ecx, dword [eax]
call fcn.0045a660
add esp, 4
mov ebx, eax
jmp 0x456049
movups xmm0, xmmword [0x500078]
lea eax, [eax + eax*4]
mov dword [ebx], edx
lea ecx, [ebx + eax*4]
mov eax, dword [0x500088]
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 0x4561df
mov ecx, dword [esp + 0x24]
mov edx, ebx
call fcn.0045ab70
push dword [ebp + 0xc]
test edi, edi
mov ecx, str.ambiguous_column_name
mov eax, str.no_such_column
cmovne eax, ecx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x456099
push esi
push ecx
push eax
push str._s:__s._s._s
push dword [esp + 0x24]
call fcn.0041c910
add esp, 0x18
jmp 0x4560c4
test esi, esi
je 0x4560b2
push esi
push eax
push str._s:__s._s
push dword [esp + 0x20]
call fcn.0041c910
add esp, 0x14
jmp 0x4560c4
push eax
push str._s:__s
push dword [esp + 0x1c]
call fcn.0041c910
add esp, 0x10
mov edx, dword [esp + 0x10]
mov eax, dword [ebp + 0x14]
mov edx, dword [edx]
nop dword [eax]
test byte [eax + 4], 3
jne 0x4560dd
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x4560e6
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4560d0
jmp 0x4560e9
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x10]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x4c]
inc dword [eax + 0x14]
mov ebx, dword [esp + 0x20]
mov edx, dword [ebp + 0x14]
test dword [edx + 4], 0x810000
jne 0x456143
mov edx, dword [edx + 0xc]
mov esi, dword [esp + 0x24]
test edx, edx
je 0x45611a
mov ecx, esi
call fcn.00459770
mov edx, dword [ebp + 0x14]
mov dword [edx + 0xc], 0
mov edx, dword [edx + 0x10]
test edx, edx
je 0x456132
mov ecx, esi
call fcn.00459770
mov edx, dword [ebp + 0x14]
or dword [edx + 4], 0x800000
mov dword [edx + 0x10], 0
movzx eax, word [edx + 0x20]
test ax, ax
js 0x4561cb
test ebx, ebx
je 0x4561cb
movsx esi, ax
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x2c]
test byte [edx + 0x1c], 0x60
je 0x4561a5
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x4561a5
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x456187
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x4561c5
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 0x4561c5
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 [ebp + 0x14]
mov ecx, dword [esp + 0x44]
mov byte [eax], cl
cmp edi, 1
jne 0x455db8
mov edi, eax
mov esi, dword [esp + 0x10]
mov ecx, dword [esi]
cmp dword [ecx + 0x16c], 0
je 0x4562b6
mov al, byte [edi]
cmp al, 0xa7
je 0x456200
cmp al, 0x4d
jne 0x4562b6
cmp dword [esp + 0x34], 0
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 4]
je 0x4562b6
mov eax, dword [ecx + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x34]
add eax, 0xc
cmp dword [eax], ecx
je 0x456239
mov esi, ecx
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], esi
jne 0x456223
mov esi, dword [esp + 0x10]
test ecx, ecx
js 0x4562b6
cmp byte [edi], 0x4d
jne 0x456243
mov esi, dword [esi + 0x7c]
jmp 0x45626d
mov esi, dword [ebx]
xor eax, eax
test esi, esi
jle 0x4562b6
mov edi, dword [edi + 0x1c]
lea ecx, [ebx + 0x34]
cmp edi, dword [ecx]
je 0x456263
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x456255
jmp 0x4562b6
mov edi, dword [ebp + 0x14]
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x18]
test esi, esi
je 0x4562b6
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x456283
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x45629e
movzx eax, word [esi + 0x20]
test ax, ax
js 0x456299
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x45629e
mov eax, str.ROWID
mov ecx, dword [esp + 0x10]
push edx
mov edx, dword [esi]
push eax
call fcn.0046adf0
add esp, 8
cmp eax, 2
jne 0x4562b6
mov byte [edi], 0x79
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x10]
inc dword [eax + 0x10]
cmp eax, ecx
je 0x4562ce
mov eax, dword [eax + 0xc]
inc dword [eax + 0x10]
cmp eax, ecx
jne 0x4562c4
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret