Function at 0x14000dee0
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
mov rdi, rcx
mov rax, qword [0x14012c040]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov qword [rsp + 0xf8], 0x400
xor eax, eax
mov qword [rsp + 0xc0], rax
mov ecx, 0x400
mov edx, 2
xor r8d, r8d
call fcn.14003f680
mov r12, rax
movsxd rcx, dword [rdi + 0x178]
mov edx, 0x14
xor r8d, r8d
call fcn.14003f680
mov cl, byte [rdi + 0xf2]
cmp cl, byte [rdi + 0x181]
mov qword [rsp + 0x50], rax
setne r14b
cmp byte [rdi + 0xf8], 0
je 0x14000dfac
cmp byte [rdi + 0x180], 0
je 0x14000df8d
mov eax, 0x40000000
cmp byte [rdi + 0xfb], 0
jne 0x14000df92
xor eax, eax
cmp byte [rdi + 0x117a], 0
sete al
shl eax, 0x1e
jmp 0x14000df92
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [rdi + 0xe2], 0
cmove ecx, eax
mov qword [rsp + 0xc0], rcx
movsxd rdx, dword [rdi + 0xc8]
movsxd rax, dword [rdi + 0x20]
mov rbx, rdx
sub rbx, rax
mov rcx, rdi
mov r8d, 0x17b6
call fcn.14000da30
mov rbp, rax
mov esi, dword [rdi + 0xcc]
mov rcx, rdi
mov rdx, rax
mov r8d, ebx
call fcn.1400144d0
test rax, rax
je 0x14000e002
movsxd rcx, esi
mov rdx, qword [rdi + 0x1140]
mov rsi, rbx
shl rsi, 5
mov rdx, qword [rdx + rsi + 0x10]
mov esi, dword [rdx + rcx*4]
jmp 0x14000e006
mov rax, qword [rbp + 0x18]
mov r8, rbx
test esi, esi
jle 0x14000e021
mov ecx, esi
lea rcx, [rcx + rcx*4]
xor edx, edx
cmp dword [rax + rcx*4], 0xdfff
sete dl
sub esi, edx
mov r15d, esi
cmp byte [rbp + 0xc], 0
mov qword [rsp + 0xd8], r8
je 0x14000e04b
mov rcx, qword [rbp + 0x18]
call fcn.14003f720
mov rcx, rbp
call fcn.14003f720
mov r8, qword [rsp + 0xd8]
mov ecx, dword [rdi + 0x34]
test ecx, ecx
mov ebx, 0
js 0x14000e0cc
mov eax, dword [rdi + 0x30]
mov rdx, qword [rsp + 0xc0]
cmp dword [rdi + 0x38], edx
jne 0x14000e071
cmp ecx, r8d
jne 0x14000e071
cmp eax, r15d
je 0x14000e0cc
movsxd rdx, eax
mov rbp, qword [rdi + 0x28]
mov rcx, qword [rbp + rcx*8]
mov rcx, qword [rcx + 0x18]
lea rdx, [rdx + rdx*4]
lea rbp, [rcx + rdx*4]
test eax, eax
jle 0x14000e0a0
cmp dword [rbp], 0xdfff
jne 0x14000e0a0
or dword [rbp - 0x10], 0x3ffff
mov eax, dword [rdi + 0x30]
mov esi, dword [rdi + 0x178]
add esi, 0xffffffff
cmp eax, esi
jge 0x14000e0bd
cmp dword [rbp + 0x14], 0xdfff
jne 0x14000e0bd
or dword [rbp + 0x18], 0x3ffff
or dword [rcx + rdx*4 + 4], 0x3ffff
mov dword [rdi + 0x38], 0
mov qword [rdi + 0x30], 0xffffffffffffffff
cmp dword [rdi + 0x174], 0
jle 0x14000f588
mov bl, r14b
shl ebx, 0x14
mov dword [rsp + 0xb4], ebx
mov eax, r8d
mov qword [rsp + 0xd0], rax
xor esi, esi
mov qword [rsp + 0xe0], r15
mov qword [rsp + 0xe8], rdi
jmp 0x14000e124
add rsi, 1
movsxd rax, dword [rdi + 0x174]
cmp rsi, rax
jge 0x14000f58d
mov edx, dword [rdi + 0x20]
add edx, esi
mov rcx, rdi
mov dword [rsp + 0xa8], edx
mov r8d, 0x17ec
call fcn.14000da30
mov rbx, rax
mov rcx, rdi
mov rdx, rax
mov r8d, esi
call fcn.1400144d0
test rax, rax
mov qword [rsp + 0xc8], rbx
je 0x14000e180
mov r14, rax
mov rax, qword [rdi + 0x1140]
mov rcx, rsi
shl rcx, 5
mov rbp, qword [rax + rcx + 0x18]
jmp 0x14000e186
mov r14, qword [rbx + 0x18]
xor ebp, ebp
mov r10d, dword [rdi + 0x178]
test r10d, r10d
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0xa0], r14
jle 0x14000e7a0
mov ebx, 4
xor esi, esi
mov r9d, dword [rsp + 0xb4]
mov r11, qword [rsp + 0xd8]
mov qword [rsp + 0x68], rbp
jmp 0x14000e24c
mov rax, qword [rsp + 0x50]
mov dword [rax + rbx*4 - 0xc], r15d
mov dword [rax + rbx*4 - 0x10], r13d
mov ecx, dword [rsp + 0x7c]
mov byte [rax + rbx*4 - 8], cl
mov ecx, dword [rsp + 0x70]
mov byte [rax + rbx*4 - 7], cl
mov ecx, dword [rsp + 0x90]
mov byte [rax + rbx*4 - 6], cl
mov ecx, dword [rsp + 0x88]
mov byte [rax + rbx*4 - 5], cl
mov byte [rax + rbx*4 - 4], r14b
mov ecx, dword [rsp + 0x78]
mov byte [rax + rbx*4 - 3], cl
mov ecx, dword [rsp + 0x5c]
mov byte [rax + rbx*4 - 2], cl
mov ecx, dword [rsp + 0x84]
mov byte [rax + rbx*4 - 1], cl
mov dword [rax + rbx*4], 0
add rsi, 1
movsxd r10, dword [rdi + 0x178]
add rbx, 5
cmp rsi, r10
mov r14, qword [rsp + 0xa0]
jge 0x14000e600
test rbp, rbp
je 0x14000e260
mov r8d, dword [rbp + rsi*4]
jmp 0x14000e263
mov r8d, esi
mov eax, dword [r14 + rbx*4 - 0xc]
mov edx, eax
and edx, 0xfffc0000
or edx, 0x20500
cmp byte [rdi + 0x1151], 0
cmovne edx, eax
cmp byte [rdi + 0x11b3], 0
je 0x14000e2f0
cmp byte [rdi + 0x11b4], 0
je 0x14000e340
movzx eax, byte [r14 + rbx*4 - 8]
mov dword [rsp + 0x7c], eax
movzx eax, byte [r14 + rbx*4 - 7]
mov dword [rsp + 0x70], eax
movzx eax, byte [r14 + rbx*4 - 6]
mov dword [rsp + 0x90], eax
movzx eax, byte [r14 + rbx*4 - 5]
mov dword [rsp + 0x88], eax
mov rax, r14
movzx r14d, byte [r14 + rbx*4 - 4]
movzx ecx, byte [rax + rbx*4 - 3]
mov dword [rsp + 0x78], ecx
movzx ecx, byte [rax + rbx*4 - 2]
mov dword [rsp + 0x5c], ecx
movzx ecx, byte [rax + rbx*4 - 1]
mov dword [rsp + 0x84], ecx
jmp 0x14000e387
mov eax, edx
and eax, 0x1ff
add eax, 0xfffffff0
mov ecx, edx
and ecx, 0xfffffe00
or ecx, 0x100
cmp eax, 0xf0
cmovae ecx, edx
mov eax, ecx
shr eax, 9
and eax, 0x1ff
add eax, 0xfffffff0
mov edx, ecx
and edx, 0xfffc01ff
or edx, 0x20400
cmp eax, 0xf0
cmovae edx, ecx
cmp byte [rdi + 0x11b4], 0
jne 0x14000e296
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x90], 0
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x7c], 0
mov dword [rsp + 0x84], 0
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x78], 0
mov rax, r14
xor r14d, r14d
mov r13d, dword [rax + rbx*4 - 0x10]
mov eax, r13d
and eax, 0xffffff00
cmp eax, 0xda00
je 0x14000e3c0
cmp eax, 0xd900
je 0x14000e3e0
cmp eax, 0xd800
jne 0x14000e3f9
mov rax, qword [rdi + 0x10e0]
movzx ecx, r13b
lea rax, [rax + rcx*2]
add rax, 0x20c
jmp 0x14000e3f5
mov rax, qword [rdi + 0x10e0]
movzx ecx, r13b
lea rax, [rax + rcx*2]
add rax, 0xc
jmp 0x14000e3f5
mov rax, qword [rdi + 0x10e0]
movzx ecx, r13b
lea rax, [rax + rcx*2]
add rax, 0x60c
movzx r13d, word [rax]
add r10d, 0xffffffff
movsxd rax, r10d
cmp rsi, rax
jge 0x14000e41f
mov eax, edx
or eax, 0x400000
mov rcx, qword [rsp + 0xa0]
cmp dword [rcx + rbx*4 + 4], 0xdfff
cmove edx, eax
mov eax, dword [rdi + 0xe7c]
and eax, 0xfffffffe
cmp eax, 2
jne 0x14000e4f0
cmp dword [rdi + 0xe80], 0
mov rax, qword [rdi + 0xe88]
je 0x14000e487
cmp dword [rsp + 0xa8], eax
jl 0x14000e4f0
shr rax, 0x20
cmp r8d, eax
jl 0x14000e4f0
mov rbp, qword [rdi + 0xe90]
mov r15d, edx
xor r15d, r9d
xor eax, eax
cmp dword [rsp + 0xa8], ebp
jg 0x14000e5e7
shr rbp, 0x20
cmp r8d, ebp
mov rbp, qword [rsp + 0x68]
jl 0x14000e4e9
jmp 0x14000e4f8
mov rcx, rax
shr rcx, 0x20
xor ebp, ebp
cmp r8d, ecx
setge bpl
xor ecx, ecx
cmp dword [rsp + 0xa8], eax
setg cl
cmovne ebp, ecx
cmp bpl, 1
mov rbp, qword [rsp + 0x68]
jne 0x14000e4f0
mov rax, qword [rdi + 0xe90]
mov rcx, rax
shr rcx, 0x20
xor ebp, ebp
cmp r8d, ecx
setl bpl
xor ecx, ecx
cmp dword [rsp + 0xa8], eax
setl cl
cmovne ebp, ecx
mov r15d, edx
xor r15d, r9d
xor eax, eax
test bpl, bpl
mov rbp, qword [rsp + 0x68]
je 0x14000e4f8
mov eax, 0x100000
jmp 0x14000e4f8
mov r15d, edx
xor r15d, r9d
xor eax, eax
xor r15d, eax
cmp byte [rdi + 0xfd], 0
je 0x14000e534
and edx, 0x200000
je 0x14000e534
cmp byte [rdi + 0x180], 0
je 0x14000e52d
cmp byte [rdi + 0xfc], 0
je 0x14000e52d
mov rax, qword [rdi + 0x10e0]
movzx r13d, word [rax + 0x24c]
and r15d, 0xffdfffff
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
cmp r13d, dword [rax + rbx*4 - 0x10]
jne 0x14000e570
mov eax, dword [rax + rbx*4 - 0xc]
mov ecx, eax
and ecx, 0xf7fffff
cmp r15d, ecx
jne 0x14000e570
and eax, 0x800000
or r15d, eax
jmp 0x14000e5a9
test r15d, 0x400000
jne 0x14000e5a9
mov rcx, qword [rdi + 0x10d0]
mov rax, qword [rcx]
mov edx, r13d
call qword [rax + 0x20]
mov r11, qword [rsp + 0xd8]
mov r9d, dword [rsp + 0xb4]
mov ecx, r15d
or ecx, 0x800000
cmp eax, 2
cmove r15d, ecx
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsp + 0xd0]
jne 0x14000e1d0
mov rcx, qword [rsp + 0xe0]
cmp rcx, rsi
jne 0x14000e1d0
mov rax, qword [rsp + 0xc0]
or r15d, eax
mov dword [rdi + 0x38], eax
mov dword [rdi + 0x30], ecx
mov dword [rdi + 0x34], r11d
jmp 0x14000e1d0
mov rbp, qword [rsp + 0x68]
jmp 0x14000e4f8
test r10d, r10d
mov rsi, qword [rsp + 0x60]
jle 0x14000e7a0
xor ecx, ecx
xor edx, edx
xor r8d, r8d
jmp 0x14000e653
lea rax, [rcx + rcx*4]
mov r11d, dword [rbx + rax*4 + 4]
lea rax, [rcx + rcx*4]
or r11d, 0x3ffff
mov dword [rbx + rax*4 + 4], r11d
mov r10d, dword [rdi + 0x178]
add rcx, 1
movsxd rax, r10d
mov edx, r9d
cmp rcx, rax
jge 0x14000e7a0
mov r9d, r8d
mov rbx, qword [rdi + 0x28]
mov rbx, qword [rbx + rsi*8]
mov rbx, qword [rbx + 0x18]
lea rsi, [rcx*4]
lea rbp, [rsi + rsi*4]
mov eax, dword [rbx + rbp]
mov r11d, dword [rbx + rbp + 4]
test r11d, r11d
mov r8d, ecx
cmovns r8d, r9d
movzx r9d, dl
mov esi, 0
cmovs r9d, esi
mov rsi, qword [rsp + 0x50]
cmp eax, dword [rsi + rbp]
jne 0x14000e6d0
mov edx, r11d
and edx, 0xfffffff
lea rbp, [rcx + rcx*4]
mov eax, r9d
and al, 1
cmp edx, dword [rsi + rbp*4 + 4]
je 0x14000e784
test al, al
mov rsi, qword [rsp + 0x60]
je 0x14000e6df
jmp 0x14000e777
test r9b, 1
mov rsi, qword [rsp + 0x60]
jne 0x14000e770
movsxd rax, r8d
mov r9b, 1
cmp rcx, rax
jle 0x14000e629
mov ebp, ecx
sub ebp, eax
lea rdx, [rax + 1]
test bpl, 1
je 0x14000e717
lea rax, [rax + rax*4]
or dword [rbx + rax*4 + 4], 0x3ffff
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + rsi*8]
mov rbx, qword [rax + 0x18]
mov rax, rdx
cmp rcx, rdx
je 0x14000e620
lea rdx, [rax*4]
lea rdx, [rdx + rdx*4]
nop dword [rax]
or dword [rbx + rdx + 4], 0x3ffff
mov rbp, qword [rdi + 0x28]
mov rbp, qword [rbp + rsi*8]
mov rbp, qword [rbp + 0x18]
or dword [rbp + rdx + 0x18], 0x3ffff
add rax, 2
mov rbp, qword [rdi + 0x28]
mov rbp, qword [rbp + rsi*8]
mov rbx, qword [rbp + 0x18]
add rdx, 0x28
cmp rcx, rax
jne 0x14000e730
jmp 0x14000e620
mov eax, edx
and al, 1
mov r9d, edx
test al, al
jne 0x14000e629
jmp 0x14000e640
mov rsi, qword [rsp + 0x60]
test al, al
jne 0x14000e629
jmp 0x14000e640
mov rax, qword [rsp + 0xc8]
movzx eax, word [rax]
mov rcx, qword [rdi + 0x28]
mov rcx, qword [rcx + rsi*8]
cmp ax, word [rcx]
setne r8b
mov word [rcx], ax
mov r14d, dword [rdi + 0x178]
test r14d, r14d
jle 0x14000f550
mov al, byte [rdi + 0x9b]
mov byte [rsp + 0x49], al
mov al, byte [rdi + 0x9a]
mov byte [rsp + 0x4a], al
mov al, byte [rdi + 0x99]
mov byte [rsp + 0x4b], al
mov al, byte [rdi + 0x98]
mov byte [rsp + 0x4c], al
mov al, byte [rdi + 0x97]
mov byte [rsp + 0x4d], al
mov al, byte [rdi + 0x96]
mov byte [rsp + 0x4e], al
mov al, byte [rdi + 0x94]
mov byte [rsp + 0x78], al
mov al, byte [rdi + 0x95]
mov byte [rsp + 0x4f], al
xor ecx, ecx
mov dword [rsp + 0xb0], 0
xor r13d, r13d
mov dword [rsp + 0x9c], 0
mov dword [rsp + 0xbc], 0
mov dword [rsp + 0x5c], 0
mov eax, r8d
mov dword [rsp + 0x84], eax
mov r9, qword [rsp + 0x50]
jmp 0x14000e87c
mov r8d, dword [rsp + 0x68]
mov ebp, esi
add ebp, 1
mov r14d, dword [rdi + 0x178]
mov ecx, ebp
cmp ebp, r14d
jge 0x14000f4a0
mov qword [rsp + 0x88], rcx
movsxd rax, ecx
lea rcx, [rax*4]
lea r10, [rcx + rcx*4]
mov ebp, dword [r9 + r10 + 4]
mov rcx, qword [rdi + 0x28]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rcx + rdx*8]
mov rcx, qword [rcx + 0x18]
mov qword [rsp + 0x70], rcx
mov ecx, dword [rcx + r10 + 4]
mov dword [rsp + 0xb8], ecx
xor ecx, ebp
test ecx, 0x400000
mov edx, dword [rsp + 0x84]
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
mov dword [rsp + 0x84], edx
mov dword [rsp + 0x7c], ebp
mov ecx, ebp
xor ecx, dword [rsp + 0x5c]
test dword [rdi + 0x10a0], ecx
setne dl
mov cl, byte [r9 + r10 + 8]
mov r11b, byte [rsp + 0x78]
and r11b, 1
mov byte [rsp + 0x68], cl
cmp cl, r11b
jne 0x14000e970
lea rbp, [rax + rax*4]
mov cl, byte [rsp + 0x4f]
cmp byte [r9 + rbp*4 + 9], cl
jne 0x14000e970
mov cl, byte [rsp + 0x4e]
cmp byte [r9 + rbp*4 + 0xa], cl
jne 0x14000e970
mov cl, byte [rsp + 0x4d]
cmp byte [r9 + rbp*4 + 0xb], cl
jne 0x14000e970
mov bl, byte [rsp + 0x4c]
and bl, 1
mov rcx, qword [rsp + 0x50]
cmp byte [rcx + rbp*4 + 0xc], bl
mov r9, qword [rsp + 0x50]
jne 0x14000e970
mov cl, byte [rsp + 0x4b]
cmp byte [r9 + rbp*4 + 0xd], cl
jne 0x14000e970
mov cl, byte [rsp + 0x4a]
cmp byte [r9 + rbp*4 + 0xe], cl
jne 0x14000e970
mov cl, byte [rsp + 0x49]
cmp byte [r9 + rbp*4 + 0xf], cl
je 0x14000e972
nop word cs:[rax + rax]
nop dword [rax]
mov dl, 1
mov ebx, dword [r9 + r10]
lea ebp, [rbx - 0x23ba]
cmp ebp, 4
jb 0x14000e9a5
mov rcx, qword [rsp + 0x88]
test ecx, ecx
jle 0x14000e9a7
lea ebp, [rcx - 1]
lea rbp, [rbp + rbp*4]
mov ebp, dword [r9 + rbp*4]
mov ecx, 0xffffdc46
add ebp, ecx
cmp ebp, 3
ja 0x14000e9a7
mov dl, 1
mov esi, ebx
and esi, 0xfffffc00
mov ebp, ebx
and ebp, 0xfffffe00
mov rcx, rbx
mov qword [rsp + 0x90], rbx
and ecx, 0xffffff00
cmp ebp, 0xdc00
mov ebp, 0
cmove ebp, ecx
cmp esi, 0xd800
cmove ebp, ecx
cmp ebp, dword [rsp + 0xbc]
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
mov rbx, qword [rsp + 0xa0]
lea rcx, [rbx + r10]
lea rsi, [rax + rax*4]
cmp dword [rbx + rsi*4 + 0x10], 0
je 0x14000ead0
mov dl, 1
mov rax, qword [rsp + 0x90]
add eax, 0xfffe0e1a
cmp eax, 0x19
ja 0x14000ea90
mov r9d, r8d
mov r8, rcx
mov rax, qword [rsp + 0x88]
lea ebx, [rax + 1]
mov dl, 1
cmp ebx, r14d
jge 0x14000eaf0
mov eax, dword [r8 + 0x14]
mov r14d, 0xfffe0e1a
add eax, r14d
mov r15, qword [rsp + 0x70]
mov ecx, dword [r15 + rsi*4]
add ecx, r14d
cmp ecx, 0x19
ja 0x14000eb08
movsxd rcx, ebx
lea rcx, [rcx + rcx*4]
mov ecx, dword [r15 + rcx*4]
mov ebx, 0xfffe0e1a
add ecx, ebx
cmp ecx, 0x1a
setb cl
cmp dword [rsp + 0xb8], 0
sets bl
and bl, cl
jmp 0x14000eb0a
cmp dword [rsp + 0x88], 0
mov r14, qword [rsp + 0xa0]
jle 0x14000eaba
mov eax, dword [rcx - 0x14]
mov ebx, 0xfffe0e1a
add eax, ebx
cmp eax, 0x1a
movzx edx, dl
mov eax, 1
cmovb edx, eax
mov dword [rsp + 0x80], 0
jmp 0x14000eb27
cmp dword [rsp + 0x88], 0
jle 0x14000ea0e
cmp dword [rcx - 4], 0
jne 0x14000ea0c
jmp 0x14000ea0e
mov dword [rsp + 0x80], 0
mov rcx, r8
mov r14, qword [rsp + 0xa0]
jmp 0x14000eb24
xor ebx, ebx
mov r14, qword [rsp + 0xa0]
cmp eax, 0x1a
setb al
xor al, bl
mov dword [rsp + 0x80], eax
mov rcx, r8
mov r8d, r9d
mov rbx, qword [rsp + 0x70]
cmp dword [rcx], 0xdffe
jne 0x14000eb40
mov dl, 1
jmp 0x14000eb60
cmp dword [rsp + 0x88], 2
jl 0x14000eb60
cmp dword [rcx - 0x14], 0xdfff
jne 0x14000eb60
cmp dword [rcx - 0x28], 0xdffe
je 0x14000eb34
nop dword [rax]
mov qword [rsp + 0x70], rcx
mov rax, qword [rdi + 0x10e0]
mov al, byte [rax]
mov ecx, dword [rsp + 0x84]
mov r15d, ecx
and r15b, 1
mov ecx, eax
or cl, r15b
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xa8], r10
jne 0x14000ec30
mov rcx, qword [rsp + 0x90]
cmp dword [rbx + rsi*4], ecx
jne 0x14000ec10
mov ecx, dword [rsp + 0xb8]
and ecx, 0xfffffff
cmp ecx, dword [rsp + 0x7c]
jne 0x14000ec10
cmp byte [rbx + rsi*4 + 8], r11b
jne 0x14000ec10
mov cl, byte [rsp + 0x4f]
cmp byte [rbx + rsi*4 + 9], cl
jne 0x14000ec10
mov cl, byte [rsp + 0x4e]
cmp byte [rbx + rsi*4 + 0xa], cl
jne 0x14000ec10
mov cl, byte [rsp + 0x4d]
cmp byte [rbx + rsi*4 + 0xb], cl
jne 0x14000ec10
mov cl, byte [rsp + 0x4c]
and cl, 1
cmp byte [rbx + rsi*4 + 0xc], cl
jne 0x14000ec10
mov cl, byte [rsp + 0x4b]
cmp byte [rbx + rsi*4 + 0xd], cl
jne 0x14000ec10
mov cl, byte [rsp + 0x4a]
cmp byte [rbx + rsi*4 + 0xe], cl
jne 0x14000ec10
mov cl, byte [rsp + 0x49]
cmp byte [rbx + rsi*4 + 0xf], cl
je 0x14000ec38
nop word [rax + rax]
test r8b, 1
jne 0x14000ec30
cmp r13d, 1
jne 0x14000ec30
mov r11b, 1
test r8b, 1
mov r9b, byte [rsp + 0x68]
je 0x14000ec47
jmp 0x14000ec61
test dl, dl
je 0x14000edb8
test r8b, 1
mov r9b, byte [rsp + 0x68]
jne 0x14000f320
xor r11d, r11d
test byte [rsp + 0xb0], 1
je 0x14000ed32
test r13d, r13d
jle 0x14000ed32
mov rax, qword [rsp + 0x50]
lea r14, [rax + r10]
add r14, 8
movzx eax, byte [rsp + 0x4d]
shl rax, 0x18
movzx ecx, byte [rsp + 0x4e]
shl rcx, 0x10
or rcx, rax
movzx eax, byte [rsp + 0x4f]
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x78]
or rcx, rax
movzx eax, byte [rsp + 0x49]
shl eax, 0x18
movzx edx, byte [rsp + 0x4a]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsp + 0x4b]
shl eax, 8
or eax, edx
movzx edx, byte [rsp + 0x4c]
or edx, eax
shl rdx, 0x20
or rdx, rcx
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], rdx
mov rdi, qword [rsp + 0xe8]
mov rcx, rdi
mov rdx, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0x9c]
mov rsi, qword [rsp + 0x60]
mov r9d, esi
mov ebx, ebp
mov ebp, r11d
call fcn.14001cab0
mov r11d, ebp
mov ebp, ebx
mov r9b, byte [r14]
mov r14, qword [rsp + 0xa0]
mov rax, qword [rdi + 0x10e0]
mov al, byte [rax]
mov rcx, qword [rdi + 0x28]
mov rcx, qword [rcx + rsi*8]
mov rsi, qword [rsp + 0xf0]
mov rbx, qword [rcx + 0x18]
mov rcx, qword [rsp + 0x50]
mov dl, byte [rcx + rsi*4 + 9]
mov byte [rsp + 0x4f], dl
mov dl, byte [rcx + rsi*4 + 0xa]
mov byte [rsp + 0x4e], dl
mov dl, byte [rcx + rsi*4 + 0xb]
mov byte [rsp + 0x4d], dl
mov dl, byte [rcx + rsi*4 + 0xc]
mov byte [rsp + 0x4c], dl
mov dl, byte [rcx + rsi*4 + 0xd]
mov byte [rsp + 0x4b], dl
mov dl, byte [rcx + rsi*4 + 0xe]
mov byte [rsp + 0x4a], dl
mov dl, byte [rcx + rsi*4 + 0xf]
mov byte [rsp + 0x49], dl
test al, al
movzx eax, byte [rsp + 0xb0]
movzx edx, r11b
cmove edx, eax
mov dword [rsp + 0xb0], edx
or r15b, byte [rsp + 0x80]
xor r13d, r13d
mov r8d, r15d
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x5c], eax
mov rax, qword [rsp + 0x88]
mov dword [rsp + 0x9c], eax
mov byte [rsp + 0x78], r9b
mov dword [rsp + 0xbc], ebp
mov r15, qword [rsp + 0x90]
mov rdi, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xa8]
mov al, byte [rbx + rdx + 8]
cmp al, byte [r14 + rdx + 8]
jne 0x14000eec0
mov al, byte [rbx + rdx + 9]
cmp al, byte [r14 + rdx + 9]
jne 0x14000eec0
mov al, 1
mov dword [rsp + 0x68], eax
mov al, byte [rbx + rdx + 0xa]
cmp al, byte [r14 + rdx + 0xa]
jne 0x14000eec6
mov al, byte [rbx + rdx + 0xb]
cmp al, byte [r14 + rdx + 0xb]
jne 0x14000eec6
mov al, byte [rbx + rdx + 0xc]
cmp al, byte [r14 + rdx + 0xc]
jne 0x14000eec6
mov al, byte [rbx + rdx + 0xd]
cmp al, byte [r14 + rdx + 0xd]
jne 0x14000eec6
mov al, byte [rbx + rdx + 0xe]
cmp al, byte [r14 + rdx + 0xe]
jne 0x14000eec6
mov al, byte [rbx + rdx + 0xf]
cmp al, byte [r14 + rdx + 0xf]
jne 0x14000eec6
lea rax, [rbx + rdx]
cmp dword [rax], r15d
jne 0x14000eec6
mov ecx, dword [rbx + rsi*4 + 4]
xor ecx, dword [rsp + 0x7c]
test ecx, 0xfffffff
jne 0x14000eec6
mov rcx, qword [rsp + 0x70]
nop dword [rax]
movsxd rbp, dword [rax + 0x10]
movsxd rdx, dword [rcx + 0x10]
test rdx, rdx
sete bl
test rbp, rbp
je 0x14000f3f5
test edx, edx
je 0x14000eec6
lea rbp, [rbp + rbp*4]
mov ebx, dword [rax + rbp*4]
lea rax, [rax + rbp*4]
lea rdx, [rdx + rdx*4]
lea rbp, [rcx + rdx*4]
cmp ebx, dword [rcx + rdx*4]
mov r15, qword [rsp + 0x90]
mov rcx, rbp
je 0x14000ee70
jmp 0x14000eec6
mov al, 1
mov dword [rsp + 0x68], eax
xor ebx, ebx
movsxd rbp, r13d
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r12
lea rdx, [rsp + 0xf8]
mov r9, rbp
call fcn.14003f730
mov r12, rax
lea eax, [r15 - 0x10001]
cmp eax, 0xffffe
mov dword [rsp + 0x80], ebx
ja 0x14000ef40
lea eax, [r15 + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
lea r13d, [rbp + 1]
mov ecx, r15d
and ecx, 0x3ff
or ecx, 0xdc00
mov word [r12 + rbp*2 + 2], cx
jmp 0x14000ef43
mov eax, r15d
mov r9, qword [rsp + 0x50]
mov rbx, r14
lea rcx, [r14 + rsi*4]
add rcx, 0x10
mov word [r12 + rbp*2], ax
add r13d, 1
mov eax, dword [rcx]
test eax, eax
je 0x14000f095
mov rsi, qword [rsp + 0x70]
jmp 0x14000ef8c
mov eax, r14d
mov word [r12 + rbp*2], ax
mov eax, dword [rsi + rbx*4 + 0x10]
lea rsi, [rsi + rbx*4]
add r13d, 1
test eax, eax
je 0x14000f080
cdqe
lea rbx, [rax + rax*4]
mov r14d, dword [rsi + rbx*4]
mov eax, r14d
and eax, 0xffffff00
cmp eax, 0xda00
je 0x14000efd0
cmp eax, 0xd900
je 0x14000eff0
cmp eax, 0xd800
jne 0x14000f009
mov rax, qword [rdi + 0x10e0]
movzx ecx, r14b
lea rax, [rax + rcx*2]
add rax, 0x20c
jmp 0x14000f005
mov rax, qword [rdi + 0x10e0]
movzx ecx, r14b
lea rax, [rax + rcx*2]
add rax, 0xc
jmp 0x14000f005
mov rax, qword [rdi + 0x10e0]
movzx ecx, r14b
lea rax, [rax + rcx*2]
add rax, 0x60c
movzx r14d, word [rax]
movsxd rbp, r13d
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r12
lea rdx, [rsp + 0xf8]
mov r9, rbp
call fcn.14003f730
mov r12, rax
lea eax, [r14 - 0x10001]
cmp eax, 0xffffe
ja 0x14000ef70
lea eax, [r14 + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
lea r13d, [rbp + 1]
and r14d, 0x3ff
or r14d, 0xdc00
mov word [r12 + rbp*2 + 2], r14w
jmp 0x14000ef73
or dword [rsp + 0x5c], 0x80000000
mov r9, qword [rsp + 0x50]
mov r15, qword [rsp + 0x90]
cmp byte [rsp + 0x80], 0
jne 0x14000f16c
mov rax, qword [rdi + 0x28]
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rax + rsi*8]
mov rbp, qword [rsp + 0x88]
mov edx, ebp
mov r8, qword [rsp + 0x70]
mov r14, r9
call fcn.14001bea0
mov r9, r14
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + rsi*8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rsp + 0xa8]
mov dword [rax + rdx], r15d
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + rsi*8]
mov rax, qword [rax + 0x18]
mov ecx, dword [rsp + 0x7c]
mov dword [rax + rdx + 4], ecx
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + rsi*8]
mov rsi, qword [rsp + 0xf0]
mov rax, qword [rax + 0x18]
mov cl, byte [rsp + 0x78]
mov byte [rax + rdx + 8], cl
mov cl, byte [rsp + 0x4f]
mov byte [rax + rdx + 9], cl
mov cl, byte [rsp + 0x4e]
mov byte [rax + rdx + 0xa], cl
mov cl, byte [rsp + 0x4d]
mov byte [rax + rdx + 0xb], cl
mov cl, byte [rsp + 0x4c]
mov byte [rax + rdx + 0xc], cl
mov cl, byte [rsp + 0x4b]
mov byte [rax + rdx + 0xd], cl
mov cl, byte [rsp + 0x4a]
mov byte [rax + rdx + 0xe], cl
mov cl, byte [rsp + 0x49]
mov byte [rax + rdx + 0xf], cl
cmp dword [rsp + 0x9c], ebp
jne 0x14000f16c
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
or dword [rax + rsi*4 + 4], 0x80000000
test dword [rsp + 0x7c], 0x400000
jne 0x14000f190
mov rsi, qword [rsp + 0x88]
jmp 0x14000f22f
mov rsi, qword [rsp + 0x88]
add esi, 1
cmp esi, dword [rdi + 0x178]
jge 0x14000f22f
mov r15, r9
add qword [rsp + 0x70], 0x14
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsp + 0xd0]
jne 0x14000f1e1
cmp esi, dword [rsp + 0xe0]
jne 0x14000f1e1
lea rcx, str.__i__our_curs_y__j__our_curs_x_
lea rdx, str._home_simon_mem_.build_workdirs_bob_qvbm9mtj_putty_terminal_terminal.c
mov r8d, 0x1927
call fcn.1400ca0ec
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x60]
mov rbp, qword [rax + rcx*8]
movsxd rax, esi
lea rcx, [rax + rax*4]
shl rcx, 2
add rcx, qword [rbp + 0x18]
mov rbx, qword [rsp + 0x70]
mov rdx, rbx
call fcn.14001cc70
mov ecx, dword [rsp + 0x68]
movzx ecx, cl
test al, al
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0x68], ecx
mov rcx, rbp
mov edx, esi
mov r8, rbx
call fcn.14001bea0
mov r9, r15
mov rax, qword [rsp + 0x70]
mov eax, dword [rax]
mov ecx, 0xfffe0e1a
add eax, ecx
cmp eax, 0x19
ja 0x14000e860
lea ebp, [rsi + 1]
cmp ebp, dword [rdi + 0x178]
jge 0x14000e860
mov rax, qword [rsp + 0x70]
mov ebx, dword [rax + 0x14]
lea eax, [rbx - 0x1f1e6]
cmp eax, 0x19
ja 0x14000f331
mov r14, rsi
or dword [rsp + 0x5c], 0x400000
movsxd r15, r13d
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r12
lea rdx, [rsp + 0xf8]
mov r9, r15
call fcn.14003f730
mov r12, rax
lea eax, [rbx + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
mov ecx, ebx
and ecx, 0x3ff
or ecx, 0xdc00
mov word [r12 + r15*2], ax
mov word [r12 + r15*2 + 2], cx
mov rcx, qword [rsp + 0x60]
cmp rcx, qword [rsp + 0xd0]
jne 0x14000f342
cmp ebp, dword [rsp + 0xe0]
jne 0x14000f342
mov rsi, qword [rsp + 0xc0]
or dword [rsp + 0x5c], esi
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0xd0]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
movsxd rdx, r14d
lea rcx, [rdx + rdx*4]
or dword [rax + rcx*4 + 4], esi
mov rcx, qword [rsp + 0x60]
jmp 0x14000f345
mov r11b, 1
test r13d, r13d
jg 0x14000ec61
jmp 0x14000ed32
mov r8d, dword [rsp + 0x68]
mov ebp, esi
mov r9, qword [rsp + 0x50]
jmp 0x14000e867
movsxd rdx, r14d
mov rsi, qword [rsp + 0x70]
lea r8, [rsi + 0x14]
mov rax, qword [rdi + 0x28]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x18]
lea r11, [rdx + rdx*4]
movsxd rdx, ebp
lea r15, [rdx + rdx*4]
mov dl, byte [rax + r15*4 + 8]
mov r14b, 1
cmp dl, byte [rsi + 0x1c]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 9]
cmp dl, byte [rsi + 0x1d]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 0xa]
cmp dl, byte [rsi + 0x1e]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 0xb]
cmp dl, byte [rsi + 0x1f]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 0xc]
cmp dl, byte [rsi + 0x20]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 0xd]
cmp dl, byte [rsi + 0x21]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 0xe]
cmp dl, byte [rsi + 0x22]
jne 0x14000f43e
mov dl, byte [rax + r15*4 + 0xf]
cmp dl, byte [rsi + 0x23]
jne 0x14000f43e
lea r9, [rax + r15*4]
cmp dword [r9], ebx
jne 0x14000f43e
mov edx, dword [rax + r11*4 + 4]
xor edx, dword [rax + r15*4 + 4]
test edx, 0xfffffff
mov rsi, qword [rsp + 0x50]
je 0x14000f40c
mov rbx, r11
jmp 0x14000f446
test edx, edx
movzx ecx, r8b
mov eax, 1
cmovne ecx, eax
mov dword [rsp + 0x68], ecx
jmp 0x14000eec8
mov rax, r8
nop
movsxd rdx, dword [r9 + 0x10]
movsxd rsi, dword [rax + 0x10]
test rdx, rdx
je 0x14000f47d
test esi, esi
je 0x14000f43e
lea rdx, [rdx + rdx*4]
mov r10d, dword [r9 + rdx*4]
lea r9, [r9 + rdx*4]
lea rdx, [rsi + rsi*4]
lea rbx, [rax + rdx*4]
cmp r10d, dword [rax + rdx*4]
mov rax, rbx
je 0x14000f410
mov rbx, r11
mov rsi, qword [rsp + 0x50]
add r13d, 2
mov edx, ebp
call fcn.14001bea0
mov rax, qword [rdi + 0x28]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
mov ecx, dword [rax + rbx*4 + 4]
mov edx, 0x7fffffff
and ecx, edx
mov dword [rax + r15*4 + 4], ecx
mov r8d, r14d
mov r9, rsi
jmp 0x14000e867
mov rbx, r11
test esi, esi
movzx r14d, byte [rsp + 0x68]
mov eax, 1
cmovne r14d, eax
jmp 0x14000f441
test r8b, 1
je 0x14000f555
test r13d, r13d
jle 0x14000f555
movzx eax, byte [rsp + 0x4d]
shl rax, 0x18
movzx ecx, byte [rsp + 0x4e]
shl rcx, 0x10
or rcx, rax
movzx eax, byte [rsp + 0x4f]
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x78]
or rcx, rax
movzx eax, byte [rsp + 0x49]
shl eax, 0x18
movzx edx, byte [rsp + 0x4a]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsp + 0x4b]
shl eax, 8
or eax, edx
movzx edx, byte [rsp + 0x4c]
or edx, eax
shl rdx, 0x20
or rdx, rcx
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], rdx
mov rcx, rdi
mov rdx, qword [rsp + 0xc8]
mov r8d, dword [rsp + 0x9c]
mov rsi, qword [rsp + 0x60]
mov rbx, r9
mov r9d, esi
call fcn.14001cab0
mov r9, rbx
jmp 0x14000f55a
mov r9, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0xc8]
cmp byte [rbp + 0xc], 0
je 0x14000e110
mov rcx, qword [rbp + 0x18]
mov rbx, r9
call fcn.14003f720
mov rcx, rbp
call fcn.14003f720
mov r9, rbx
jmp 0x14000e110
mov r9, qword [rsp + 0x50]
mov rcx, r9
call fcn.14003f720
mov rcx, r12
call fcn.14003f720
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1400b9230
nop
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret