Function at 0x1400512ea
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
mov r12, rcx
mov rax, qword [0x1400cb0e0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xe8], 0x400
xor eax, eax
mov qword [rsp + 0xb8], rax
mov ecx, 0x400
mov edx, 2
xor r8d, r8d
call fcn.140011888
mov r14, rax
movsxd rcx, dword [r12 + 0x178]
mov edx, 0x14
xor r8d, r8d
call fcn.140011888
mov cl, byte [r12 + 0xf2]
cmp cl, byte [r12 + 0x181]
mov r15, rax
setne r13b
cmp byte [r12 + 0xf8], 0
je 0x1400513c3
cmp byte [r12 + 0x180], 0
je 0x1400513a2
mov eax, 0x40000000
cmp byte [r12 + 0xfb], 0
jne 0x1400513a7
xor eax, eax
cmp byte [r12 + 0x1166], 0
sete al
shl eax, 0x1e
jmp 0x1400513a7
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [r12 + 0xe2], 0
cmove ecx, eax
mov qword [rsp + 0xb8], rcx
movsxd rdx, dword [r12 + 0xc8]
movsxd rax, dword [r12 + 0x20]
mov rbp, rdx
sub rbp, rax
mov r8d, 0x151a
xor r9d, r9d
mov rcx, r12
call fcn.1400533ce
mov rbx, rax
mov esi, dword [r12 + 0xcc]
mov rcx, r12
mov rdx, rax
mov r8d, ebp
call fcn.140055ca0
test rax, rax
je 0x140051421
movsxd rcx, esi
mov rdx, qword [r12 + 0x1128]
mov rdi, rbp
shl rdi, 5
mov rdx, qword [rdx + rdi + 0x10]
mov esi, dword [rdx + rcx*4]
jmp 0x140051425
mov rax, qword [rbx + 0x18]
test esi, esi
jle 0x14005143e
movsxd rcx, 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 + 0xb0], rax
cmp byte [rbx + 0xc], 0
mov qword [rsp + 0xc0], rbp
je 0x14005146f
mov rcx, qword [rbx + 0x18]
call fcn.140011913
mov rcx, rbx
call fcn.140011913
mov rbp, qword [rsp + 0xc0]
movsxd rcx, dword [r12 + 0x34]
test rcx, rcx
mov esi, 0
js 0x140051502
mov eax, dword [r12 + 0x30]
cmp ecx, ebp
jne 0x1400514a3
mov rdx, qword [rsp + 0xb8]
cmp dword [r12 + 0x38], edx
jne 0x1400514a3
cmp eax, dword [rsp + 0xb0]
je 0x140051502
movsxd rdx, eax
mov rbx, qword [r12 + 0x28]
mov rcx, qword [rbx + rcx*8]
mov rcx, qword [rcx + 0x18]
lea rdx, [rdx + rdx*4]
lea rbx, [rcx + rdx*4]
test eax, eax
jle 0x1400514d3
cmp dword [rbx], 0xdfff
jne 0x1400514d3
or dword [rbx - 0x10], 0x3ffff
mov eax, dword [r12 + 0x30]
mov edi, dword [r12 + 0x178]
dec edi
cmp eax, edi
jge 0x1400514f1
cmp dword [rbx + 0x14], 0xdfff
jne 0x1400514f1
or dword [rbx + 0x18], 0x3ffff
or dword [rcx + rdx*4 + 4], 0x3ffff
mov dword [r12 + 0x38], 0
mov qword [r12 + 0x30], 0xffffffffffffffff
cmp dword [r12 + 0x174], 0
jle 0x1400522b3
mov sil, r13b
shl esi, 0x14
mov dword [rsp + 0xa0], esi
mov eax, ebp
mov qword [rsp + 0xd0], rax
xor edi, edi
mov qword [rsp + 0x90], r15
mov ebx, dword [r12 + 0x20]
add ebx, edi
mov r8d, 0x1550
xor r9d, r9d
mov rcx, r12
mov edx, ebx
call fcn.1400533ce
mov rsi, rax
mov rcx, r12
mov rdx, rax
mov r8d, edi
call fcn.140055ca0
mov qword [rsp + 0x98], rax
test rax, rax
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0xa8], rsi
je 0x140051593
mov rax, qword [r12 + 0x1128]
shl rdi, 5
mov r11, qword [rax + rdi + 0x18]
jmp 0x1400515a2
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x98], rax
xor r11d, r11d
mov eax, dword [r12 + 0x178]
test eax, eax
jle 0x140051a65
mov dword [rsp + 0x68], ebx
mov ebx, 4
xor ebp, ebp
mov r9d, dword [rsp + 0xa0]
mov qword [rsp + 0x58], r11
jmp 0x1400515e6
mov r15d, edi
xor r15d, r9d
xor eax, eax
cmp ecx, edx
jge 0x140051812
mov eax, 0x100000
jmp 0x140051812
test r11, r11
je 0x1400515f1
mov r8d, dword [r11 + rbp*4]
jmp 0x1400515f4
mov r8d, ebp
mov rcx, qword [rsp + 0x98]
mov esi, dword [rcx + rbx*4 - 0x10]
mov edx, dword [rcx + rbx*4 - 0xc]
mov edi, edx
and edi, 0xfffc0000
or edi, 0x20500
xor ecx, ecx
cmp byte [r12 + 0x1139], cl
cmovne edi, edx
cmp byte [r12 + 0x119b], cl
jne 0x140051675
mov edx, edi
and edx, 0x1ff
add edx, 0xfffffff0
mov ecx, edi
and ecx, 0xfffffe00
or ecx, 0x100
mov r11d, 0xf0
cmp edx, r11d
cmovae ecx, edi
mov edx, ecx
shr edx, 9
and edx, 0x1ff
add edx, 0xfffffff0
mov edi, ecx
and edi, 0xfffc01ff
or edi, 0x20400
cmp edx, r11d
mov r11, qword [rsp + 0x58]
cmovae edi, ecx
cmp byte [r12 + 0x119c], 0
je 0x1400516c4
mov rcx, qword [rsp + 0x98]
mov dl, byte [rcx + rbx*4 - 8]
mov dword [rsp + 0x70], edx
mov r10b, byte [rcx + rbx*4 - 7]
mov r15b, byte [rcx + rbx*4 - 6]
mov r13b, byte [rcx + rbx*4 - 5]
mov dl, byte [rcx + rbx*4 - 4]
mov dword [rsp + 0x4c], edx
mov dl, byte [rcx + rbx*4 - 3]
mov dword [rsp + 0x50], edx
mov dl, byte [rcx + rbx*4 - 2]
mov dword [rsp + 0x54], edx
mov cl, byte [rcx + rbx*4 - 1]
mov dword [rsp + 0x80], ecx
jmp 0x1400516f8
xor r13d, r13d
xor r15d, r15d
xor r10d, r10d
mov dword [rsp + 0x70], 0
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x54], 0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x4c], 0
mov edx, esi
and edx, 0xffffff00
cmp edx, 0xda00
je 0x14005174a
cmp edx, 0xd900
je 0x140051731
cmp edx, 0xd800
jne 0x140051761
mov rcx, qword [r12 + 0x10c8]
movzx edx, sil
lea rdx, [rcx + rdx*2]
add rdx, 0x214
jmp 0x14005175e
mov rcx, qword [r12 + 0x10c8]
movzx edx, sil
lea rdx, [rcx + rdx*2]
add rdx, 0x614
jmp 0x14005175e
mov rcx, qword [r12 + 0x10c8]
movzx edx, sil
lea rdx, [rcx + rdx*2]
add rdx, 0x14
movzx esi, word [rdx]
dec eax
cdqe
cmp rbp, rax
jge 0x140051784
mov eax, edi
or eax, 0x400000
mov rcx, qword [rsp + 0x98]
cmp dword [rcx + rbx*4 + 4], 0xdfff
cmove edi, eax
mov eax, dword [r12 + 0xe6c]
and eax, 0xfffffffe
cmp eax, 2
mov dword [rsp + 0x88], r15d
jne 0x14005180a
cmp dword [r12 + 0xe70], 0
mov rax, qword [r12 + 0xe78]
je 0x1400517ce
cmp dword [rsp + 0x68], eax
jl 0x14005180a
shr rax, 0x20
cmp r8d, eax
jl 0x14005180a
mov rdx, qword [r12 + 0xe80]
cmp dword [rsp + 0x68], edx
jle 0x1400517f1
jmp 0x14005180a
cmp dword [rsp + 0x68], eax
jne 0x140051808
shr rax, 0x20
cmp r8d, eax
jl 0x14005180a
mov rdx, qword [r12 + 0xe80]
mov ecx, dword [rsp + 0x68]
cmp ecx, edx
jne 0x1400515cc
shr rdx, 0x20
mov r15d, edi
xor r15d, r9d
xor eax, eax
cmp r8d, edx
jl 0x1400515dc
jmp 0x140051812
jg 0x1400517dd
mov r15d, edi
xor r15d, r9d
xor eax, eax
xor r15d, eax
bt edi, 0x15
jae 0x140051858
mov al, byte [r12 + 0xfd]
test al, al
je 0x140051858
cmp byte [r12 + 0x180], 0
mov edi, r10d
je 0x14005184f
cmp byte [r12 + 0xfc], 0
je 0x14005184f
mov rax, qword [r12 + 0x10c8]
movzx esi, word [rax + 0x254]
and r15d, 0xffdfffff
jmp 0x14005185b
mov edi, r10d
mov rax, qword [r12 + 0x28]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
cmp esi, dword [rax + rbx*4 - 0x10]
jne 0x14005188e
mov eax, dword [rax + rbx*4 - 0xc]
mov ecx, eax
and ecx, 0xf7fffff
cmp r15d, ecx
jne 0x14005188e
and eax, 0x800000
or r15d, eax
jmp 0x1400518c2
bt r15d, 0x16
jb 0x1400518c2
mov rcx, qword [r12 + 0x10b8]
mov rax, qword [rcx]
mov edx, esi
call qword [rax + 0x20]
mov r11, qword [rsp + 0x58]
mov r9d, dword [rsp + 0xa0]
mov ecx, r15d
or ecx, 0x800000
cmp eax, 2
cmove r15d, ecx
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsp + 0xd0]
jne 0x140051900
mov rcx, qword [rsp + 0xb0]
cmp rcx, rbp
jne 0x140051900
mov rax, qword [rsp + 0xb8]
or r15d, eax
mov dword [r12 + 0x38], eax
mov dword [r12 + 0x30], ecx
mov rax, qword [rsp + 0xc0]
mov dword [r12 + 0x34], eax
mov rax, qword [rsp + 0x90]
mov dword [rax + rbx*4 - 0xc], r15d
mov r15, rax
mov dword [rax + rbx*4 - 0x10], esi
mov eax, dword [rsp + 0x70]
mov byte [r15 + rbx*4 - 8], al
mov byte [r15 + rbx*4 - 7], dil
mov eax, dword [rsp + 0x88]
mov byte [r15 + rbx*4 - 6], al
mov byte [r15 + rbx*4 - 5], r13b
mov eax, dword [rsp + 0x4c]
mov byte [r15 + rbx*4 - 4], al
mov eax, dword [rsp + 0x50]
mov byte [r15 + rbx*4 - 3], al
mov eax, dword [rsp + 0x54]
mov byte [r15 + rbx*4 - 2], al
mov eax, dword [rsp + 0x80]
mov byte [r15 + rbx*4 - 1], al
mov dword [r15 + rbx*4], 0
inc rbp
movsxd rax, dword [r12 + 0x178]
add rbx, 5
cmp rbp, rax
jl 0x1400515e6
test eax, eax
jle 0x140051a65
xor ecx, ecx
xor r8d, r8d
xor r10d, r10d
mov ebp, r10d
mov rdx, qword [r12 + 0x28]
mov rbx, qword [rsp + 0x60]
mov rdx, qword [rdx + rbx*8]
mov rdi, qword [rdx + 0x18]
lea rdx, [rcx*4]
lea rdx, [rdx + rdx*4]
mov esi, dword [rdi + rdx]
mov ebx, dword [rdi + rdx + 4]
mov r10d, ecx
test ebx, ebx
cmovns r10d, ebp
jns 0x1400519c0
xor r8d, r8d
mov rbp, qword [rsp + 0x60]
lea r9, [rdi + rdx]
add r9, 4
cmp esi, dword [r15 + rdx]
jne 0x1400519f9
test r8b, 1
jne 0x1400519f1
mov edx, ebx
and edx, 0xfffffff
lea rbp, [rcx + rcx*4]
cmp edx, dword [r15 + rbp*4 + 4]
mov rbp, qword [rsp + 0x60]
jne 0x1400519ff
test r8b, 1
jne 0x140051a45
jmp 0x140051a56
test r8b, 1
jne 0x140051a45
movsxd rdx, r10d
mov r8b, 1
mov rax, rcx
sub rax, rdx
jle 0x140051a45
lea rdx, [rdx + rdx*4]
lea rbx, [rdx*4 + 4]
or dword [rdi + rbx], 0x3ffff
mov rdx, qword [r12 + 0x28]
mov rdx, qword [rdx + rbp*8]
mov rdi, qword [rdx + 0x18]
add rbx, 0x14
dec rax
jne 0x140051a19
lea rax, [rcx + rcx*4]
lea r9, [rdi + rax*4]
add r9, 4
mov ebx, dword [r9]
or ebx, 0x3ffff
mov dword [r9], ebx
mov eax, dword [r12 + 0x178]
inc rcx
movsxd rdx, eax
cmp rcx, rdx
jl 0x14005198a
mov rax, qword [rsp + 0xa8]
movzx eax, word [rax]
mov rcx, qword [r12 + 0x28]
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rcx + rdi*8]
cmp ax, word [rcx]
setne dl
mov word [rcx], ax
cmp dword [r12 + 0x178], 0
jle 0x140052280
mov al, byte [r12 + 0x9b]
mov byte [rsp + 0x44], al
mov al, byte [r12 + 0x9a]
mov byte [rsp + 0x45], al
mov al, byte [r12 + 0x99]
mov byte [rsp + 0x46], al
mov al, byte [r12 + 0x98]
mov byte [rsp + 0x47], al
mov al, byte [r12 + 0x97]
mov byte [rsp + 0x48], al
mov al, byte [r12 + 0x96]
mov byte [rsp + 0x49], al
mov al, byte [r12 + 0x94]
mov byte [rsp + 0x4c], al
mov al, byte [r12 + 0x95]
mov byte [rsp + 0x4a], al
xor ebp, ebp
xor eax, eax
mov qword [rsp + 0xc8], rax
xor r13d, r13d
mov dword [rsp + 0x7c], 0
mov dword [rsp + 0xa4], 0
mov dword [rsp + 0x50], 0
mov byte [rsp + 0x58], dl
mov byte [rsp + 0x4b], dl
jmp 0x140051b37
mov rsi, qword [rsp + 0x90]
jmp 0x140051e31
mov qword [rsp + 0x70], rbp
movsxd rbx, ebp
lea rax, [rbx*4]
lea r10, [rax + rax*4]
mov eax, dword [r15 + r10]
mov qword [rsp + 0x88], rax
mov ebp, dword [r15 + r10 + 4]
mov rax, qword [r12 + 0x28]
mov rax, qword [rax + rdi*8]
mov r11, qword [rax + 0x18]
mov edi, dword [r11 + r10 + 4]
mov edx, edi
xor edx, ebp
bt edx, 0x16
jae 0x140051b7d
mov byte [rsp + 0x4b], 1
mov dword [rsp + 0x54], ebp
mov edx, ebp
xor edx, dword [rsp + 0x50]
test dword [r12 + 0x1090], edx
setne cl
mov r8b, byte [r15 + r10 + 8]
mov al, byte [rsp + 0x4c]
and al, 1
cmp r8b, al
jne 0x140051bf5
lea rbp, [rbx + rbx*4]
mov al, byte [rsp + 0x4a]
cmp byte [r15 + rbp*4 + 9], al
jne 0x140051bf5
mov al, byte [rsp + 0x49]
cmp byte [r15 + rbp*4 + 0xa], al
jne 0x140051bf5
mov al, byte [rsp + 0x48]
cmp byte [r15 + rbp*4 + 0xb], al
jne 0x140051bf5
mov al, byte [rsp + 0x47]
and al, 1
cmp byte [r15 + rbp*4 + 0xc], al
jne 0x140051bf5
mov al, byte [rsp + 0x46]
cmp byte [r15 + rbp*4 + 0xd], al
jne 0x140051bf5
mov al, byte [rsp + 0x45]
cmp byte [r15 + rbp*4 + 0xe], al
jne 0x140051bf5
mov al, byte [rsp + 0x44]
cmp byte [r15 + rbp*4 + 0xf], al
je 0x140051bf7
mov cl, 1
mov rax, qword [rsp + 0x88]
lea eax, [rax - 0x23ba]
cmp eax, 4
jb 0x140051c2c
mov rax, qword [rsp + 0x70]
test eax, eax
jle 0x140051c2e
lea eax, [rax - 1]
cdqe
lea rax, [rax + rax*4]
mov eax, dword [r15 + rax*4]
mov ebp, 0xffffdc46
add eax, ebp
cmp eax, 3
ja 0x140051c2e
mov cl, 1
mov rax, qword [rsp + 0x88]
mov rsi, rax
and eax, 0xfffffc00
mov ebp, esi
and ebp, 0xfffffe00
and esi, 0xffffff00
cmp ebp, 0xf000
mov ebp, 0
cmove ebp, esi
cmp eax, 0xd800
cmove ebp, esi
cmp ebp, dword [rsp + 0xa4]
je 0x140051c6d
mov cl, 1
mov rax, qword [rsp + 0x98]
lea rdx, [rax + r10]
lea rsi, [rbx + rbx*4]
cmp dword [rax + rsi*4 + 0x10], 0
je 0x140051d52
mov cl, 1
cmp dword [rdx], 0xdffe
jne 0x140051c96
mov cl, 1
jmp 0x140051caf
cmp dword [rsp + 0x70], 2
jl 0x140051caf
cmp dword [rdx - 0x14], 0xdfff
jne 0x140051caf
cmp dword [rdx - 0x28], 0xdffe
je 0x140051c92
mov rax, qword [r12 + 0x10c8]
mov bl, byte [rax + 8]
mov r15b, byte [rsp + 0x4b]
and r15b, 1
mov eax, ebx
or al, r15b
mov qword [rsp + 0xe0], r10
mov qword [rsp + 0x80], rdx
mov qword [rsp + 0xd8], rsi
jne 0x140051d14
and edi, 0xfffffff
cmp edi, dword [rsp + 0x54]
jne 0x140051cfc
mov rax, qword [rsp + 0x88]
cmp dword [r11 + rsi*4], eax
je 0x140051d29
mov r9b, 1
mov al, 1
cmp r13d, 1
je 0x140051d09
mov eax, ecx
test byte [rsp + 0x58], r9b
je 0x140051d12
mov eax, ecx
mov ecx, eax
test cl, cl
jne 0x140051d29
mov r15, qword [rsp + 0x90]
mov ebx, dword [rsp + 0x54]
jmp 0x140051eb9
and byte [rsp + 0x58], 1
jne 0x140051d6c
test r13d, r13d
jle 0x140051b2a
mov rax, qword [rsp + 0xc8]
and al, 1
mov rsi, qword [rsp + 0x90]
jne 0x140051d7d
jmp 0x140051e31
cmp dword [rsp + 0x70], 0
jle 0x140051c8a
cmp dword [rdx - 4], 0
jne 0x140051c88
jmp 0x140051c8a
test r13d, r13d
mov rsi, qword [rsp + 0x90]
jle 0x140051e31
lea rax, [rsi + r10]
add rax, 8
mov qword [rsp + 0x68], rax
movzx eax, byte [rsp + 0x48]
shl rax, 0x18
movzx ecx, byte [rsp + 0x49]
shl rcx, 0x10
or rcx, rax
movzx eax, byte [rsp + 0x4a]
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x4c]
or rcx, rax
movzx eax, byte [rsp + 0x44]
shl eax, 0x18
movzx edx, byte [rsp + 0x45]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsp + 0x46]
shl eax, 8
or eax, edx
movzx edx, byte [rsp + 0x47]
or edx, eax
shl rdx, 0x20
or rdx, rcx
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], rdx
mov rcx, r12
mov rdx, qword [rsp + 0xa8]
mov r8d, dword [rsp + 0x7c]
mov rdi, qword [rsp + 0x60]
mov r9d, edi
call fcn.14005c3f3
mov rax, qword [rsp + 0x68]
mov r8b, byte [rax]
mov rax, qword [r12 + 0x10c8]
mov bl, byte [rax + 8]
mov rax, qword [r12 + 0x28]
mov rax, qword [rax + rdi*8]
mov r11, qword [rax + 0x18]
mov rcx, qword [rsp + 0xd8]
mov al, byte [rsi + rcx*4 + 9]
mov byte [rsp + 0x4a], al
mov al, byte [rsi + rcx*4 + 0xa]
mov byte [rsp + 0x49], al
mov al, byte [rsi + rcx*4 + 0xb]
mov byte [rsp + 0x48], al
mov al, byte [rsi + rcx*4 + 0xc]
mov byte [rsp + 0x47], al
mov al, byte [rsi + rcx*4 + 0xd]
mov byte [rsp + 0x46], al
mov al, byte [rsi + rcx*4 + 0xe]
mov byte [rsp + 0x45], al
mov al, byte [rsi + rcx*4 + 0xf]
mov rsi, rcx
mov byte [rsp + 0x44], al
test bl, bl
je 0x140051e84
mov al, byte [rsp + 0x58]
mov qword [rsp + 0xc8], rax
xor r13d, r13d
mov ebx, dword [rsp + 0x54]
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0xa4], ebp
mov rax, qword [rsp + 0x70]
mov dword [rsp + 0x7c], eax
mov byte [rsp + 0x4c], r8b
mov byte [rsp + 0x58], r15b
mov r15, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x80]
lea rcx, [r11 + rsi*4]
mov rdi, qword [rsp + 0x88]
mov r8d, edi
mov r9d, ebx
call fcn.14005c589
mov byte [rsp + 0x68], al
test al, al
jne 0x140051edd
mov byte [rsp + 0x58], 1
mov rax, qword [rsp + 0x98]
lea rsi, [rax + rsi*4]
add rsi, 0x10
movsxd rbp, r13d
xor eax, eax
mov byte [rsp + 0x28], al
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r14
lea rdx, [rsp + 0xe8]
mov r9, rbp
call fcn.14001191d
mov r14, rax
lea eax, [rdi - 0x10001]
cmp eax, 0xffffe
ja 0x140051f50
lea ecx, [rdi - 0x10000]
mov eax, ecx
shr eax, 0xa
add eax, 0xffffd800
lea r13d, [rbp + 1]
and ecx, 0x3ff
or ecx, 0xdc00
mov word [r14 + rbp*2 + 2], cx
jmp 0x140051f52
mov eax, edi
mov word [r14 + rbp*2], ax
inc r13d
mov eax, dword [rsi]
test eax, eax
je 0x140052073
mov rbx, qword [rsp + 0x80]
cdqe
lea rsi, [rax + rax*4]
mov edi, dword [rbx + rsi*4]
mov eax, edi
and eax, 0xffffff00
cmp eax, 0xda00
je 0x140051fc1
cmp eax, 0xd900
je 0x140051fa9
cmp eax, 0xd800
jne 0x140051fd8
mov rax, qword [r12 + 0x10c8]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x214
jmp 0x140051fd5
mov rax, qword [r12 + 0x10c8]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x614
jmp 0x140051fd5
mov rax, qword [r12 + 0x10c8]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x14
movzx edi, word [rax]
movsxd rbp, r13d
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r14
lea rdx, [rsp + 0xe8]
mov r9, rbp
call fcn.14001191d
mov r14, rax
lea eax, [rdi - 0x10001]
cmp eax, 0xffffe
ja 0x14005203a
add edi, 0xffff0000
mov eax, edi
shr eax, 0xa
add eax, 0xffffd800
lea r13d, [rbp + 1]
and edi, 0x3ff
or edi, 0xdc00
mov word [r14 + rbp*2 + 2], di
jmp 0x14005203c
mov eax, edi
lea rbx, [rbx + rsi*4]
mov word [r14 + rbp*2], ax
inc r13d
mov eax, dword [rbx + 0x10]
test eax, eax
jne 0x140051f6c
or dword [rsp + 0x50], 0x80000000
mov rsi, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov ebx, dword [rsp + 0x54]
jmp 0x140052085
mov rsi, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
mov al, byte [rsp + 0x68]
test al, al
jne 0x14005214a
mov rax, qword [r12 + 0x28]
mov rcx, qword [rax + rdi*8]
mov edx, ebp
mov r8, qword [rsp + 0x80]
call fcn.14005b3ce
mov rax, qword [r12 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x88]
mov dword [rax + rdx], ecx
mov rax, qword [r12 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov dword [rax + rdx + 4], ebx
mov rax, qword [r12 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov cl, byte [rsp + 0x4c]
mov byte [rax + rdx + 8], cl
mov cl, byte [rsp + 0x4a]
mov byte [rax + rdx + 9], cl
mov cl, byte [rsp + 0x49]
mov byte [rax + rdx + 0xa], cl
mov cl, byte [rsp + 0x48]
mov byte [rax + rdx + 0xb], cl
mov cl, byte [rsp + 0x47]
mov byte [rax + rdx + 0xc], cl
mov cl, byte [rsp + 0x46]
mov byte [rax + rdx + 0xd], cl
mov cl, byte [rsp + 0x45]
mov byte [rax + rdx + 0xe], cl
mov cl, byte [rsp + 0x44]
mov byte [rax + rdx + 0xf], cl
cmp dword [rsp + 0x7c], ebp
jne 0x14005214a
mov rax, qword [r12 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0xd8]
or dword [rax + rcx*4 + 4], 0x80000000
bt ebx, 0x16
jae 0x1400521d5
inc ebp
cmp ebp, dword [r12 + 0x178]
jge 0x1400521d5
add qword [rsp + 0x80], 0x14
cmp rdi, qword [rsp + 0xd0]
jne 0x140052190
cmp ebp, esi
jne 0x140052190
mov r8d, 0x1672
lea rcx, str.__i__our_curs_y__j__our_curs_x_
lea rdx, str..._terminal.c
call fcn.140089884
mov rax, qword [r12 + 0x28]
mov rbx, qword [rax + rdi*8]
movsxd rax, ebp
lea rcx, [rax + rax*4]
shl rcx, 2
add rcx, qword [rbx + 0x18]
mov rsi, qword [rsp + 0x80]
mov r8d, dword [rsi]
mov r9d, dword [rsi + 4]
mov rdx, rsi
call fcn.14005c589
test al, al
jne 0x1400521c8
mov byte [rsp + 0x58], 1
mov rcx, rbx
mov edx, ebp
mov r8, rsi
call fcn.14005b3ce
inc ebp
cmp ebp, dword [r12 + 0x178]
jl 0x140051b37
test byte [rsp + 0x58], 1
mov rsi, qword [rsp + 0xa8]
je 0x140052288
test r13d, r13d
jle 0x140052288
movzx eax, byte [rsp + 0x48]
shl rax, 0x18
movzx ecx, byte [rsp + 0x49]
shl rcx, 0x10
or rcx, rax
movzx eax, byte [rsp + 0x4a]
shl rax, 8
or rax, rcx
movzx ecx, byte [rsp + 0x4c]
or rcx, rax
movzx eax, byte [rsp + 0x44]
shl eax, 0x18
movzx edx, byte [rsp + 0x45]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsp + 0x46]
shl eax, 8
or eax, edx
movzx edx, byte [rsp + 0x47]
or edx, eax
shl rdx, 0x20
or rdx, rcx
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x38], rdx
mov rcx, r12
mov rdx, rsi
mov r8d, dword [rsp + 0x7c]
mov r9d, edi
call fcn.14005c3f3
jmp 0x140052288
mov rsi, qword [rsp + 0xa8]
cmp byte [rsi + 0xc], 0
je 0x14005229f
mov rcx, qword [rsi + 0x18]
call fcn.140011913
mov rcx, rsi
call fcn.140011913
inc rdi
movsxd rax, dword [r12 + 0x174]
cmp rdi, rax
jl 0x14005153b
mov rcx, r15
call fcn.140011913
mov rcx, r14
call fcn.140011913
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.14007de70
nop
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret