Function at 0x14000d9f0
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 r13, rcx
mov rax, qword [0x140102058]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov qword [rsp + 0xf8], 0x400
xor eax, eax
mov qword [rsp + 0xe0], rax
mov ecx, 0x400
mov edx, 2
xor r8d, r8d
call fcn.1400416b0
mov r12, rax
movsxd rcx, dword [r13 + 0x178]
mov edx, 0x14
xor r8d, r8d
call fcn.1400416b0
mov cl, byte [r13 + 0xf2]
cmp cl, byte [r13 + 0x181]
setne r14b
cmp byte [r13 + 0xf8], 0
je 0x14000dabe
cmp byte [r13 + 0x180], 0
je 0x14000da9e
mov ecx, 0x40000000
cmp byte [r13 + 0xfb], 0
jne 0x14000daa3
xor ecx, ecx
cmp byte [r13 + 0x116e], 0
sete cl
shl ecx, 0x1e
jmp 0x14000daa3
mov ecx, 0x20000000
mov edx, ecx
or edx, 0x10000000
cmp byte [r13 + 0xe2], 0
cmove edx, ecx
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0x80], rax
movsxd rdx, dword [r13 + 0xc8]
movsxd rax, dword [r13 + 0x20]
mov rbx, rdx
sub rbx, rax
mov rcx, r13
mov r8d, 0x172f
xor r9d, r9d
call fcn.140010610
mov rbp, rax
mov esi, dword [r13 + 0xcc]
mov rcx, r13
mov rdx, rax
mov r8d, ebx
call fcn.140014490
test rax, rax
je 0x14000db20
movsxd rcx, esi
mov rdx, qword [r13 + 0x1130]
mov rdi, rbx
shl rdi, 5
mov rdx, qword [rdx + rdi + 0x10]
mov esi, dword [rdx + rcx*4]
jmp 0x14000db24
mov rax, qword [rbp + 0x18]
mov r8, rbx
test esi, esi
jle 0x14000db3f
mov ecx, esi
lea rcx, [rcx + rcx*4]
xor edx, edx
cmp dword [rax + rcx*4], 0xdfff
sete dl
sub esi, edx
mov eax, esi
mov qword [rsp + 0xc0], rax
cmp byte [rbp + 0xc], 0
mov qword [rsp + 0xd8], r8
je 0x14000db70
mov rcx, qword [rbp + 0x18]
call fcn.140041750
mov rcx, rbp
call fcn.140041750
mov r8, qword [rsp + 0xd8]
mov ecx, dword [r13 + 0x34]
test ecx, ecx
mov rsi, qword [rsp + 0x80]
mov ebx, 0
js 0x14000dc03
mov eax, dword [r13 + 0x30]
mov rdx, qword [rsp + 0xe0]
cmp dword [r13 + 0x38], edx
jne 0x14000dba5
cmp ecx, r8d
jne 0x14000dba5
cmp eax, dword [rsp + 0xc0]
je 0x14000dc03
movsxd rdx, eax
mov rbp, qword [r13 + 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 0x14000dbd5
cmp dword [rbp], 0xdfff
jne 0x14000dbd5
or dword [rbp - 0x10], 0x3ffff
mov eax, dword [r13 + 0x30]
mov edi, dword [r13 + 0x178]
add edi, 0xffffffff
cmp eax, edi
jge 0x14000dbf3
cmp dword [rbp + 0x14], 0xdfff
jne 0x14000dbf3
or dword [rbp + 0x18], 0x3ffff
or dword [rcx + rdx*4 + 4], 0x3ffff
mov dword [r13 + 0x38], 0
mov qword [r13 + 0x30], 0xffffffffffffffff
cmp dword [r13 + 0x174], 0
jle 0x14000ee47
mov bl, r14b
shl ebx, 0x14
mov dword [rsp + 0xc8], ebx
mov eax, r8d
mov qword [rsp + 0xf0], rax
xor r14d, r14d
mov qword [rsp + 0x58], r13
jmp 0x14000dc7b
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xd0]
cmp byte [rdi + 0xc], 0
je 0x14000dc67
mov rcx, qword [rdi + 0x18]
call fcn.140041750
mov rcx, rdi
call fcn.140041750
add r14, 1
movsxd rax, dword [r13 + 0x174]
cmp r14, rax
jge 0x14000ee47
mov edx, dword [r13 + 0x20]
add edx, r14d
mov rcx, r13
mov dword [rsp + 0x54], edx
mov r8d, 0x1765
xor r9d, r9d
call fcn.140010610
mov rsi, rax
mov rcx, r13
mov rdx, rax
mov r8d, r14d
call fcn.140014490
test rax, rax
mov qword [rsp + 0xd0], rsi
je 0x14000dce0
mov qword [rsp + 0x98], rax
mov rax, qword [r13 + 0x1130]
mov rcx, r14
shl rcx, 5
mov rax, qword [rax + rcx + 0x18]
jmp 0x14000dcee
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x98], rax
xor eax, eax
mov r10d, dword [r13 + 0x178]
test r10d, r10d
mov qword [rsp + 0x88], r14
jle 0x14000e360
mov ebx, 4
xor ebp, ebp
mov r9d, dword [rsp + 0xc8]
mov r11, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0x98]
mov qword [rsp + 0x60], rax
jmp 0x14000ddb4
mov rax, qword [rsp + 0x58]
mov dword [rsi + rbx*4 - 0xc], r15d
mov dword [rsi + rbx*4 - 0x10], r13d
mov ecx, dword [rsp + 0x70]
mov byte [rsi + rbx*4 - 8], cl
mov ecx, dword [rsp + 0xa8]
mov byte [rsi + rbx*4 - 7], cl
mov ecx, dword [rsp + 0xb0]
mov byte [rsi + rbx*4 - 6], cl
mov byte [rsi + rbx*4 - 5], r14b
mov ecx, dword [rsp + 0x68]
mov byte [rsi + rbx*4 - 4], cl
mov ecx, dword [rsp + 0x90]
mov byte [rsi + rbx*4 - 3], cl
mov ecx, dword [rsp + 0x7c]
mov byte [rsi + rbx*4 - 2], cl
mov ecx, dword [rsp + 0x6c]
mov byte [rsi + rbx*4 - 1], cl
mov dword [rsi + rbx*4], 0
add rbp, 1
movsxd r10, dword [rax + 0x178]
add rbx, 5
cmp rbp, r10
mov r13, rax
mov r14, qword [rsp + 0x88]
mov rax, qword [rsp + 0x60]
jge 0x14000e1d0
test rax, rax
je 0x14000ddc0
mov r8d, dword [rax + rbp*4]
jmp 0x14000ddc3
mov r8d, ebp
mov ecx, dword [rdi + rbx*4 - 0xc]
mov esi, ecx
and esi, 0xfffc0000
or esi, 0x20500
cmp byte [r13 + 0x1141], 0
cmovne esi, ecx
cmp byte [r13 + 0x11a7], 0
je 0x14000de50
cmp byte [r13 + 0x11a8], 0
je 0x14000dea5
movzx eax, byte [rdi + rbx*4 - 8]
mov dword [rsp + 0x70], eax
movzx eax, byte [rdi + rbx*4 - 7]
mov dword [rsp + 0xa8], eax
movzx r15d, byte [rdi + rbx*4 - 6]
movzx r14d, byte [rdi + rbx*4 - 5]
movzx eax, byte [rdi + rbx*4 - 4]
mov dword [rsp + 0x68], eax
movzx eax, byte [rdi + rbx*4 - 3]
mov dword [rsp + 0x90], eax
movzx eax, byte [rdi + rbx*4 - 2]
mov dword [rsp + 0x7c], eax
movzx eax, byte [rdi + rbx*4 - 1]
mov dword [rsp + 0x6c], eax
jmp 0x14000dee1
mov ecx, esi
and ecx, 0x1ff
add ecx, 0xfffffff0
mov edx, esi
and edx, 0xfffffe00
or edx, 0x100
cmp ecx, 0xf0
cmovae edx, esi
mov ecx, edx
shr ecx, 9
and ecx, 0x1ff
add ecx, 0xfffffff0
mov esi, edx
and esi, 0xfffc01ff
or esi, 0x20400
cmp ecx, 0xf0
cmovae esi, edx
cmp byte [r13 + 0x11a8], 0
jne 0x14000ddf8
xor r14d, r14d
xor r15d, r15d
mov dword [rsp + 0xa8], 0
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x6c], 0
mov dword [rsp + 0x7c], 0
mov dword [rsp + 0x90], 0
mov dword [rsp + 0x68], 0
mov r13d, dword [rdi + rbx*4 - 0x10]
mov edi, r13d
and edi, 0xffffff00
cmp edi, 0xda00
je 0x14000df50
cmp edi, 0xd900
je 0x14000df30
cmp edi, 0xd800
jne 0x14000df6c
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10d0]
movzx edx, r13b
lea rdi, [rcx + rdx*2]
add rdi, 0x214
jmp 0x14000df68
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10d0]
movzx edx, r13b
lea rdi, [rcx + rdx*2]
add rdi, 0x614
jmp 0x14000df68
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10d0]
movzx edx, r13b
lea rdi, [rcx + rdx*2]
add rdi, 0x14
movzx r13d, word [rdi]
add r10d, 0xffffffff
movsxd rax, r10d
cmp rbp, rax
jge 0x14000dfa0
mov eax, esi
or eax, 0x400000
mov rdi, qword [rsp + 0x98]
cmp dword [rdi + rbx*4 + 4], 0xdfff
cmove esi, eax
jmp 0x14000dfa8
mov rdi, qword [rsp + 0x98]
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0xe74]
and eax, 0xfffffffe
cmp eax, 2
mov dword [rsp + 0xb0], r15d
jne 0x14000e080
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0xe78], 0
mov rax, qword [rax + 0xe80]
je 0x14000e024
cmp dword [rsp + 0x54], eax
jl 0x14000e080
shr rax, 0x20
cmp r8d, eax
jl 0x14000e080
mov rax, qword [rsp + 0x58]
mov rdi, qword [rax + 0xe88]
mov r15d, esi
xor r15d, r9d
xor eax, eax
cmp dword [rsp + 0x54], edi
jg 0x14000e1b4
shr rdi, 0x20
cmp r8d, edi
mov rdi, qword [rsp + 0x98]
jl 0x14000e077
jmp 0x14000e088
mov rcx, rax
shr rcx, 0x20
xor edx, edx
cmp r8d, ecx
setge dl
xor ecx, ecx
cmp dword [rsp + 0x54], eax
setg cl
cmovne edx, ecx
cmp dl, 1
jne 0x14000e080
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0xe88]
mov rcx, rax
shr rcx, 0x20
xor edx, edx
cmp r8d, ecx
setl dl
xor ecx, ecx
cmp dword [rsp + 0x54], eax
setl cl
cmovne edx, ecx
mov r15d, esi
xor r15d, r9d
xor eax, eax
test dl, dl
je 0x14000e088
mov eax, 0x100000
jmp 0x14000e088
mov r15d, esi
xor r15d, r9d
xor eax, eax
xor r15d, eax
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0xfd], 0
je 0x14000e0e0
and esi, 0x200000
je 0x14000e0e0
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x180], 0
mov rsi, qword [rsp + 0x80]
je 0x14000e0d4
cmp byte [rax + 0xfc], 0
je 0x14000e0d4
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10d0]
movzx r13d, word [rax + 0x254]
and r15d, 0xffdfffff
jmp 0x14000e0e8
mov rsi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x28]
mov rcx, qword [rsp + 0x88]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
cmp r13d, dword [rax + rbx*4 - 0x10]
jne 0x14000e130
mov eax, dword [rax + rbx*4 - 0xc]
mov ecx, eax
and ecx, 0xf7fffff
cmp r15d, ecx
jne 0x14000e130
and eax, 0x800000
or r15d, eax
jmp 0x14000e16e
test r15d, 0x400000
jne 0x14000e16e
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10c0]
mov rax, qword [rcx]
mov edx, r13d
call qword [rax + 0x20]
mov r11, qword [rsp + 0xd8]
mov r9d, dword [rsp + 0xc8]
mov ecx, r15d
or ecx, 0x800000
cmp eax, 2
cmove r15d, ecx
mov rax, qword [rsp + 0x88]
cmp rax, qword [rsp + 0xf0]
jne 0x14000dd30
mov rdx, qword [rsp + 0xc0]
cmp rdx, rbp
jne 0x14000dd30
mov rcx, qword [rsp + 0xe0]
or r15d, ecx
mov rax, qword [rsp + 0x58]
mov dword [rax + 0x38], ecx
mov dword [rax + 0x30], edx
mov dword [rax + 0x34], r11d
jmp 0x14000dd35
mov rdi, qword [rsp + 0x98]
jmp 0x14000e088
test r10d, r10d
jle 0x14000e360
xor ecx, ecx
xor edi, edi
xor r8d, r8d
jmp 0x14000e223
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 [r13 + 0x178]
add rcx, 1
movsxd rax, r10d
mov edi, r9d
cmp rcx, rax
jge 0x14000e360
mov edx, r8d
mov rbp, qword [r13 + 0x28]
mov rbp, qword [rbp + r14*8]
mov rbx, qword [rbp + 0x18]
lea rbp, [rcx*4]
lea rbp, [rbp + rbp*4]
mov eax, dword [rbx + rbp]
mov r11d, dword [rbx + rbp + 4]
test r11d, r11d
mov r8d, ecx
cmovns r8d, edx
movzx r9d, dil
mov edx, 0
cmovs r9d, edx
mov rsi, qword [rsp + 0x80]
cmp eax, dword [rsi + rbp]
jne 0x14000e2a0
mov eax, r11d
and eax, 0xfffffff
lea rbp, [rcx + rcx*4]
mov edx, r9d
and dl, 1
cmp eax, dword [rsi + rbp*4 + 4]
je 0x14000e288
test dl, dl
je 0x14000e2aa
test dl, dl
jne 0x14000e1f9
jmp 0x14000e210
test r9b, 1
jne 0x14000e340
movsxd rax, r8d
mov r9b, 1
cmp rcx, rax
jle 0x14000e1f9
mov edx, ecx
sub edx, eax
lea rdi, [rax + 1]
test dl, 1
je 0x14000e2e1
lea rax, [rax + rax*4]
or dword [rbx + rax*4 + 4], 0x3ffff
mov rax, qword [r13 + 0x28]
mov rax, qword [rax + r14*8]
mov rbx, qword [rax + 0x18]
mov rax, rdi
cmp rcx, rdi
je 0x14000e1f0
lea rdx, [rax*4]
lea rdi, [rdx + rdx*4]
nop word cs:[rax + rax]
or dword [rbx + rdi + 4], 0x3ffff
mov rdx, qword [r13 + 0x28]
mov rdx, qword [rdx + r14*8]
mov rdx, qword [rdx + 0x18]
or dword [rdx + rdi + 0x18], 0x3ffff
add rax, 2
mov rdx, qword [r13 + 0x28]
mov rdx, qword [rdx + r14*8]
mov rbx, qword [rdx + 0x18]
add rdi, 0x28
cmp rcx, rax
jne 0x14000e300
jmp 0x14000e1f0
mov edx, edi
and dl, 1
mov r9d, edi
test dl, dl
jne 0x14000e1f9
jmp 0x14000e210
mov rax, qword [rsp + 0xd0]
movzx eax, word [rax]
mov rcx, qword [r13 + 0x28]
mov rcx, qword [rcx + r14*8]
cmp ax, word [rcx]
setne dl
mov word [rcx], ax
cmp dword [r13 + 0x178], 0
jle 0x14000dc40
mov al, byte [r13 + 0x9b]
mov byte [rsp + 0x4d], al
mov al, byte [r13 + 0x9a]
mov byte [rsp + 0x4e], al
mov al, byte [r13 + 0x99]
mov byte [rsp + 0x4f], al
mov al, byte [r13 + 0x98]
mov byte [rsp + 0x50], al
mov al, byte [r13 + 0x97]
mov byte [rsp + 0x51], al
mov al, byte [r13 + 0x96]
mov byte [rsp + 0x52], al
mov al, byte [r13 + 0x94]
mov byte [rsp + 0x54], al
mov al, byte [r13 + 0x95]
mov byte [rsp + 0x53], al
xor ebp, ebp
mov dword [rsp + 0xbc], 0
xor r14d, r14d
mov dword [rsp + 0xa4], 0
mov dword [rsp + 0xcc], 0
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x60], edx
mov eax, edx
mov dword [rsp + 0x7c], eax
mov rsi, qword [rsp + 0x80]
jmp 0x14000e48f
mov rax, qword [r13 + 0x28]
mov rdi, rbp
mov rbp, qword [rax + rbx*8]
movsxd rax, edi
lea rcx, [rax + rax*4]
shl rcx, 2
add rcx, qword [rbp + 0x18]
mov rbx, qword [rsp + 0x90]
mov rdx, rbx
call fcn.14001cb80
mov ecx, dword [rsp + 0x60]
movzx ecx, cl
test al, al
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0x60], ecx
mov rcx, rbp
mov rbp, rdi
mov edx, ebp
mov r8, rbx
call fcn.14001b620
add ebp, 1
cmp ebp, dword [r13 + 0x178]
jge 0x14000ed70
mov qword [rsp + 0xb0], rbp
movsxd rbx, ebp
lea rax, [rbx*4]
lea r15, [rax + rax*4]
mov edx, dword [rsi + r15 + 4]
mov rax, qword [r13 + 0x28]
mov rcx, qword [rsp + 0x88]
mov rax, qword [rax + rcx*8]
mov r9, qword [rax + 0x18]
mov r10d, dword [r9 + r15 + 4]
mov eax, r10d
xor eax, edx
test eax, 0x400000
mov ecx, dword [rsp + 0x7c]
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov dword [rsp + 0x7c], ecx
mov dword [rsp + 0x6c], edx
mov eax, edx
xor eax, dword [rsp + 0x68]
test dword [r13 + 0x1098], eax
setne al
mov r8b, byte [rsi + r15 + 8]
mov cl, byte [rsp + 0x54]
and cl, 1
cmp r8b, cl
jne 0x14000e560
lea rbp, [rbx + rbx*4]
mov dl, byte [rsp + 0x53]
cmp byte [rsi + rbp*4 + 9], dl
jne 0x14000e560
mov dl, byte [rsp + 0x52]
cmp byte [rsi + rbp*4 + 0xa], dl
jne 0x14000e560
mov dl, byte [rsp + 0x51]
cmp byte [rsi + rbp*4 + 0xb], dl
jne 0x14000e560
mov dl, byte [rsp + 0x50]
and dl, 1
cmp byte [rsi + rbp*4 + 0xc], dl
jne 0x14000e560
mov dl, byte [rsp + 0x4f]
cmp byte [rsi + rbp*4 + 0xd], dl
jne 0x14000e560
mov dl, byte [rsp + 0x4e]
cmp byte [rsi + rbp*4 + 0xe], dl
jne 0x14000e560
mov dl, byte [rsp + 0x4d]
cmp byte [rsi + rbp*4 + 0xf], dl
je 0x14000e562
nop word cs:[rax + rax]
nop dword [rax]
mov al, 1
mov edx, dword [rsi + r15]
mov qword [rsp + 0xa8], rdx
add edx, 0xffffdc46
cmp edx, 4
jb 0x14000e59b
mov rdx, qword [rsp + 0xb0]
test edx, edx
jle 0x14000e59d
add edx, 0xffffffff
lea rdx, [rdx + rdx*4]
mov edx, dword [rsi + rdx*4]
mov ebp, 0xffffdc46
add edx, ebp
cmp edx, 3
ja 0x14000e59d
mov al, 1
mov rsi, qword [rsp + 0xa8]
mov edx, esi
and edx, 0xfffffc00
mov ebp, esi
and ebp, 0xfffffe00
and esi, 0xffffff00
cmp ebp, 0xdc00
mov r13d, 0
cmove r13d, esi
cmp edx, 0xd800
cmove r13d, esi
cmp r13d, dword [rsp + 0xcc]
movzx ebp, al
mov eax, 1
cmovne ebp, eax
mov rax, qword [rsp + 0x98]
lea rdx, [rax + r15]
lea rbx, [rbx + rbx*4]
mov qword [rsp + 0x70], rbx
cmp dword [rax + rbx*4 + 0x10], 0
je 0x14000e900
mov bpl, 1
mov qword [rsp + 0x90], rdx
cmp dword [rdx], 0xdffe
mov rsi, qword [rsp + 0x80]
jne 0x14000e630
mov bpl, 1
jmp 0x14000e660
cmp dword [rsp + 0xb0], 2
jl 0x14000e660
mov rax, qword [rsp + 0x90]
cmp dword [rax - 0x14], 0xdfff
jne 0x14000e660
cmp dword [rax - 0x28], 0xdffe
je 0x14000e623
nop word cs:[rax + rax]
nop
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10d0]
mov bl, byte [rax + 8]
mov eax, dword [rsp + 0x7c]
mov r11d, eax
and r11b, 1
mov eax, ebx
or al, r11b
mov eax, dword [rsp + 0x60]
jne 0x14000e780
mov rdx, qword [rsp + 0xa8]
mov rdi, rsi
mov rsi, qword [rsp + 0x70]
cmp dword [r9 + rsi*4], edx
mov rsi, rdi
jne 0x14000e760
and r10d, 0xfffffff
cmp r10d, dword [rsp + 0x6c]
jne 0x14000e760
mov rdx, qword [rsp + 0x70]
cmp byte [r9 + rdx*4 + 8], cl
jne 0x14000e760
mov al, byte [rsp + 0x53]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 9], al
mov eax, dword [rsp + 0x60]
jne 0x14000e760
mov al, byte [rsp + 0x52]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xa], al
mov eax, dword [rsp + 0x60]
jne 0x14000e760
mov al, byte [rsp + 0x51]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xb], al
mov eax, dword [rsp + 0x60]
jne 0x14000e760
mov al, byte [rsp + 0x50]
and al, 1
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xc], al
mov eax, dword [rsp + 0x60]
jne 0x14000e760
mov al, byte [rsp + 0x4f]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xd], al
mov eax, dword [rsp + 0x60]
jne 0x14000e760
mov al, byte [rsp + 0x4e]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xe], al
mov eax, dword [rsp + 0x60]
jne 0x14000e760
mov al, byte [rsp + 0x4d]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xf], al
mov eax, dword [rsp + 0x60]
je 0x14000e789
nop word [rax + rax]
test al, 1
jne 0x14000e780
cmp r14d, 1
jne 0x14000e780
mov dl, 1
test al, 1
je 0x14000e791
jmp 0x14000e7aa
test bpl, bpl
je 0x14000e920
test al, 1
jne 0x14000ecf0
xor edx, edx
test byte [rsp + 0xbc], 1
je 0x14000e880
test r14d, r14d
jle 0x14000e880
mov rax, qword [rsp + 0x80]
add rax, r15
add rax, 8
mov qword [rsp + 0x60], rax
movzx eax, byte [rsp + 0x51]
shl rax, 0x18
movzx ecx, byte [rsp + 0x52]
shl rcx, 0x10
or rcx, rax
movzx eax, byte [rsp + 0x53]
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x54]
or rcx, rax
movzx eax, byte [rsp + 0x4d]
shl eax, 0x18
mov esi, edx
movzx edx, byte [rsp + 0x4e]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsp + 0x4f]
shl eax, 8
or eax, edx
movzx edx, byte [rsp + 0x50]
or edx, eax
shl rdx, 0x20
or rdx, rcx
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], rdx
mov rdi, qword [rsp + 0x58]
mov rcx, rdi
mov rdx, qword [rsp + 0xd0]
mov r8d, dword [rsp + 0xa4]
mov rbp, qword [rsp + 0x88]
mov r9d, ebp
mov ebx, r11d
call fcn.14001c9c0
mov edx, esi
mov r11d, ebx
mov rax, qword [rsp + 0x60]
mov r8b, byte [rax]
mov rsi, qword [rsp + 0x80]
mov rax, qword [rdi + 0x10d0]
mov bl, byte [rax + 8]
mov rax, qword [rdi + 0x28]
mov rax, qword [rax + rbp*8]
mov r9, qword [rax + 0x18]
mov rcx, qword [rsp + 0x70]
mov al, byte [rsi + rcx*4 + 9]
mov byte [rsp + 0x53], al
mov al, byte [rsi + rcx*4 + 0xa]
mov byte [rsp + 0x52], al
mov al, byte [rsi + rcx*4 + 0xb]
mov byte [rsp + 0x51], al
mov al, byte [rsi + rcx*4 + 0xc]
mov byte [rsp + 0x50], al
mov al, byte [rsi + rcx*4 + 0xd]
mov byte [rsp + 0x4f], al
mov al, byte [rsi + rcx*4 + 0xe]
mov byte [rsp + 0x4e], al
mov al, byte [rsi + rcx*4 + 0xf]
mov byte [rsp + 0x4d], al
test bl, bl
movzx eax, byte [rsp + 0xbc]
movzx ecx, dl
cmove ecx, eax
mov dword [rsp + 0xbc], ecx
xor r14d, r14d
mov eax, dword [rsp + 0x6c]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0xb0]
mov dword [rsp + 0xa4], eax
mov byte [rsp + 0x54], r8b
mov dword [rsp + 0xcc], r13d
jmp 0x14000e923
cmp dword [rsp + 0xb0], 0
jle 0x14000e60b
cmp dword [rdx - 4], 0
jne 0x14000e608
jmp 0x14000e60b
mov r11d, eax
mov al, byte [r9 + r15 + 8]
mov cl, 1
mov dword [rsp + 0x60], ecx
mov rcx, qword [rsp + 0x98]
cmp al, byte [rcx + r15 + 8]
mov r13, qword [rsp + 0x58]
mov rdi, qword [rsp + 0xc0]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 9]
cmp al, byte [rcx + r15 + 9]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 0xa]
cmp al, byte [rcx + r15 + 0xa]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 0xb]
cmp al, byte [rcx + r15 + 0xb]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 0xc]
cmp al, byte [rcx + r15 + 0xc]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 0xd]
cmp al, byte [rcx + r15 + 0xd]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 0xe]
cmp al, byte [rcx + r15 + 0xe]
jne 0x14000e9d0
mov al, byte [r9 + r15 + 0xf]
cmp al, byte [rcx + r15 + 0xf]
jne 0x14000e9d0
lea rax, [r9 + r15]
mov rcx, qword [rsp + 0xa8]
cmp dword [rax], ecx
jne 0x14000e9d0
mov rcx, qword [rsp + 0x70]
mov ecx, dword [r9 + rcx*4 + 4]
xor ecx, dword [rsp + 0x6c]
test ecx, 0xfffffff
je 0x14000ed00
nop dword [rax]
xor ebx, ebx
movsxd rbp, r14d
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.140041760
mov r12, rax
mov rcx, qword [rsp + 0xa8]
lea eax, [rcx - 0x10001]
cmp eax, 0xffffe
ja 0x14000ea40
lea eax, [rcx + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
lea r14d, [rbp + 1]
and ecx, 0x3ff
or ecx, 0xdc00
mov word [r12 + rbp*2 + 2], cx
jmp 0x14000ea42
mov eax, ecx
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x70]
lea rcx, [rcx + rdx*4]
add rcx, 0x10
mov word [r12 + rbp*2], ax
add r14d, 1
mov eax, dword [rcx]
test eax, eax
je 0x14000ebb0
mov dword [rsp + 0xec], ebx
mov rbx, qword [rsp + 0x90]
jmp 0x14000ea9b
mov eax, edi
mov word [r12 + rbp*2], ax
mov eax, dword [rbx + rsi*4 + 0x10]
lea rbx, [rbx + rsi*4]
add r14d, 1
test eax, eax
je 0x14000eb80
cdqe
lea rsi, [rax + rax*4]
mov edi, dword [rbx + rsi*4]
mov eax, edi
and eax, 0xffffff00
cmp eax, 0xda00
je 0x14000eb00
cmp eax, 0xd900
je 0x14000eae0
cmp eax, 0xd800
jne 0x14000eb16
mov rax, qword [r13 + 0x10d0]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x214
jmp 0x14000eb13
mov rax, qword [r13 + 0x10d0]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x614
jmp 0x14000eb13
mov rax, qword [r13 + 0x10d0]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x14
movzx edi, word [rax]
movsxd rbp, r14d
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.140041760
mov r12, rax
lea eax, [rdi - 0x10001]
cmp eax, 0xffffe
ja 0x14000ea80
lea eax, [rdi + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
lea r14d, [rbp + 1]
and edi, 0x3ff
or edi, 0xdc00
mov word [r12 + rbp*2 + 2], di
jmp 0x14000ea82
or dword [rsp + 0x68], 0x80000000
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xc0]
mov rbp, qword [rsp + 0xb0]
mov ebx, dword [rsp + 0xec]
test bl, bl
je 0x14000ebc0
jmp 0x14000ec8a
mov rbp, qword [rsp + 0xb0]
test bl, bl
jne 0x14000ec8a
mov rax, qword [r13 + 0x28]
mov rbx, qword [rsp + 0x88]
mov rcx, qword [rax + rbx*8]
mov edx, ebp
mov r8, qword [rsp + 0x90]
call fcn.14001b620
mov rax, qword [r13 + 0x28]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0xa8]
mov dword [rax + r15], ecx
mov rax, qword [r13 + 0x28]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax + 0x18]
mov ecx, dword [rsp + 0x6c]
mov dword [rax + r15 + 4], ecx
mov rax, qword [r13 + 0x28]
mov rax, qword [rax + rbx*8]
mov rax, qword [rax + 0x18]
mov cl, byte [rsp + 0x54]
mov byte [rax + r15 + 8], cl
mov cl, byte [rsp + 0x53]
mov byte [rax + r15 + 9], cl
mov cl, byte [rsp + 0x52]
mov byte [rax + r15 + 0xa], cl
mov cl, byte [rsp + 0x51]
mov byte [rax + r15 + 0xb], cl
mov cl, byte [rsp + 0x50]
mov byte [rax + r15 + 0xc], cl
mov cl, byte [rsp + 0x4f]
mov byte [rax + r15 + 0xd], cl
mov cl, byte [rsp + 0x4e]
mov byte [rax + r15 + 0xe], cl
mov cl, byte [rsp + 0x4d]
mov byte [rax + r15 + 0xf], cl
cmp dword [rsp + 0xa4], ebp
jne 0x14000ec8a
mov rax, qword [r13 + 0x28]
mov rcx, qword [rsp + 0x88]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0x70]
or dword [rax + rcx*4 + 4], 0x80000000
test dword [rsp + 0x6c], 0x400000
je 0x14000e47f
add ebp, 1
cmp ebp, dword [r13 + 0x178]
jge 0x14000e47f
add qword [rsp + 0x90], 0x14
mov rbx, qword [rsp + 0x88]
cmp rbx, qword [rsp + 0xf0]
jne 0x14000e430
cmp ebp, edi
jne 0x14000e430
lea rcx, str.__i__our_curs_y__j__our_curs_x_
lea rdx, str._home_simon_mem_.build_workdirs_bob_aew3xwii_putty_terminal_terminal.c
mov r8d, 0x1889
call fcn.1400b215c
jmp 0x14000e430
mov dl, 1
test r14d, r14d
jg 0x14000e7aa
jmp 0x14000e880
mov rcx, qword [rsp + 0x90]
nop dword [rax + rax]
movsxd rbp, dword [rax + 0x10]
movsxd rdx, dword [rcx + 0x10]
test rdx, rdx
sete bl
test rbp, rbp
je 0x14000ed54
test edx, edx
je 0x14000e9d0
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 rdi, qword [rsp + 0xc0]
mov rcx, rbp
je 0x14000ed10
jmp 0x14000e9d0
test edx, edx
movzx ecx, r11b
mov eax, 1
cmovne ecx, eax
mov dword [rsp + 0x60], ecx
jmp 0x14000e9d2
test byte [rsp + 0x60], 1
mov rdi, qword [rsp + 0xd0]
je 0x14000ee30
test r14d, r14d
jle 0x14000ee30
movzx eax, byte [rsp + 0x51]
shl rax, 0x18
movzx ecx, byte [rsp + 0x52]
shl rcx, 0x10
or rcx, rax
movzx eax, byte [rsp + 0x53]
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x54]
or rcx, rax
movzx eax, byte [rsp + 0x4d]
shl eax, 0x18
movzx edx, byte [rsp + 0x4e]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsp + 0x4f]
shl eax, 8
or eax, edx
movzx edx, byte [rsp + 0x50]
or edx, eax
shl rdx, 0x20
or rdx, rcx
mov eax, dword [rsp + 0x68]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], rdx
mov rcx, r13
mov rdx, rdi
mov r8d, dword [rsp + 0xa4]
mov r14, qword [rsp + 0x88]
mov r9d, r14d
call fcn.14001c9c0
cmp byte [rdi + 0xc], 0
jne 0x14000dc56
jmp 0x14000dc67
mov r14, qword [rsp + 0x88]
cmp byte [rdi + 0xc], 0
jne 0x14000dc56
jmp 0x14000dc67
mov rcx, rsi
call fcn.140041750
mov rcx, r12
call fcn.140041750
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1400a5f20
nop
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret