Function at 0x140055d6d
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 r14, rcx
mov rax, qword [0x1400d80e0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0xe8], 0x400
xor eax, eax
mov qword [rsp + 0xc0], rax
mov ecx, 0x400
mov edx, 2
xor r8d, r8d
call fcn.140012388
mov r12, rax
movsxd rcx, dword [r14 + 0x178]
mov edx, 0x14
xor r8d, r8d
call fcn.140012388
mov cl, byte [r14 + 0xf2]
cmp cl, byte [r14 + 0x181]
mov r13, rax
setne r15b
cmp byte [r14 + 0xf8], 0
je 0x140055e3e
cmp byte [r14 + 0x180], 0
je 0x140055e1e
mov eax, 0x40000000
cmp byte [r14 + 0xfb], 0
jne 0x140055e23
xor eax, eax
cmp byte [r14 + 0x116e], 0
sete al
shl eax, 0x1e
jmp 0x140055e23
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [r14 + 0xe2], 0
cmove ecx, eax
mov qword [rsp + 0xc0], rcx
movsxd rdx, dword [r14 + 0xc8]
movsxd rax, dword [r14 + 0x20]
mov rbp, rdx
sub rbp, rax
mov rcx, r14
mov r8d, 0x16a0
xor r9d, r9d
call fcn.14005801e
mov rbx, rax
mov esi, dword [r14 + 0xcc]
mov rcx, r14
mov rdx, rax
mov r8d, ebp
call fcn.14005ac00
test rax, rax
je 0x140055e98
movsxd rcx, esi
mov rdx, qword [r14 + 0x1130]
mov rdi, rbp
shl rdi, 5
mov rdx, qword [rdx + rdi + 0x10]
mov esi, dword [rdx + rcx*4]
jmp 0x140055e9c
mov rax, qword [rbx + 0x18]
test esi, esi
jle 0x140055eb4
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 + 0xa0], rax
cmp byte [rbx + 0xc], 0
je 0x140055ed5
mov rcx, qword [rbx + 0x18]
call fcn.140012402
mov rcx, rbx
call fcn.140012402
mov ecx, dword [r14 + 0x34]
test ecx, ecx
mov esi, 0
js 0x140055f5c
mov eax, dword [r14 + 0x30]
mov rdx, qword [rsp + 0xc0]
cmp dword [r14 + 0x38], edx
jne 0x140055f01
cmp ecx, ebp
jne 0x140055f01
cmp eax, dword [rsp + 0xa0]
je 0x140055f5c
movsxd rdx, eax
mov rbx, qword [r14 + 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 0x140055f2f
cmp dword [rbx], 0xdfff
jne 0x140055f2f
or dword [rbx - 0x10], 0x3ffff
mov eax, dword [r14 + 0x30]
mov edi, dword [r14 + 0x178]
dec edi
cmp eax, edi
jge 0x140055f4c
cmp dword [rbx + 0x14], 0xdfff
jne 0x140055f4c
or dword [rbx + 0x18], 0x3ffff
or dword [rcx + rdx*4 + 4], 0x3ffff
mov dword [r14 + 0x38], 0
mov qword [r14 + 0x30], 0xffffffffffffffff
cmp dword [r14 + 0x174], 0
jle 0x140056d28
mov sil, r15b
shl esi, 0x14
mov dword [rsp + 0xb0], esi
mov qword [rsp + 0xd8], rbp
mov eax, ebp
mov qword [rsp + 0xd0], rax
xor esi, esi
mov qword [rsp + 0xa8], r13
mov edx, dword [r14 + 0x20]
add edx, esi
mov rcx, r14
mov dword [rsp + 0x54], edx
mov r8d, 0x16d6
xor r9d, r9d
call fcn.14005801e
mov rdi, rax
mov rcx, r14
mov rdx, rax
mov r8d, esi
call fcn.14005ac00
test rax, rax
mov qword [rsp + 0xb8], rdi
je 0x140055fe9
mov rdx, qword [r14 + 0x1130]
mov rcx, rsi
shl rcx, 5
mov r11, qword [rdx + rcx + 0x18]
jmp 0x140055ff0
mov rax, qword [rdi + 0x18]
xor r11d, r11d
mov r9d, dword [r14 + 0x178]
test r9d, r9d
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0xc8], rax
jle 0x1400564c4
mov ebx, 4
xor r13d, r13d
mov r10d, dword [rsp + 0xb0]
test r11, r11
je 0x140056028
mov r8d, dword [r11 + r13*4]
jmp 0x14005602b
mov r8d, r13d
mov ecx, dword [rax + rbx*4 - 0xc]
mov ebp, ecx
and ebp, 0xfffc0000
or ebp, 0x20500
cmp byte [r14 + 0x1141], 0
cmovne ebp, ecx
cmp byte [r14 + 0x11a3], 0
jne 0x140056093
mov ecx, ebp
mov esi, 0x1ff
and ecx, esi
add ecx, 0xfffffff0
mov edx, ebp
and edx, 0xfffffe00
or edx, 0x100
mov edi, 0xf0
cmp ecx, edi
cmovae edx, ebp
mov ecx, edx
shr ecx, 9
and ecx, esi
add ecx, 0xfffffff0
mov ebp, edx
and ebp, 0xfffc01ff
or ebp, 0x20400
cmp ecx, edi
cmovae ebp, edx
cmp byte [r14 + 0x11a4], 0
je 0x1400560de
mov cl, byte [rax + rbx*4 - 8]
mov dword [rsp + 0x58], ecx
mov cl, byte [rax + rbx*4 - 7]
mov dword [rsp + 0x5c], ecx
mov cl, byte [rax + rbx*4 - 6]
mov dword [rsp + 0x80], ecx
mov cl, byte [rax + rbx*4 - 5]
mov dl, byte [rax + rbx*4 - 4]
mov dword [rsp + 0x60], edx
mov dl, byte [rax + rbx*4 - 3]
mov dword [rsp + 0x64], edx
mov dl, byte [rax + rbx*4 - 2]
mov dword [rsp + 0x88], edx
mov r15b, byte [rax + rbx*4 - 1]
jmp 0x140056119
xor ecx, ecx
mov dword [rsp + 0x80], 0
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x58], 0
xor r15d, r15d
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x60], 0
mov edi, dword [rax + rbx*4 - 0x10]
mov esi, edi
and esi, 0xffffff00
cmp esi, 0xda00
mov dword [rsp + 0x78], ecx
je 0x140056171
cmp esi, 0xd900
je 0x140056159
cmp esi, 0xd800
jne 0x140056187
mov rcx, qword [r14 + 0x10d0]
movzx edx, dil
lea rdi, [rcx + rdx*2]
add rdi, 0x214
jmp 0x140056184
mov rcx, qword [r14 + 0x10d0]
movzx edx, dil
lea rdi, [rcx + rdx*2]
add rdi, 0x614
jmp 0x140056184
mov rcx, qword [r14 + 0x10d0]
movzx edx, dil
lea rdi, [rcx + rdx*2]
add rdi, 0x14
movzx edi, word [rdi]
dec r9d
movsxd rcx, r9d
cmp r13, rcx
jge 0x1400561a5
mov ecx, ebp
or ecx, 0x400000
cmp dword [rax + rbx*4 + 4], 0xdfff
cmove ebp, ecx
mov eax, dword [r14 + 0xe74]
and eax, 0xfffffffe
cmp eax, 2
mov dword [rsp + 0x90], r15d
jne 0x140056255
cmp dword [r14 + 0xe78], 0
mov rax, qword [r14 + 0xe80]
je 0x140056200
cmp dword [rsp + 0x54], eax
jl 0x140056255
shr rax, 0x20
cmp r8d, eax
jl 0x140056255
mov rsi, qword [r14 + 0xe88]
mov r15d, ebp
xor r15d, r10d
xor eax, eax
cmp dword [rsp + 0x54], esi
jg 0x14005625d
shr rsi, 0x20
cmp r8d, esi
jl 0x14005624e
jmp 0x14005625d
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 0x140056255
mov rax, qword [r14 + 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, ebp
xor r15d, r10d
xor eax, eax
test dl, dl
je 0x14005625d
mov eax, 0x100000
jmp 0x14005625d
mov r15d, ebp
xor r15d, r10d
xor eax, eax
xor r15d, eax
cmp byte [r14 + 0xfd], 0
je 0x1400562a5
and ebp, 0x200000
je 0x1400562a5
cmp byte [r14 + 0x180], 0
mov rsi, qword [rsp + 0xa0]
je 0x14005629c
cmp byte [r14 + 0xfc], 0
je 0x14005629c
mov rax, qword [r14 + 0x10d0]
movzx edi, word [rax + 0x254]
and r15d, 0xffdfffff
jmp 0x1400562ad
mov rsi, qword [rsp + 0xa0]
mov rax, qword [r14 + 0x28]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
cmp edi, dword [rax + rbx*4 - 0x10]
jne 0x1400562df
mov eax, dword [rax + rbx*4 - 0xc]
mov ecx, eax
and ecx, 0xf7fffff
cmp r15d, ecx
jne 0x1400562df
and eax, 0x800000
or r15d, eax
jmp 0x140056313
bt r15d, 0x16
jb 0x140056313
mov rcx, qword [r14 + 0x10c0]
mov rax, qword [rcx]
mov edx, edi
mov rbp, r11
call qword [rax + 0x20]
mov r11, rbp
mov r10d, dword [rsp + 0xb0]
mov ecx, r15d
or ecx, 0x800000
cmp eax, 2
cmove r15d, ecx
mov ecx, dword [rsp + 0x78]
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0xd0]
jne 0x14005634a
cmp rsi, r13
jne 0x14005634a
mov rax, qword [rsp + 0xc0]
or r15d, eax
mov dword [r14 + 0x38], eax
mov dword [r14 + 0x30], esi
mov rax, qword [rsp + 0xd8]
mov dword [r14 + 0x34], eax
mov edx, dword [rsp + 0x80]
mov ebp, dword [rsp + 0x5c]
mov esi, dword [rsp + 0x58]
mov rax, qword [rsp + 0xa8]
mov dword [rax + rbx*4 - 0xc], r15d
mov dword [rax + rbx*4 - 0x10], edi
mov byte [rax + rbx*4 - 8], sil
mov byte [rax + rbx*4 - 7], bpl
mov byte [rax + rbx*4 - 6], dl
mov byte [rax + rbx*4 - 5], cl
mov ecx, dword [rsp + 0x60]
mov byte [rax + rbx*4 - 4], cl
mov ecx, dword [rsp + 0x64]
mov byte [rax + rbx*4 - 3], cl
mov ecx, dword [rsp + 0x88]
mov byte [rax + rbx*4 - 2], cl
mov ecx, dword [rsp + 0x90]
mov byte [rax + rbx*4 - 1], cl
mov dword [rax + rbx*4], 0
inc r13
movsxd r9, dword [r14 + 0x178]
add rbx, 5
cmp r13, r9
mov rsi, qword [rsp + 0x68]
mov rax, qword [rsp + 0xc8]
jl 0x14005601d
test r9d, r9d
mov r13, qword [rsp + 0xa8]
jle 0x1400564c4
xor ecx, ecx
xor edi, edi
xor r8d, r8d
mov edx, r8d
mov rbp, qword [r14 + 0x28]
mov rbp, qword [rbp + rsi*8]
mov rbp, qword [rbp + 0x18]
lea rbx, [rcx*4]
lea rax, [rbx + rbx*4]
mov ebx, dword [rbp + rax]
mov r11d, dword [rbp + rax + 4]
test r11d, r11d
mov r8d, ecx
cmovns r8d, edx
movzx r10d, dil
mov edx, 0
cmovs r10d, edx
cmp ebx, dword [r13 + rax]
jne 0x140056447
mov eax, r11d
and eax, 0xfffffff
lea rbx, [rcx + rcx*4]
mov edx, r10d
and dl, 1
cmp eax, dword [r13 + rbx*4 + 4]
je 0x140056497
test dl, dl
je 0x14005644d
jmp 0x140056497
test r10b, 1
jne 0x14005648f
movsxd rax, r8d
mov r10b, 1
cmp rcx, rax
jle 0x14005649b
lea rdx, [rax + rax*4]
lea rdi, [rdx*4 + 4]
or dword [rbp + rdi], 0x3ffff
inc rax
mov rdx, qword [r14 + 0x28]
mov rdx, qword [rdx + rsi*8]
mov rbp, qword [rdx + 0x18]
add rdi, 0x14
cmp rcx, rax
jne 0x140056464
lea rax, [rcx + rcx*4]
mov r11d, dword [rbp + rax*4 + 4]
jmp 0x14005649b
mov edx, edi
and dl, 1
mov r10d, edi
test dl, dl
je 0x1400564b2
lea rax, [rcx + rcx*4]
or r11d, 0x3ffff
mov dword [rbp + rax*4 + 4], r11d
mov r9d, dword [r14 + 0x178]
inc rcx
movsxd rax, r9d
mov edi, r10d
cmp rcx, rax
jl 0x1400563e5
mov rax, qword [rsp + 0xb8]
movzx eax, word [rax]
mov rcx, qword [r14 + 0x28]
mov rcx, qword [rcx + rsi*8]
cmp ax, word [rcx]
setne dl
mov word [rcx], ax
cmp dword [r14 + 0x178], 0
jle 0x140056cef
mov al, byte [r14 + 0x9b]
mov byte [rsp + 0x4d], al
mov al, byte [r14 + 0x9a]
mov byte [rsp + 0x4e], al
mov al, byte [r14 + 0x99]
mov byte [rsp + 0x4f], al
mov al, byte [r14 + 0x98]
mov byte [rsp + 0x50], al
mov al, byte [r14 + 0x97]
mov byte [rsp + 0x51], al
mov al, byte [r14 + 0x96]
mov byte [rsp + 0x52], al
mov al, byte [r14 + 0x94]
mov byte [rsp + 0x58], al
mov al, byte [r14 + 0x95]
mov byte [rsp + 0x53], al
xor ebp, ebp
mov dword [rsp + 0x9c], 0
xor r15d, r15d
mov dword [rsp + 0x74], 0
mov dword [rsp + 0xb4], 0
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x54], edx
mov eax, edx
mov dword [rsp + 0x64], eax
mov qword [rsp + 0x90], rbp
movsxd rbx, ebp
lea rax, [rbx*4]
lea rdi, [rax + rax*4]
mov ebp, dword [r13 + rdi + 4]
mov rax, qword [r14 + 0x28]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rax + rcx*8]
mov r9, qword [rax + 0x18]
mov r10d, dword [r9 + rdi + 4]
mov ecx, r10d
xor ecx, ebp
bt ecx, 0x16
mov ecx, dword [rsp + 0x64]
movzx ecx, cl
mov eax, 1
cmovb ecx, eax
mov dword [rsp + 0x64], ecx
mov dword [rsp + 0x60], ebp
mov ecx, ebp
xor ecx, dword [rsp + 0x5c]
test dword [r14 + 0x1098], ecx
setne cl
mov r8b, byte [r13 + rdi + 8]
mov al, byte [rsp + 0x58]
and al, 1
cmp r8b, al
jne 0x140056640
lea rbp, [rbx + rbx*4]
mov al, byte [rsp + 0x53]
cmp byte [r13 + rbp*4 + 9], al
jne 0x140056640
mov al, byte [rsp + 0x52]
cmp byte [r13 + rbp*4 + 0xa], al
jne 0x140056640
mov al, byte [rsp + 0x51]
cmp byte [r13 + rbp*4 + 0xb], al
jne 0x140056640
mov al, byte [rsp + 0x50]
and al, 1
cmp byte [r13 + rbp*4 + 0xc], al
jne 0x140056640
mov al, byte [rsp + 0x4f]
cmp byte [r13 + rbp*4 + 0xd], al
jne 0x140056640
mov al, byte [rsp + 0x4e]
cmp byte [r13 + rbp*4 + 0xe], al
jne 0x140056640
mov al, byte [rsp + 0x4d]
cmp byte [r13 + rbp*4 + 0xf], al
je 0x140056642
mov cl, 1
mov esi, dword [r13 + rdi]
lea eax, [rsi - 0x23ba]
cmp eax, 4
jb 0x140056675
mov rax, qword [rsp + 0x90]
test eax, eax
jle 0x140056677
dec eax
lea rax, [rax + rax*4]
mov eax, dword [r13 + rax*4]
mov ebp, 0xffffdc46
add eax, ebp
cmp eax, 3
ja 0x140056677
mov cl, 1
mov eax, esi
and eax, 0xfffffc00
mov ebp, esi
and ebp, 0xfffffe00
mov qword [rsp + 0x80], rsi
and esi, 0xffffff00
cmp ebp, 0xdc00
mov r13d, 0
cmove r13d, esi
cmp eax, 0xd800
cmove r13d, esi
cmp r13d, dword [rsp + 0xb4]
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov rax, qword [rsp + 0xc8]
lea rsi, [rax + rdi]
lea rdx, [rbx + rbx*4]
cmp dword [rax + rdx*4 + 0x10], 0
je 0x140056793
mov cl, 1
cmp dword [rsi], 0xdffe
jne 0x1400566e9
mov cl, 1
jmp 0x140056705
cmp dword [rsp + 0x90], 2
jl 0x140056705
cmp dword [rsi - 0x14], 0xdfff
jne 0x140056705
cmp dword [rsi - 0x28], 0xdffe
je 0x1400566e5
mov qword [rsp + 0x88], rdx
mov rax, qword [r14 + 0x10d0]
mov r11b, byte [rax + 8]
mov eax, dword [rsp + 0x64]
mov ebp, eax
and bpl, 1
mov eax, r11d
or al, bpl
mov qword [rsp + 0xe0], rdi
mov eax, dword [rsp + 0x54]
mov qword [rsp + 0x78], rsi
jne 0x140056776
mov rdx, qword [rsp + 0x80]
mov ebx, ebp
mov rbp, qword [rsp + 0x88]
cmp dword [r9 + rbp*4], edx
mov ebp, ebx
jne 0x140056763
and r10d, 0xfffffff
cmp r10d, dword [rsp + 0x60]
je 0x14005677e
test al, 1
jne 0x140056776
cmp r15d, 1
jne 0x140056776
mov sil, 1
test al, 1
je 0x140056782
jmp 0x1400567bc
test cl, cl
je 0x1400568f9
test al, 1
jne 0x1400567b0
xor esi, esi
test byte [rsp + 0x9c], 1
jne 0x1400567b3
jmp 0x14005686d
cmp dword [rsp + 0x90], 0
jle 0x1400566dd
cmp dword [rsi - 4], 0
jne 0x1400566db
jmp 0x1400566dd
mov sil, 1
test r15d, r15d
jle 0x14005686d
mov rax, qword [rsp + 0xa8]
lea rbx, [rax + rdi]
add rbx, 8
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 + 0x58]
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 + 0x5c]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], rdx
mov rcx, r14
mov rdx, qword [rsp + 0xb8]
mov r8d, dword [rsp + 0x74]
mov rdi, qword [rsp + 0x68]
mov r9d, edi
call fcn.1400614a8
mov r8b, byte [rbx]
mov rax, qword [r14 + 0x10d0]
mov r11b, byte [rax + 8]
mov rax, qword [r14 + 0x28]
mov rax, qword [rax + rdi*8]
mov r9, qword [rax + 0x18]
mov rax, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0x88]
mov cl, byte [rax + rdx*4 + 9]
mov byte [rsp + 0x53], cl
mov cl, byte [rax + rdx*4 + 0xa]
mov byte [rsp + 0x52], cl
mov cl, byte [rax + rdx*4 + 0xb]
mov byte [rsp + 0x51], cl
mov cl, byte [rax + rdx*4 + 0xc]
mov byte [rsp + 0x50], cl
mov cl, byte [rax + rdx*4 + 0xd]
mov byte [rsp + 0x4f], cl
mov cl, byte [rax + rdx*4 + 0xe]
mov byte [rsp + 0x4e], cl
mov al, byte [rax + rdx*4 + 0xf]
mov byte [rsp + 0x4d], al
test r11b, r11b
movzx eax, byte [rsp + 0x9c]
movzx ecx, sil
cmove ecx, eax
mov dword [rsp + 0x9c], ecx
xor r15d, r15d
mov ebx, dword [rsp + 0x60]
mov dword [rsp + 0x5c], ebx
mov rax, qword [rsp + 0x90]
mov dword [rsp + 0x74], eax
mov byte [rsp + 0x58], r8b
mov dword [rsp + 0xb4], r13d
mov rsi, qword [rsp + 0x78]
jmp 0x140056907
mov ebp, eax
mov ebx, dword [rsp + 0x60]
mov rdx, qword [rsp + 0x88]
lea rcx, [r9 + rdx*4]
mov rdx, rsi
mov rdi, qword [rsp + 0x80]
mov r8d, edi
mov r9d, ebx
call fcn.14006163e
movzx ecx, bpl
mov r13d, eax
test al, al
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0x54], ecx
movsxd rbp, r15d
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r12
lea rdx, [rsp + 0xe8]
mov r9, rbp
call fcn.14001240c
mov r12, rax
lea eax, [rdi - 0x10001]
cmp eax, 0xffffe
ja 0x140056998
lea eax, [rdi + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
lea r15d, [rbp + 1]
mov ecx, edi
and ecx, 0x3ff
or ecx, 0xdc00
mov word [r12 + rbp*2 + 2], cx
jmp 0x14005699a
mov eax, edi
mov rcx, qword [rsp + 0xc8]
mov rdx, qword [rsp + 0x88]
lea rcx, [rcx + rdx*4]
add rcx, 0x10
mov word [r12 + rbp*2], ax
inc r15d
mov eax, dword [rcx]
test eax, eax
je 0x140056ac7
mov rbx, rsi
cdqe
lea rsi, [rax + rax*4]
mov edi, dword [rbx + rsi*4]
mov eax, edi
and eax, 0xffffff00
cmp eax, 0xda00
je 0x140056a1a
cmp eax, 0xd900
je 0x140056a03
cmp eax, 0xd800
jne 0x140056a30
mov rax, qword [r14 + 0x10d0]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x214
jmp 0x140056a2d
mov rax, qword [r14 + 0x10d0]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x614
jmp 0x140056a2d
mov rax, qword [r14 + 0x10d0]
movzx ecx, dil
lea rax, [rax + rcx*2]
add rax, 0x14
movzx edi, word [rax]
movsxd rbp, r15d
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 2
mov r8d, 2
mov rcx, r12
lea rdx, [rsp + 0xe8]
mov r9, rbp
call fcn.14001240c
mov r12, rax
lea eax, [rdi - 0x10001]
cmp eax, 0xffffe
ja 0x140056a90
lea eax, [rdi + 0x3ff0000]
shr eax, 0xa
add eax, 0xffffd800
lea r15d, [rbp + 1]
and edi, 0x3ff
or edi, 0xdc00
mov word [r12 + rbp*2 + 2], di
jmp 0x140056a92
mov eax, edi
lea rbx, [rbx + rsi*4]
mov word [r12 + rbp*2], ax
inc r15d
mov eax, dword [rbx + 0x10]
test eax, eax
jne 0x1400569c7
or dword [rsp + 0x5c], 0x80000000
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x90]
mov ebx, dword [rsp + 0x60]
jmp 0x140056ad7
mov rsi, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x90]
test r13b, r13b
jne 0x140056b9b
mov rax, qword [r14 + 0x28]
mov rdi, qword [rsp + 0x68]
mov rcx, qword [rax + rdi*8]
mov edx, ebp
mov r8, qword [rsp + 0x78]
call fcn.1400602d7
mov rax, qword [r14 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov rdx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x80]
mov dword [rax + rdx], ecx
mov rax, qword [r14 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov dword [rax + rdx + 4], ebx
mov rax, qword [r14 + 0x28]
mov rax, qword [rax + rdi*8]
mov rax, qword [rax + 0x18]
mov cl, byte [rsp + 0x58]
mov byte [rax + rdx + 8], cl
mov cl, byte [rsp + 0x53]
mov byte [rax + rdx + 9], cl
mov cl, byte [rsp + 0x52]
mov byte [rax + rdx + 0xa], cl
mov cl, byte [rsp + 0x51]
mov byte [rax + rdx + 0xb], cl
mov cl, byte [rsp + 0x50]
mov byte [rax + rdx + 0xc], cl
mov cl, byte [rsp + 0x4f]
mov byte [rax + rdx + 0xd], cl
mov cl, byte [rsp + 0x4e]
mov byte [rax + rdx + 0xe], cl
mov cl, byte [rsp + 0x4d]
mov byte [rax + rdx + 0xf], cl
cmp dword [rsp + 0x74], ebp
jne 0x140056b9b
mov rax, qword [r14 + 0x28]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rax + rcx*8]
mov rax, qword [rax + 0x18]
mov rcx, qword [rsp + 0x88]
or dword [rax + rcx*4 + 4], 0x80000000
bt ebx, 0x16
mov r13, qword [rsp + 0xa8]
jae 0x140056c40
inc ebp
cmp ebp, dword [r14 + 0x178]
jge 0x140056c40
add qword [rsp + 0x78], 0x14
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0xd0]
jne 0x140056bee
cmp ebp, esi
jne 0x140056bee
lea rcx, str.__i__our_curs_y__j__our_curs_x_
lea rdx, str..._terminal.c
mov r8d, 0x17f8
call fcn.14008ff98
mov rax, qword [r14 + 0x28]
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rax + rcx*8]
movsxd rax, ebp
lea rcx, [rax + rax*4]
shl rcx, 2
add rcx, qword [rbx + 0x18]
mov rsi, qword [rsp + 0x78]
mov r8d, dword [rsi]
mov r9d, dword [rsi + 4]
mov rdx, rsi
call fcn.14006163e
mov ecx, dword [rsp + 0x54]
movzx ecx, cl
test al, al
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0x54], ecx
mov rcx, rbx
mov edx, ebp
mov r8, rsi
call fcn.1400602d7
inc ebp
cmp ebp, dword [r14 + 0x178]
jl 0x14005657b
test byte [rsp + 0x54], 1
mov rdi, qword [rsp + 0xb8]
je 0x140056cf9
test r15d, r15d
jle 0x140056cf9
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 + 0x58]
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 + 0x5c]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x38], rdx
mov rcx, r14
mov rdx, rdi
mov r8d, dword [rsp + 0x74]
mov rsi, qword [rsp + 0x68]
mov r9d, esi
call fcn.1400614a8
jmp 0x140056cfe
mov rdi, qword [rsp + 0xb8]
jmp 0x140056cfe
mov rsi, qword [rsp + 0x68]
cmp byte [rdi + 0xc], 0
je 0x140056d15
mov rcx, qword [rdi + 0x18]
call fcn.140012402
mov rcx, rdi
call fcn.140012402
inc rsi
movsxd rax, dword [r14 + 0x174]
cmp rsi, rax
jl 0x140055f9b
mov rcx, r13
call fcn.140012402
mov rcx, r12
call fcn.140012402
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.140084030
nop
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret