Function at 0x100653b0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
xor eax, eax
mov dword [esp + 8], ecx
mov ecx, dword [ecx]
push ebx
mov dword [esp + 0x48], eax
xor ebx, ebx
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x10]
push esi
mov dword [esp + 0x48], eax
mov esi, edx
mov eax, dword [ebp + 0x14]
push edi
xor edi, edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], ebx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x44], 0xa7
mov dword [eax + 0x1c], 0xffffffff
test esi, esi
je 0x100654cc
test byte [ebx + 0x18], 6
je 0x10065421
mov dword [esp + 0x34], edi
jmp 0x100654cc
mov eax, dword [ecx + 0x14]
xor edi, edi
mov dword [esp + 0x48], eax
test eax, eax
jle 0x1006548c
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 0x10065461
test ecx, ecx
jne 0x10065473
mov ebx, dword [esp + 0x20]
mov eax, edi
mov esi, dword [esp + 0x34]
add eax, eax
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + eax*8 + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x48]
jmp 0x1006548e
movzx eax, byte [eax + 0x10162840]
movzx ecx, byte [ecx + 0x10162840]
sub ecx, eax
jne 0x10065476
inc edx
jmp 0x10065435
mov eax, dword [esp + 0x48]
inc edi
mov esi, dword [esp + 0x34]
add ebx, 0x10
cmp edi, eax
jl 0x10065431
mov ebx, dword [esp + 0x20]
jmp 0x1006548e
mov ebx, ecx
cmp edi, eax
jne 0x100654c7
mov edx, str.main
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x100655c9
test ecx, ecx
jne 0x100655df
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
mov ebx, dword [ebp + 0x10]
xor edi, edi
mov edx, dword [ebp + 8]
nop
mov ecx, dword [ebx + 4]
mov dword [esp + 0x30], ecx
test ecx, ecx
je 0x10065963
xor eax, eax
lea esi, [ecx + 8]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], esi
cmp dword [ecx], eax
jle 0x10065930
nop dword [eax]
nop dword [eax + eax]
test dword [esi + 0x28], 0x2000
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x40], ebx
je 0x1006566e
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 0x1006565d
lea esi, [eax + 0x14]
nop dword [eax]
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0
push eax
push dword [esp + 0x38]
lea ecx, [esi - 0xc]
push edx
mov edx, dword [ebp + 0xc]
call fcn.10064f10
add esp, 0xc
test eax, eax
je 0x10065637
cmp dword [esp + 0x48], 0
jne 0x10065615
cmp dword [esp + 0x10], 0
jle 0x100655be
mov eax, dword [esp + 0x1c]
test dword [eax + 0x28], 0x400
je 0x100655a1
mov edx, dword [ebp + 0xc]
mov ecx, dword [eax + 0x30]
call fcn.10083bd0
test eax, eax
js 0x100655a1
mov eax, dword [esp + 0x1c]
mov al, byte [eax + 0x24]
test al, 0x10
je 0x10065637
test al, 8
jne 0x100655e5
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x28]
test eax, eax
je 0x100655b4
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.1006b040
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], eax
inc dword [esp + 0x10]
mov edi, 1
jmp 0x1006561c
movzx eax, byte [eax + 0x10162840]
movzx ecx, byte [ecx + 0x10162840]
sub ecx, eax
jne 0x100654c7
inc edx
jmp 0x100654a0
mov eax, dword [ebp + 0x14]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x18]
movzx eax, word [eax + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.10065140
mov eax, dword [esp + 0x40]
add esp, 8
inc dword [esp + 0x10]
mov edi, 1
mov dword [esp + 0x28], eax
jmp 0x1006561c
cmp dword [esp + 0x10], 0
jg 0x10065637
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x14]
mov word [eax + 0x20], bx
or dword [esi], 0x40
test byte [esi], 0x80
jne 0x1006564a
mov eax, dword [esp + 0x54]
inc ebx
mov edx, dword [ebp + 8]
add esi, 0x14
cmp ebx, dword [eax]
jl 0x10065530
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 8]
test edi, edi
jne 0x10065903
mov eax, dword [esp + 0x24]
test edx, edx
jne 0x10065678
mov edi, dword [esp + 0x10]
jmp 0x1006591c
test edx, edx
je 0x10065794
jmp 0x1006567c
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
test edi, edi
je 0x100656d0
mov esi, dword [esp + 0x2c]
cmp dword [ebx + 0x3c], esi
mov esi, dword [esp + 0x1c]
jne 0x10065665
cmp dword [esp + 0x2c], 0
jne 0x100656d0
mov ecx, 0x1016a4bc
mov eax, edi
nop
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x100656c0
test dl, dl
je 0x100656bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x100656c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x100656a0
xor eax, eax
jmp 0x100656c5
sbb eax, eax
or eax, 1
mov edx, dword [ebp + 8]
test eax, eax
jne 0x100659d2
mov edi, dword [esi + 0xc]
test edi, edi
je 0x1006570b
sub edi, dword [ebp + 8]
nop word [eax + eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x100656f2
test eax, eax
je 0x1006575a
inc edx
jmp 0x100656e0
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065909
inc edx
jmp 0x100656e0
mov edi, dword [ebx]
sub edi, dword [ebp + 8]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x10065722
test eax, eax
je 0x1006575a
inc edx
jmp 0x10065710
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065737
inc edx
jmp 0x10065710
cmp dword [ebx + 0x14], 1
jne 0x10065909
push dword [esp + 0x2c]
mov ecx, dword [ebp + 8]
mov edx, ebx
call fcn.10065220
add esp, 4
test eax, eax
je 0x10065909
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
cmp byte [eax + 0xdc], 2
jb 0x10065794
cmp dword [esi + 0xc], 0
je 0x10065794
mov eax, dword [eax + 0x118]
test eax, eax
je 0x10065794
mov ecx, dword [ebp + 0x14]
add ecx, 0x2c
cmp dword [eax], ecx
je 0x1006578e
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10065781
jmp 0x10065794
mov dword [eax], 0
mov ecx, dword [ebp + 0xc]
call fcn.1002bae0
mov ecx, dword [esp + 0x40]
mov dl, al
mov ebx, dword [ebx + 4]
xor eax, eax
mov byte [esp + 0xf], dl
mov dword [esp + 0x48], eax
movsx ecx, word [ecx + 0x22]
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x100658d9
nop
cmp byte [ebx + 0xa], dl
jne 0x10065882
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 0x1006585a
test eax, eax
jne 0x1006586c
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x1c]
test edi, edi
jle 0x10065839
test dword [esi + 0x28], 0x400
je 0x1006581c
mov edx, dword [ebp + 0xc]
mov ecx, dword [esi + 0x30]
call fcn.10083bd0
test eax, eax
js 0x1006581c
mov al, byte [esi + 0x24]
test al, 0x10
je 0x10065876
test al, 8
jne 0x10065894
xor edi, edi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x1006582f
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.1006b040
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], ecx
mov ebx, dword [ebp + 0x14]
mov ecx, dword [esp + 0x40]
inc edi
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], esi
movsx eax, word [ecx + 0x20]
cmp edx, eax
jne 0x100658bb
or eax, 0xffffffff
jmp 0x100658be
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065872
inc edx
jmp 0x100657d0
mov esi, dword [esp + 0x1c]
mov dl, byte [esp + 0xf]
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x48]
inc eax
add ebx, 0x10
mov dword [esp + 0x48], eax
cmp eax, ecx
jl 0x100657c0
jmp 0x100658d9
mov ebx, dword [ebp + 0x14]
lea edx, [esp + 0x38]
mov ecx, dword [esp + 0x18]
movzx eax, word [ebx + 0x20]
push eax
push ecx
mov ecx, dword [esp + 0x1c]
call fcn.10065140
mov eax, dword [esp + 0x40]
add esp, 8
mov dword [esp + 0x28], eax
jmp 0x1006583c
movzx eax, dx
mov word [ebx + 0x20], ax
test dword [esi + 0x28], 0x2000
je 0x100658dd
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0x1c]
lea eax, [edx + edx*4]
or dword [ecx + eax*4 + 0x14], 0x40
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x10]
test edi, edi
jne 0x10065911
test dword [ecx + 0x1c], 0x200
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
jne 0x1006591c
inc dword [esp + 0x3c]
mov dword [esp + 0x18], esi
jmp 0x1006591c
mov edi, dword [esp + 0x10]
jmp 0x10065918
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
inc eax
add esi, 0x48
mov dword [esp + 0x24], eax
mov dword [esp + 0x1c], esi
cmp eax, dword [ecx]
jl 0x10065500
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x1006595b
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 0x10065954
or dword [ecx + 4], 0x200000
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x2c], eax
test edi, edi
jne 0x10065cf7
cmp dword [esp + 0x34], 0
jne 0x10065c36
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov eax, dword [ecx + 0x84]
test eax, eax
je 0x10065a7b
cmp byte [ecx + 0x9f], 0
mov bl, byte [ecx + 0x9e]
je 0x100659f4
mov ecx, dword [ebp + 0x10]
test dword [ecx + 0x18], 0x400
je 0x10065a7b
test edx, edx
je 0x100659bf
mov edi, dword [eax]
sub edi, dword [ebp + 8]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x100659db
test eax, eax
jne 0x100659f1
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp bl, 0x80
setne al
mov dword [ecx + 0x1c], eax
jmp 0x10065a6d
mov edi, dword [esp + 0x10]
jmp 0x10065914
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065a7b
inc edx
jmp 0x100659b0
cmp bl, 0x80
je 0x10065a3f
test edx, edx
je 0x10065a3a
mov edi, dword [ebp + 8]
mov edx, 0x1016a4c0
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x10065a22
test eax, eax
jne 0x10065a34
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], 1
jmp 0x10065a6d
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065a37
inc edx
jmp 0x10065a07
mov edx, dword [ebp + 8]
cmp bl, 0x7f
je 0x10065a7b
test edx, edx
je 0x10065a7b
mov edi, dword [ebp + 8]
mov edx, 0x1016a4c4
sub edi, edx
nop dword [eax]
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x10065acb
test eax, eax
jne 0x10065add
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], eax
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 0x84]
mov dword [esp + 0x1c], eax
mov edx, dword [ebp + 0x10]
test dword [edx + 0x18], 0x200
je 0x10065af8
mov eax, dword [ebp + 8]
test eax, eax
je 0x10065af8
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x10065af8
mov edx, str.excluded
mov edi, eax
sub edi, edx
movzx eax, byte [edx]
movzx esi, byte [edx + edi]
cmp eax, esi
jne 0x10065ae3
test eax, eax
jne 0x10065af5
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
mov dword [ecx + 0x1c], 2
jmp 0x10065afc
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065a7b
inc edx
jmp 0x10065a50
movzx ecx, byte [eax + 0x10162840]
movzx eax, byte [esi + 0x10162840]
sub ecx, eax
jne 0x10065af8
inc edx
jmp 0x10065aa6
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10065c36
mov esi, dword [ebp + 0xc]
mov ecx, esi
call fcn.1002bae0
inc dword [esp + 0x3c]
mov cl, al
mov eax, dword [esp + 0x1c]
xor edi, edi
mov byte [esp + 0xf], cl
mov edx, dword [eax + 0x3c]
mov ebx, dword [eax + 4]
movsx eax, word [eax + 0x22]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x54], eax
test eax, eax
jle 0x10065bff
nop dword [eax + eax]
cmp byte [ebx + 0xa], cl
jne 0x10065be9
mov edx, dword [ebx]
sub esi, edx
nop dword [eax]
movzx ecx, byte [edx]
movzx eax, byte [esi + edx]
cmp ecx, eax
jne 0x10065bc6
test ecx, ecx
jne 0x10065bd8
mov ebx, dword [esp + 0x1c]
movsx eax, word [ebx + 0x20]
cmp edi, eax
jne 0x10065c03
or edi, 0xffffffff
mov ecx, edi
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x10], 1
mov dword [esp + 0x18], 0
movzx edx, cx
mov esi, dword [eax + 0x1c]
cmp esi, 2
jne 0x10065d34
mov eax, dword [esp + 0x14]
cmp byte [eax + 0xdc], 2
jb 0x10065d08
mov ecx, dword [ebp + 0x14]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], 0xa7
mov word [ecx + 0x20], dx
mov dword [ecx + 0x2c], ebx
jmp 0x1006619b
movzx eax, byte [eax + 0x10162840]
movzx ecx, byte [ecx + 0x10162840]
sub ecx, eax
jne 0x10065bde
inc edx
jmp 0x10065b50
mov eax, dword [esp + 0x54]
mov cl, byte [esp + 0xf]
mov esi, dword [ebp + 0xc]
inc edi
add ebx, 0x10
cmp edi, eax
jl 0x10065b40
mov ebx, dword [esp + 0x1c]
movzx esi, word [ebx + 0x22]
jmp 0x10065c0e
mov ebx, dword [esp + 0x1c]
movzx esi, word [ebx + 0x22]
movsx eax, si
cmp edi, eax
jl 0x10065c29
mov ecx, dword [ebp + 0xc]
call fcn.1006b710
test eax, eax
je 0x10065c29
test dword [ebx + 0x1c], 0x200
mov eax, 0xffffffff
cmove edi, eax
movsx eax, si
mov ecx, edi
cmp edi, eax
jl 0x10065b78
cmp dword [esp + 0x3c], 1
jne 0x10065c77
mov ebx, dword [esp + 0x18]
test ebx, ebx
je 0x10065c77
mov eax, dword [ebp + 0x10]
test byte [eax + 0x18], 0x28
jne 0x10065c77
mov ecx, dword [ebp + 0xc]
call fcn.1006b710
test eax, eax
je 0x10065c77
mov eax, dword [ebx + 0x10]
test dword [eax + 0x1c], 0x200
je 0x10065e14
test dword [ebx + 0x28], 0x2000
jne 0x10065e14
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
test byte [ebx + 0x18], 0x80
je 0x10065cdc
test edx, edx
jne 0x10065cdc
mov eax, dword [ebx + 8]
xor ebx, ebx
mov ecx, dword [eax]
mov dword [esp + 0x54], ecx
test ecx, ecx
jle 0x10065cd9
lea esi, [eax + 0x14]
nop dword [eax]
test byte [esi], 3
mov edi, dword [esi - 8]
jne 0x10065cce
mov eax, dword [ebp + 0xc]
test edi, edi
jne 0x10065cb5
neg eax
sbb eax, eax
jmp 0x10065cc6
test eax, eax
je 0x10065cce
mov edx, eax
mov ecx, edi
call fcn.1002ba20
mov ecx, dword [esp + 0x54]
test eax, eax
je 0x10065e35
inc ebx
add esi, 0x14
cmp ebx, ecx
jl 0x10065ca0
mov edx, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov ebx, dword [ebx + 0xc]
inc dword [esp + 0x50]
mov dword [ebp + 0x10], ebx
test ebx, ebx
je 0x10065f21
mov edi, dword [esp + 0x10]
jmp 0x100654d0
mov ecx, dword [ebp + 0x14]
cmp edi, 1
je 0x1006619f
jmp 0x10065fee
mov ecx, ebx
call fcn.1007cc50
mov edi, dword [esp + 0x10]
movsx ecx, ax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x44], 0xb0
mov eax, dword [eax + 8]
add ecx, dword [eax + 0x24]
mov eax, dword [ebp + 0x14]
mov dword [eax + 0x1c], ecx
mov ecx, eax
jmp 0x1006619b
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [ecx + 0x2c], ebx
mov al, byte [eax + 0x9f]
mov word [ecx + 0x20], dx
test al, al
je 0x10065d83
mov byte [ecx + 2], 0xa7
mov ecx, ebx
mov dword [esp + 0x44], 0xb0
call fcn.1007cc50
movsx ecx, ax
movsx eax, word [ebx + 0x22]
mov edi, dword [esp + 0x10]
inc eax
imul eax, esi
add ecx, eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
inc eax
add eax, ecx
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x1c], eax
jmp 0x1006619b
mov dword [esp + 0x44], 0x4d
test edi, edi
jns 0x10065d9c
mov edi, dword [esp + 0x10]
mov byte [ecx + 1], 0x44
jmp 0x1006619b
test esi, esi
jne 0x10065dda
cmp edi, 0x20
jl 0x10065dbb
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
mov edi, dword [esp + 0x10]
or dword [edx + 0x94], eax
jmp 0x1006619b
mov edx, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [esp + 0x10]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 0x14]
or dword [edx + 0x94], eax
jmp 0x1006619b
cmp edi, 0x20
jl 0x10065df5
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
mov edi, dword [esp + 0x10]
or dword [edx + 0x98], eax
jmp 0x1006619b
mov edx, dword [esp + 0x14]
mov ecx, edi
mov edi, dword [esp + 0x10]
mov eax, 1
shl eax, cl
mov ecx, dword [ebp + 0x14]
or dword [edx + 0x98], eax
jmp 0x1006619b
test dword [ebx + 0x28], 0x2000
mov edi, 1
mov ecx, dword [ebp + 0x14]
jne 0x10065e2c
or eax, 0xffffffff
mov word [ecx + 0x20], ax
mov byte [ecx + 1], 0x44
jmp 0x1006619f
mov ecx, dword [ebp + 0x10]
lea eax, [ebx + ebx*4]
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0x18]
mov eax, dword [esi + eax*4 + 8]
test dl, 1
jne 0x10065e6e
test byte [eax + 4], 0x10
je 0x10065e6e
push edi
push str.misuse_of_aliased_aggregate__s
push dword [esp + 0x1c]
call fcn.1002b880
add esp, 0xc
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [eax + 4], 0x8000
je 0x10065e90
test edx, 0x4000
je 0x10065e88
mov ecx, dword [ebp + 0x10]
cmp ecx, dword [esp + 0x4c]
je 0x10065e90
push edi
push str.misuse_of_aliased_window_function__s
jmp 0x10065e56
mov cl, byte [eax]
cmp cl, 0xb0
jne 0x10065e9a
mov cl, byte [eax + 2]
cmp cl, 0xb1
jne 0x10065ea4
mov eax, dword [eax + 0x14]
jmp 0x10065eaf
cmp cl, 0x8a
jne 0x10065ed1
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x1c]
cmp dword [eax], 1
je 0x10065ed1
push str.row_value_misused
push dword [esp + 0x18]
call fcn.1002b880
add esp, 8
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x50]
mov edx, esi
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
mov ecx, esi
push eax
push edi
push ebx
call fcn.10064d40
add esp, 0xc
cmp byte [esi + 0xdc], 2
jb 0x10066281
mov eax, dword [esi + 0x118]
test eax, eax
je 0x10066281
cmp dword [eax], edi
je 0x10065f16
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10065f06
jmp 0x10066281
mov dword [eax], 0
jmp 0x10066281
mov ecx, dword [ebp + 0x14]
test edx, edx
jne 0x10065fea
test byte [ecx + 4], 0x80
je 0x10065fbc
mov eax, dword [esp + 0x20]
cmp byte [eax + 0xb1], dl
jne 0x10065f82
mov edx, dword [esp + 0x4c]
mov ecx, dword [eax + 0x20]
test dword [edx + 0x18], 0x10000
je 0x10065fae
mov eax, ecx
and eax, 0x10000001
cmp eax, 1
jne 0x10065f6a
mov eax, ecx
and eax, 0x40000000
or eax, 0
jne 0x10065f82
and ecx, 0x20000000
or ecx, 0
je 0x10065f7c
mov eax, 1
jmp 0x10065f7e
xor eax, eax
test eax, eax
je 0x10065fb9
push dword [ebp + 0xc]
push str.double_quoted_string_literal:___w_
push 0x1c
call fcn.1002a9f0
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 0x10065f82
mov ecx, dword [ebp + 0x14]
mov esi, dword [ecx + 4]
test esi, 0x4000800
jne 0x10065fea
mov ecx, dword [ecx + 8]
call fcn.1006b0b0
mov ecx, dword [ebp + 0x14]
test eax, eax
je 0x10065fea
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 + 0x10]
mov ebx, dword [esp + 0x28]
test ebx, ebx
je 0x10066103
lea eax, [edi - 1]
cmp dword [ebx], eax
jne 0x100660f8
mov eax, dword [ecx + 4]
test eax, 0x800000
je 0x10066019
and eax, 0xff7fffff
mov dword [ecx + 4], eax
jmp 0x1006604d
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0x20]
test edx, edx
je 0x1006602e
mov ecx, esi
call fcn.10069d00
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x10]
mov dword [ecx + 0xc], 0
test edx, edx
je 0x10066046
mov ecx, esi
call fcn.10069d00
mov ecx, dword [ebp + 0x14]
mov dword [ecx + 0x10], 0
mov eax, dword [esp + 0x14]
movzx edi, word [ecx + 0x20]
push 0
push 0x34
mov ecx, dword [eax]
call fcn.10028280
mov esi, eax
add esp, 8
test esi, esi
je 0x100660e3
push 0x34
push 0
push esi
call fcn.1013ad10
mov ecx, dword [esp + 0x24]
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 0x100660c5
mov eax, dword [esp + 0x14]
mov edx, ebx
push esi
mov ecx, dword [eax]
call fcn.1006ab70
add esp, 4
mov ebx, eax
jmp 0x100660e3
movups xmm0, xmmword [0x101611e8]
lea eax, [eax + eax*4]
mov dword [ebx], edx
lea ecx, [ebx + eax*4]
mov eax, dword [0x101611f8]
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 0x1006627d
mov ecx, dword [esp + 0x20]
mov edx, ebx
call fcn.1006b040
mov edx, dword [esp + 0x34]
test edi, edi
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 0x10066136
push ecx
push edx
push eax
push str._s:__s._s._s
push dword [esp + 0x28]
call fcn.1002b880
add esp, 0x18
jmp 0x10066161
test ecx, ecx
je 0x1006614f
push ecx
push eax
push str._s:__s._s
push dword [esp + 0x24]
call fcn.1002b880
add esp, 0x14
jmp 0x10066161
push eax
push str._s:__s
push dword [esp + 0x20]
call fcn.1002b880
add esp, 0x10
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x14]
mov edx, dword [edx]
nop word [eax + eax]
test byte [eax + 4], 3
jne 0x1006617d
mov ecx, dword [eax + 0x24]
test ecx, ecx
jg 0x10066186
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x10066170
jmp 0x10066189
mov dword [edx + 0x44], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x14]
mov byte [eax + 0x11], 1
mov eax, dword [esp + 0x4c]
inc dword [eax + 0x14]
mov ebx, dword [esp + 0x18]
test dword [ecx + 4], 0x810000
jne 0x100661e3
mov edx, dword [ecx + 0xc]
mov esi, dword [esp + 0x20]
test edx, edx
je 0x100661bd
mov ecx, esi
call fcn.10069d00
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + 0x10]
mov dword [ecx + 0xc], 0
test edx, edx
je 0x100661d5
mov ecx, esi
call fcn.10069d00
mov ecx, dword [ebp + 0x14]
or dword [ecx + 4], 0x800000
mov dword [ecx + 0x10], 0
movzx eax, word [ecx + 0x20]
test ax, ax
js 0x1006626b
test ebx, ebx
je 0x1006626b
mov edx, dword [ecx + 0x2c]
movsx esi, ax
test byte [edx + 0x1c], 0x60
je 0x10066242
mov eax, dword [edx + 4]
mov ecx, esi
add ecx, ecx
test byte [eax + ecx*8 + 0xe], 0x60
je 0x10066242
movzx eax, word [edx + 0x22]
cmp ax, 0x40
jl 0x10066224
or ecx, 0xffffffff
or edx, 0xffffffff
jmp 0x10066262
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 0x10066262
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 ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x44]
mov byte [ecx], al
cmp edi, 1
jne 0x10065e62
mov edi, dword [ebp + 0x14]
mov esi, dword [esp + 0x14]
mov ecx, dword [esi]
cmp dword [ecx + 0x16c], 0
je 0x10066357
mov al, byte [edi]
cmp al, 0xa7
je 0x1006629e
cmp al, 0x4d
jne 0x10066357
cmp dword [esp + 0x2c], 0
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 4]
je 0x10066357
mov eax, dword [ecx + 0x10]
xor edx, edx
mov ecx, dword [esp + 0x2c]
add eax, 0xc
cmp dword [eax], ecx
je 0x100662d7
mov esi, ecx
inc edx
lea eax, [eax + 0x10]
mov ecx, edx
cmp dword [eax], esi
jne 0x100662c1
mov esi, dword [esp + 0x14]
test ecx, ecx
js 0x10066357
cmp byte [edi], 0x4d
jne 0x100662e4
mov esi, dword [esi + 0x84]
jmp 0x1006630e
mov esi, dword [ebx]
xor eax, eax
test esi, esi
jle 0x10066357
mov edi, dword [edi + 0x1c]
lea ecx, [ebx + 0x34]
cmp edi, dword [ecx]
je 0x10066304
inc eax
add ecx, 0x48
cmp eax, esi
jl 0x100662f6
jmp 0x10066357
mov edi, dword [ebp + 0x14]
lea eax, [eax + eax*8]
mov esi, dword [ebx + eax*8 + 0x18]
test esi, esi
je 0x10066357
movsx ecx, word [edi + 0x20]
test ecx, ecx
js 0x10066324
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x1006633f
movzx eax, word [esi + 0x20]
test ax, ax
js 0x1006633a
movsx ecx, ax
mov eax, dword [esi + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
jmp 0x1006633f
mov eax, str.ROWID
mov ecx, dword [esp + 0x14]
push edx
mov edx, dword [esi]
push eax
call fcn.1007af40
add esp, 8
cmp eax, 2
jne 0x10066357
mov byte [edi], 0x79
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebp + 0x10]
inc dword [eax + 0x10]
cmp eax, ecx
je 0x1006636f
mov eax, dword [eax + 0xc]
inc dword [eax + 0x10]
cmp eax, ecx
jne 0x10066365
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret