Function at 0x14000d840
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 [0x140129050]
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.140042eb0
mov r12, rax
movsxd rcx, dword [r13 + 0x178]
mov edx, 0x14
xor r8d, r8d
call fcn.140042eb0
mov cl, byte [r13 + 0xf2]
cmp cl, byte [r13 + 0x181]
setne r14b
cmp byte [r13 + 0xf8], 0
je 0x14000d90e
cmp byte [r13 + 0x180], 0
je 0x14000d8ee
mov ecx, 0x40000000
cmp byte [r13 + 0xfb], 0
jne 0x14000d8f3
xor ecx, ecx
cmp byte [r13 + 0x1176], 0
sete cl
shl ecx, 0x1e
jmp 0x14000d8f3
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, 0x17ab
xor r9d, r9d
call fcn.140010470
mov rbp, rax
mov esi, dword [r13 + 0xcc]
mov rcx, r13
mov rdx, rax
mov r8d, ebx
call fcn.140014050
test rax, rax
je 0x14000d970
movsxd rcx, esi
mov rdx, qword [r13 + 0x1138]
mov rdi, rbx
shl rdi, 5
mov rdx, qword [rdx + rdi + 0x10]
mov esi, dword [rdx + rcx*4]
jmp 0x14000d974
mov rax, qword [rbp + 0x18]
mov r8, rbx
test esi, esi
jle 0x14000d98f
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 0x14000d9c0
mov rcx, qword [rbp + 0x18]
call fcn.140042f50
mov rcx, rbp
call fcn.140042f50
mov r8, qword [rsp + 0xd8]
mov ecx, dword [r13 + 0x34]
test ecx, ecx
mov rsi, qword [rsp + 0x80]
mov ebx, 0
js 0x14000da53
mov eax, dword [r13 + 0x30]
mov rdx, qword [rsp + 0xe0]
cmp dword [r13 + 0x38], edx
jne 0x14000d9f5
cmp ecx, r8d
jne 0x14000d9f5
cmp eax, dword [rsp + 0xc0]
je 0x14000da53
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 0x14000da25
cmp dword [rbp], 0xdfff
jne 0x14000da25
or dword [rbp - 0x10], 0x3ffff
mov eax, dword [r13 + 0x30]
mov edi, dword [r13 + 0x178]
add edi, 0xffffffff
cmp eax, edi
jge 0x14000da43
cmp dword [rbp + 0x14], 0xdfff
jne 0x14000da43
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 0x14000ec97
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 0x14000dacb
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xd0]
cmp byte [rdi + 0xc], 0
je 0x14000dab7
mov rcx, qword [rdi + 0x18]
call fcn.140042f50
mov rcx, rdi
call fcn.140042f50
add r14, 1
movsxd rax, dword [r13 + 0x174]
cmp r14, rax
jge 0x14000ec97
mov edx, dword [r13 + 0x20]
add edx, r14d
mov rcx, r13
mov dword [rsp + 0x54], edx
mov r8d, 0x17e1
xor r9d, r9d
call fcn.140010470
mov rsi, rax
mov rcx, r13
mov rdx, rax
mov r8d, r14d
call fcn.140014050
test rax, rax
mov qword [rsp + 0xd0], rsi
je 0x14000db30
mov qword [rsp + 0x98], rax
mov rax, qword [r13 + 0x1138]
mov rcx, r14
shl rcx, 5
mov rax, qword [rax + rcx + 0x18]
jmp 0x14000db3e
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 0x14000e1b0
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 0x14000dc04
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 0x14000e020
test rax, rax
je 0x14000dc10
mov r8d, dword [rax + rbp*4]
jmp 0x14000dc13
mov r8d, ebp
mov ecx, dword [rdi + rbx*4 - 0xc]
mov esi, ecx
and esi, 0xfffc0000
or esi, 0x20500
cmp byte [r13 + 0x1149], 0
cmovne esi, ecx
cmp byte [r13 + 0x11af], 0
je 0x14000dca0
cmp byte [r13 + 0x11b0], 0
je 0x14000dcf5
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 0x14000dd31
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 + 0x11b0], 0
jne 0x14000dc48
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 0x14000dda0
cmp edi, 0xd900
je 0x14000dd80
cmp edi, 0xd800
jne 0x14000ddbc
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10d8]
movzx edx, r13b
lea rdi, [rcx + rdx*2]
add rdi, 0x20c
jmp 0x14000ddb8
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10d8]
movzx edx, r13b
lea rdi, [rcx + rdx*2]
add rdi, 0x60c
jmp 0x14000ddb8
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10d8]
movzx edx, r13b
lea rdi, [rcx + rdx*2]
add rdi, 0xc
movzx r13d, word [rdi]
add r10d, 0xffffffff
movsxd rax, r10d
cmp rbp, rax
jge 0x14000ddf0
mov eax, esi
or eax, 0x400000
mov rdi, qword [rsp + 0x98]
cmp dword [rdi + rbx*4 + 4], 0xdfff
cmove esi, eax
jmp 0x14000ddf8
mov rdi, qword [rsp + 0x98]
mov rax, qword [rsp + 0x58]
mov eax, dword [rax + 0xe7c]
and eax, 0xfffffffe
cmp eax, 2
mov dword [rsp + 0xb0], r15d
jne 0x14000ded0
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0xe80], 0
mov rax, qword [rax + 0xe88]
je 0x14000de74
cmp dword [rsp + 0x54], eax
jl 0x14000ded0
shr rax, 0x20
cmp r8d, eax
jl 0x14000ded0
mov rax, qword [rsp + 0x58]
mov rdi, qword [rax + 0xe90]
mov r15d, esi
xor r15d, r9d
xor eax, eax
cmp dword [rsp + 0x54], edi
jg 0x14000e004
shr rdi, 0x20
cmp r8d, edi
mov rdi, qword [rsp + 0x98]
jl 0x14000dec7
jmp 0x14000ded8
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 0x14000ded0
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0xe90]
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 0x14000ded8
mov eax, 0x100000
jmp 0x14000ded8
mov r15d, esi
xor r15d, r9d
xor eax, eax
xor r15d, eax
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0xfd], 0
je 0x14000df30
and esi, 0x200000
je 0x14000df30
mov rax, qword [rsp + 0x58]
cmp byte [rax + 0x180], 0
mov rsi, qword [rsp + 0x80]
je 0x14000df24
cmp byte [rax + 0xfc], 0
je 0x14000df24
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10d8]
movzx r13d, word [rax + 0x24c]
and r15d, 0xffdfffff
jmp 0x14000df38
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 0x14000df80
mov eax, dword [rax + rbx*4 - 0xc]
mov ecx, eax
and ecx, 0xf7fffff
cmp r15d, ecx
jne 0x14000df80
and eax, 0x800000
or r15d, eax
jmp 0x14000dfbe
test r15d, 0x400000
jne 0x14000dfbe
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x10c8]
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 0x14000db80
mov rdx, qword [rsp + 0xc0]
cmp rdx, rbp
jne 0x14000db80
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 0x14000db85
mov rdi, qword [rsp + 0x98]
jmp 0x14000ded8
test r10d, r10d
jle 0x14000e1b0
xor ecx, ecx
xor edi, edi
xor r8d, r8d
jmp 0x14000e073
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 0x14000e1b0
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 0x14000e0f0
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 0x14000e0d8
test dl, dl
je 0x14000e0fa
test dl, dl
jne 0x14000e049
jmp 0x14000e060
test r9b, 1
jne 0x14000e190
movsxd rax, r8d
mov r9b, 1
cmp rcx, rax
jle 0x14000e049
mov edx, ecx
sub edx, eax
lea rdi, [rax + 1]
test dl, 1
je 0x14000e131
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 0x14000e040
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 0x14000e150
jmp 0x14000e040
mov edx, edi
and dl, 1
mov r9d, edi
test dl, dl
jne 0x14000e049
jmp 0x14000e060
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 0x14000da90
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 0x14000e2df
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.14001c770
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.14001adb0
add ebp, 1
cmp ebp, dword [r13 + 0x178]
jge 0x14000ebc0
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 + 0x10a0], eax
setne al
mov r8b, byte [rsi + r15 + 8]
mov cl, byte [rsp + 0x54]
and cl, 1
cmp r8b, cl
jne 0x14000e3b0
lea rbp, [rbx + rbx*4]
mov dl, byte [rsp + 0x53]
cmp byte [rsi + rbp*4 + 9], dl
jne 0x14000e3b0
mov dl, byte [rsp + 0x52]
cmp byte [rsi + rbp*4 + 0xa], dl
jne 0x14000e3b0
mov dl, byte [rsp + 0x51]
cmp byte [rsi + rbp*4 + 0xb], dl
jne 0x14000e3b0
mov dl, byte [rsp + 0x50]
and dl, 1
cmp byte [rsi + rbp*4 + 0xc], dl
jne 0x14000e3b0
mov dl, byte [rsp + 0x4f]
cmp byte [rsi + rbp*4 + 0xd], dl
jne 0x14000e3b0
mov dl, byte [rsp + 0x4e]
cmp byte [rsi + rbp*4 + 0xe], dl
jne 0x14000e3b0
mov dl, byte [rsp + 0x4d]
cmp byte [rsi + rbp*4 + 0xf], dl
je 0x14000e3b2
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 0x14000e3eb
mov rdx, qword [rsp + 0xb0]
test edx, edx
jle 0x14000e3ed
add edx, 0xffffffff
lea rdx, [rdx + rdx*4]
mov edx, dword [rsi + rdx*4]
mov ebp, 0xffffdc46
add edx, ebp
cmp edx, 3
ja 0x14000e3ed
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 0x14000e750
mov bpl, 1
mov qword [rsp + 0x90], rdx
cmp dword [rdx], 0xdffe
mov rsi, qword [rsp + 0x80]
jne 0x14000e480
mov bpl, 1
jmp 0x14000e4b0
cmp dword [rsp + 0xb0], 2
jl 0x14000e4b0
mov rax, qword [rsp + 0x90]
cmp dword [rax - 0x14], 0xdfff
jne 0x14000e4b0
cmp dword [rax - 0x28], 0xdffe
je 0x14000e473
nop word cs:[rax + rax]
nop
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x10d8]
mov bl, byte [rax]
mov eax, dword [rsp + 0x7c]
mov r11d, eax
and r11b, 1
mov eax, ebx
or al, r11b
mov eax, dword [rsp + 0x60]
jne 0x14000e5d0
mov rdx, qword [rsp + 0xa8]
mov rdi, rsi
mov rsi, qword [rsp + 0x70]
cmp dword [r9 + rsi*4], edx
mov rsi, rdi
jne 0x14000e5b0
and r10d, 0xfffffff
cmp r10d, dword [rsp + 0x6c]
jne 0x14000e5b0
mov rdx, qword [rsp + 0x70]
cmp byte [r9 + rdx*4 + 8], cl
jne 0x14000e5b0
mov al, byte [rsp + 0x53]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 9], al
mov eax, dword [rsp + 0x60]
jne 0x14000e5b0
mov al, byte [rsp + 0x52]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xa], al
mov eax, dword [rsp + 0x60]
jne 0x14000e5b0
mov al, byte [rsp + 0x51]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xb], al
mov eax, dword [rsp + 0x60]
jne 0x14000e5b0
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 0x14000e5b0
mov al, byte [rsp + 0x4f]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xd], al
mov eax, dword [rsp + 0x60]
jne 0x14000e5b0
mov al, byte [rsp + 0x4e]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xe], al
mov eax, dword [rsp + 0x60]
jne 0x14000e5b0
mov al, byte [rsp + 0x4d]
mov rcx, qword [rsp + 0x70]
cmp byte [r9 + rcx*4 + 0xf], al
mov eax, dword [rsp + 0x60]
je 0x14000e5d9
nop dword [rax]
test al, 1
jne 0x14000e5d0
cmp r14d, 1
jne 0x14000e5d0
mov dl, 1
test al, 1
je 0x14000e5e1
jmp 0x14000e5fa
test bpl, bpl
je 0x14000e770
test al, 1
jne 0x14000eb40
xor edx, edx
test byte [rsp + 0xbc], 1
je 0x14000e6cf
test r14d, r14d
jle 0x14000e6cf
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.14001c5b0
mov edx, esi
mov r11d, ebx
mov rax, qword [rsp + 0x60]
mov r8b, byte [rax]
mov rsi, qword [rsp + 0x80]
mov rax, qword [rdi + 0x10d8]
mov bl, byte [rax]
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 0x14000e773
cmp dword [rsp + 0xb0], 0
jle 0x14000e45b
cmp dword [rdx - 4], 0
jne 0x14000e458
jmp 0x14000e45b
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 0x14000e820
mov al, byte [r9 + r15 + 9]
cmp al, byte [rcx + r15 + 9]
jne 0x14000e820
mov al, byte [r9 + r15 + 0xa]
cmp al, byte [rcx + r15 + 0xa]
jne 0x14000e820
mov al, byte [r9 + r15 + 0xb]
cmp al, byte [rcx + r15 + 0xb]
jne 0x14000e820
mov al, byte [r9 + r15 + 0xc]
cmp al, byte [rcx + r15 + 0xc]
jne 0x14000e820
mov al, byte [r9 + r15 + 0xd]
cmp al, byte [rcx + r15 + 0xd]
jne 0x14000e820
mov al, byte [r9 + r15 + 0xe]
cmp al, byte [rcx + r15 + 0xe]
jne 0x14000e820
mov al, byte [r9 + r15 + 0xf]
cmp al, byte [rcx + r15 + 0xf]
jne 0x14000e820
lea rax, [r9 + r15]
mov rcx, qword [rsp + 0xa8]
cmp dword [rax], ecx
jne 0x14000e820
mov rcx, qword [rsp + 0x70]
mov ecx, dword [r9 + rcx*4 + 4]
xor ecx, dword [rsp + 0x6c]
test ecx, 0xfffffff
je 0x14000eb50
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.140042f60
mov r12, rax
mov rcx, qword [rsp + 0xa8]
lea eax, [rcx - 0x10001]
cmp eax, 0xffffe
ja 0x14000e890
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 0x14000e892
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 0x14000ea00
mov dword [rsp + 0xec], ebx
mov rbx, qword [rsp + 0x90]
jmp 0x14000e8eb
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 0x14000e9d0
cdqe
lea rsi, [rax + rax*4]
mov edi, dword [rbx + rsi*4]
mov eax, edi
and eax, 0xffffff00
cmp eax, 0xda00
je 0x14000e950
cmp eax, 0xd900
je 0x14000e930
cmp eax, 0xd800
jne 0x14000e966
mov rax, qword [r13 + 0x10d8]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x20c
jmp 0x14000e963
mov rax, qword [r13 + 0x10d8]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x60c
jmp 0x14000e963
mov rax, qword [r13 + 0x10d8]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0xc
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.140042f60
mov r12, rax
lea eax, [rdi - 0x10001]
cmp eax, 0xffffe
ja 0x14000e8d0
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 0x14000e8d2
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 0x14000ea10
jmp 0x14000eada
mov rbp, qword [rsp + 0xb0]
test bl, bl
jne 0x14000eada
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.14001adb0
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 0x14000eada
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 0x14000e2cf
add ebp, 1
cmp ebp, dword [r13 + 0x178]
jge 0x14000e2cf
add qword [rsp + 0x90], 0x14
mov rbx, qword [rsp + 0x88]
cmp rbx, qword [rsp + 0xf0]
jne 0x14000e280
cmp ebp, edi
jne 0x14000e280
lea rcx, str.__i__our_curs_y__j__our_curs_x_
lea rdx, str._home_simon_mem_.build_workdirs_bob_fffbk9my_putty_terminal_terminal.c
mov r8d, 0x1905
call fcn.1400c9b7c
jmp 0x14000e280
mov dl, 1
test r14d, r14d
jg 0x14000e5fa
jmp 0x14000e6cf
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 0x14000eba4
test edx, edx
je 0x14000e820
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 0x14000eb60
jmp 0x14000e820
test edx, edx
movzx ecx, r11b
mov eax, 1
cmovne ecx, eax
mov dword [rsp + 0x60], ecx
jmp 0x14000e822
test byte [rsp + 0x60], 1
mov rdi, qword [rsp + 0xd0]
je 0x14000ec80
test r14d, r14d
jle 0x14000ec80
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.14001c5b0
cmp byte [rdi + 0xc], 0
jne 0x14000daa6
jmp 0x14000dab7
mov r14, qword [rsp + 0x88]
cmp byte [rdi + 0xc], 0
jne 0x14000daa6
jmp 0x14000dab7
mov rcx, rsi
call fcn.140042f50
mov rcx, r12
call fcn.140042f50
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1400b8cc0
nop
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret