Function at 0x180019b00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov rbx, qword [0x180277178]
movzx eax, byte [rbx]
test al, al
jne 0x180019b8a
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x180019b8a
cmp esi, 0xff
ja 0x18001ac7b
mov ecx, esi
or ecx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ecx
jne 0x18001ac7b
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
lea rax, [0x18028e9b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x30]
call fcn.180019a60
movzx eax, byte [rbx]
test al, al
jne 0x180019ba0
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001ac11
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b799
mov rax, qword [0x18028e928]
mov qword [rsp + 0x48], rax
mov r15d, 9
lea rsi, str.top_addst
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x50], rdx
lea r13, [rdx - 8]
mov r12, 0xffffffffffffffff
nop dword [rax]
test r14, r14
je 0x180019c60
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 9
cmovae r8, r15
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r13, 0x20
inc r12
mov rax, rbx
cmp cl, 1
je 0x180019c00
movzx eax, cl
test eax, eax
je 0x180019c8b
jmp 0x180019c65
mov r12, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
sub rax, 1
jb 0x18001b799
mov qword [rsp + 0x48], rax
mov rdx, qword [rdx + r12*8 + 0x278]
jmp 0x180019bce
cmp qword [r13 - 8], 4
jne 0x180019cc6
mov rax, qword [r13 - 0x10]
mov rcx, qword [r13]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x180019cc9
xor r8d, r8d
mov rbx, qword [0x180277178]
lea rdx, [0x180277030]
lea rcx, [rsp + 0x30]
call fcn.1800650b0
mov rax, qword [rsp + 0x30]
movabs rsi, 0x800000000000000d
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x180277040]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [rbx]
test al, al
jne 0x180019d91
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x180019d91
cmp esi, 0xff
ja 0x18001ad25
mov ecx, esi
or ecx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ecx
jne 0x18001ad25
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
lea rax, [0x18028e9b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x30]
call fcn.180019a60
movzx eax, byte [rbx]
test al, al
jne 0x180019da7
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001acbb
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7a5
mov rax, qword [0x18028e928]
mov qword [rsp + 0x50], rax
mov r12d, 7
lea rsi, str.addcharsrchooks.rs
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x48], rdx
lea r15, [rdx - 8]
mov r13, 0xffffffffffffffff
nop word cs:[rax + rax]
test r14, r14
je 0x180019e70
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 7
cmovae r8, r12
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r15, 0x20
inc r13
mov rax, rbx
cmp cl, 1
je 0x180019e10
movzx eax, cl
test eax, eax
je 0x180019e9b
jmp 0x180019e75
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
sub rax, 1
jb 0x18001b7a5
mov qword [rsp + 0x50], rax
mov rdx, qword [rdx + r13*8 + 0x278]
jmp 0x180019dd5
cmp qword [r15 - 8], 4
jne 0x180019ed5
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x180019ed8
xor r8d, r8d
mov rbx, qword [0x180277178]
movabs rsi, 0x800000000000000d
lea rdx, section..data
lea rcx, [rsp + 0x30]
call fcn.180065770
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x180277010]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [rbx]
test al, al
jne 0x180019fa0
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x180019fa0
cmp esi, 0xff
ja 0x18001ae11
mov ecx, esi
or ecx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ecx
jne 0x18001ae11
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
lea rax, [0x18028e9b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x30]
call fcn.180019a60
movzx eax, byte [rbx]
test al, al
jne 0x180019fb6
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001ada7
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7b1
mov rax, qword [0x18028e928]
mov qword [rsp + 0x48], rax
mov r12d, 0xc
lea rsi, str.addchar_flag
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x50], rdx
lea r15, [rdx - 8]
mov r13, 0xffffffffffffffff
nop word cs:[rax + rax]
test r14, r14
je 0x18001a080
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 0xc
cmovae r8, r12
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r15, 0x20
inc r13
mov rax, rbx
cmp cl, 1
je 0x18001a020
movzx eax, cl
test eax, eax
je 0x18001a0ab
jmp 0x18001a085
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
sub rax, 1
jb 0x18001b7b1
mov qword [rsp + 0x48], rax
mov rdx, qword [rdx + r13*8 + 0x278]
jmp 0x180019fe4
cmp qword [r15 - 8], 4
jne 0x18001a0e5
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x18001a0e8
xor r8d, r8d
mov rbx, qword [0x180277178]
movabs rsi, 0x800000000000000d
lea rdx, [0x180277018]
lea rcx, [rsp + 0x30]
call fcn.180064d50
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x180277028]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [rbx]
test al, al
jne 0x18001a1b0
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x18001a1b0
cmp esi, 0xff
ja 0x18001aefd
mov ecx, esi
or ecx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ecx
jne 0x18001aefd
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
lea rax, [0x18028e9b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x30]
call fcn.180019a60
movzx eax, byte [rbx]
test al, al
jne 0x18001a1c6
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001ae93
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7bd
mov rax, qword [0x18028e928]
mov qword [rsp + 0x48], rax
mov r12d, 0xc
lea rsi, str.gps_allocate
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x50], rdx
lea r15, [rdx - 8]
mov r13, 0xffffffffffffffff
nop word cs:[rax + rax]
test r14, r14
je 0x18001a290
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 0xc
cmovae r8, r12
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r15, 0x20
inc r13
mov rax, rbx
cmp cl, 1
je 0x18001a230
movzx eax, cl
test eax, eax
je 0x18001a2bb
jmp 0x18001a295
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
sub rax, 1
jb 0x18001b7bd
mov qword [rsp + 0x48], rax
mov rdx, qword [rdx + r13*8 + 0x278]
jmp 0x18001a1f4
cmp qword [r15 - 8], 4
jne 0x18001a2f5
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x18001a2f8
xor r8d, r8d
mov r14, qword [0x180277178]
movabs rsi, 0x800000000000000d
lea rdx, [0x180277078]
lea rcx, [rsp + 0x30]
call fcn.180064690
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x180277088]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [r14]
test al, al
jne 0x18001a3d5
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x18001a3d5
cmp esi, 0xff
ja 0x18001afe9
mov ebx, esi
or ebx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ebx
jne 0x18001afe9
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
mov ecx, 1
mov eax, ebx
lock cmpxchg dword [rdi], ecx
je 0x18001a3d5
and esi, 0xdfffffff
xor esi, 0x20000001
mov eax, dword [rdi]
nop dword [rax]
mov ecx, eax
xor ecx, esi
lock cmpxchg dword [rdi], ecx
jne 0x18001a3c0
cmp eax, 0x40000000
jae 0x18001b6b7
movzx eax, byte [r14]
test al, al
jne 0x18001a3ec
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001af7f
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7c9
mov rax, qword [0x18028e928]
mov qword [rsp + 0x48], rax
mov r12d, 0xa
lea rsi, str.update_all
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x50], rdx
lea r15, [rdx - 8]
mov r13, 0xffffffffffffffff
nop dword [rax + rax]
test r14, r14
je 0x18001a4b0
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 0xa
cmovae r8, r12
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r15, 0x20
inc r13
mov rax, rbx
cmp cl, 1
je 0x18001a450
movzx eax, cl
test eax, eax
je 0x18001a4db
jmp 0x18001a4b5
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
sub rax, 1
jb 0x18001b7c9
mov qword [rsp + 0x48], rax
mov rdx, qword [rdx + r13*8 + 0x278]
jmp 0x18001a41a
cmp qword [r15 - 8], 4
jne 0x18001a515
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x18001a518
xor r8d, r8d
mov r14, qword [0x180277178]
movabs rsi, 0x800000000000000d
lea rdx, [0x180277090]
lea rcx, [rsp + 0x30]
call fcn.180065410
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x1802770a0]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [r14]
test al, al
jne 0x18001a5f5
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x18001a5f5
cmp esi, 0xff
ja 0x18001b0dd
mov ebx, esi
or ebx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ebx
jne 0x18001b0dd
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
mov ecx, 1
mov eax, ebx
lock cmpxchg dword [rdi], ecx
je 0x18001a5f5
and esi, 0xdfffffff
xor esi, 0x20000001
mov eax, dword [rdi]
nop dword [rax]
mov ecx, eax
xor ecx, esi
lock cmpxchg dword [rdi], ecx
jne 0x18001a5e0
cmp eax, 0x40000000
jae 0x18001b748
movzx eax, byte [r14]
test al, al
jne 0x18001a60c
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001b073
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7d5
mov rax, qword [0x18028e928]
mov qword [rsp + 0x50], rax
mov r12d, 0xb
lea rsi, str.update_tile
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x48], rdx
lea r15, [rdx - 8]
mov r13, 0xffffffffffffffff
nop dword [rax + rax]
test r14, r14
je 0x18001a6d0
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 0xb
cmovae r8, r12
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r15, 0x20
inc r13
mov rax, rbx
cmp cl, 1
je 0x18001a670
movzx eax, cl
test eax, eax
je 0x18001a6fb
jmp 0x18001a6d5
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
sub rax, 1
jb 0x18001b7d5
mov qword [rsp + 0x50], rax
mov rdx, qword [rdx + r13*8 + 0x278]
jmp 0x18001a63a
cmp qword [r15 - 8], 4
jne 0x18001a735
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x18001a738
xor r8d, r8d
mov rbx, qword [0x180277178]
movabs rsi, 0x800000000000000d
lea rdx, [0x1802770a8]
lea rcx, [rsp + 0x30]
call fcn.1800649f0
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x1802770b8]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [rbx]
test al, al
jne 0x18001a800
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x18001a800
cmp esi, 0xff
ja 0x18001b211
mov ecx, esi
or ecx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ecx
jne 0x18001b211
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
lea rax, [0x18028e9b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x30]
call fcn.180019a60
movzx eax, byte [rbx]
test al, al
jne 0x18001a816
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001b1a7
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7e1
mov rax, qword [0x18028e928]
mov qword [rsp + 0x50], rax
mov r12d, 0x1b
lea rsi, str.mtb_process_string_to_lines
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r14, [rcx + rcx*2]
mov qword [rsp + 0x48], rdx
lea r15, [rdx - 8]
mov r13, 0xffffffffffffffff
nop word cs:[rax + rax]
test r14, r14
je 0x18001a8e0
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 0x1b
cmovae r8, r12
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r14, 0xffffffffffffffe8
add r15, 0x20
inc r13
mov rax, rbx
cmp cl, 1
je 0x18001a880
movzx eax, cl
test eax, eax
je 0x18001a90b
jmp 0x18001a8e5
mov r13, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
sub rax, 1
jb 0x18001b7e1
mov qword [rsp + 0x50], rax
mov rdx, qword [rdx + r13*8 + 0x278]
jmp 0x18001a844
cmp qword [r15 - 8], 4
jne 0x18001a945
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x18001a948
xor r8d, r8d
mov rbx, qword [0x180277178]
movabs rsi, 0x800000000000000d
lea rdx, [0x1802770c0]
lea rcx, [rsp + 0x30]
call fcn.180063910
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x1802770d0]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
movzx eax, byte [rbx]
test al, al
jne 0x18001aa10
mov esi, dword [0x18028e9b8]
test sil, 1
jne 0x18001aa10
cmp esi, 0xff
ja 0x18001b37d
mov ecx, esi
or ecx, 0x20000000
mov eax, esi
lock cmpxchg dword [0x18028e9b8], ecx
jne 0x18001b37d
lea rdi, [0x18028e9b8]
xor ecx, ecx
call sub.kernel32.dll_GetModuleHandleW
mov qword [0x18028e9b0], rax
lea rax, [0x18028e9b0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], 1
lea rcx, [rsp + 0x30]
call fcn.180019a60
movzx eax, byte [rbx]
test al, al
jne 0x18001aa26
mov ecx, dword [0x18028e938]
test cl, 1
je 0x18001b313
mov rdx, qword [0x18028e920]
test rdx, rdx
je 0x18001b7ed
mov rax, qword [0x18028e928]
mov qword [rsp + 0x50], rax
mov r14d, 0xd
lea rsi, [0x1801a0f25]
mov ebp, 0xff
lea rax, [rdx + 0x168]
movzx ecx, word [rdx + 0x272]
mov qword [rsp + 0x70], rcx
lea ecx, [rcx*8]
lea r13, [rcx + rcx*2]
mov qword [rsp + 0x48], rdx
lea r15, [rdx - 8]
mov r12, 0xffffffffffffffff
nop word cs:[rax + rax]
test r13, r13
je 0x18001aaf0
lea rbx, [rax + 0x18]
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
mov rdi, r8
sub rdi, 0xd
cmovae r8, r14
neg rdi
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcmp
cdqe
test eax, eax
cmovne rdi, rax
xor ecx, ecx
test rdi, rdi
setne cl
cmovs ecx, ebp
add r13, 0xffffffffffffffe8
add r15, 0x20
inc r12
mov rax, rbx
cmp cl, 1
je 0x18001aa90
movzx eax, cl
test eax, eax
je 0x18001ab1b
jmp 0x18001aaf5
mov r12, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x50]
sub rax, 1
jb 0x18001b7ed
mov qword [rsp + 0x50], rax
mov rdx, qword [rdx + r12*8 + 0x278]
jmp 0x18001aa54
cmp qword [r15 - 8], 4
jne 0x18001ab55
mov rax, qword [r15 - 0x10]
mov rcx, qword [r15]
mov eax, dword [rax]
mov edx, dword [str.selfviewscreen.child]
bswap eax
bswap edx
xor r9d, r9d
cmp eax, edx
seta r9b
sbb r9d, 0
add rcx, qword [0x18028e9b0]
xor r8d, r8d
test r9d, r9d
cmove r8, rcx
jmp 0x18001ab58
xor r8d, r8d
movabs rsi, 0x800000000000000d
lea rdx, [0x1802770d8]
lea rcx, [rsp + 0x30]
call fcn.180064330
mov rax, qword [rsp + 0x30]
cmp rax, rsi
jne 0x18001abb5
mov rdx, qword [0x1802770e8]
test rdx, rdx
je 0x18001abc8
lea rcx, [rsp + 0x58]
call fcn.180157a80
cmp qword [rsp + 0x58], rsi
jne 0x18001abd7
call fcn.1800216d0
test rax, rax
jne 0x18001abff
call fcn.18001ec50
test rax, rax
jne 0x18001abff
call fcn.18001e360
jmp 0x18001abff
movdqu xmm0, xmmword [rsp + 0x38]
mov qword [rsp + 0x30], rax
movdqu xmmword [rsp + 0x38], xmm0
jmp 0x18001abf5
movabs rax, 0x8000000000000009
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x30]
call fcn.1801957c0
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp ecx, 0xff
ja 0x18001ad65
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001ad65
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x180019ba0
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b251
cmp eax, 2
je 0x180019b8a
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
jmp 0x180019b55
cmp ecx, 0xff
ja 0x18001ae51
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001ae51
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x180019da7
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b3bd
cmp eax, 2
je 0x180019d91
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
jmp 0x180019d5c
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b125
cmp eax, 2
je 0x180019ba0
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001ac45
cmp ecx, 0xff
ja 0x18001af3d
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001af3d
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x180019fb6
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b47f
cmp eax, 2
je 0x180019fa0
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
jmp 0x180019f6b
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b291
cmp eax, 2
je 0x180019da7
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001acef
cmp ecx, 0xff
ja 0x18001b031
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001b031
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x18001a1c6
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b541
cmp eax, 2
je 0x18001a1b0
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
jmp 0x18001a17b
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b3fd
cmp eax, 2
je 0x180019fb6
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001addb
cmp ecx, 0xff
ja 0x18001b165
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001b165
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x18001a3ec
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b5c1
cmp eax, 2
je 0x18001a3d5
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
mov ebx, esi
or ebx, 0x20000000
jmp 0x18001a390
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b4bf
cmp eax, 2
je 0x18001a1c6
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001aec7
cmp ecx, 0xff
ja 0x18001b2d1
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001b2d1
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x18001a60c
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b63c
cmp eax, 2
je 0x18001a5f5
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
mov ebx, esi
or ebx, 0x20000000
jmp 0x18001a5b0
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180019ba0
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x180019ba0
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b581
cmp eax, 2
je 0x18001a3ec
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001afb3
cmp ecx, 0xff
ja 0x18001b43d
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001b43d
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x18001a816
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b6c8
cmp eax, 2
je 0x18001a800
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
jmp 0x18001a7cb
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180019b8a
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x180019b8a
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180019da7
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x180019da7
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b5fc
cmp eax, 2
je 0x18001a60c
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001b0a7
cmp ecx, 0xff
ja 0x18001b4ff
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028e938], edx
jne 0x18001b4ff
lea rax, [0x18028e938]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
lea rcx, [0x18028e920]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rax
movq qword [rsp + 0x68], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x58]
mov rcx, rsi
call fcn.18018c430
mov rcx, rsi
call fcn.180019a60
jmp 0x18001aa26
lea rdx, [0x18028e9b8]
lea r9, [0x18028e9b0]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b759
cmp eax, 2
je 0x18001aa10
mov rdi, qword [rsp + 0x38]
mov esi, dword [rsp + 0x40]
jmp 0x18001a9db
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180019d91
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x180019d91
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180019fb6
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x180019fb6
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b677
cmp eax, 2
je 0x18001a816
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001b1db
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x180019fa0
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x180019fa0
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a1c6
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001a1c6
lea rdx, [0x18028e938]
lea r9, [0x18028e920]
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x2f]
call fcn.1801844d0
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18001b708
cmp eax, 2
je 0x18001aa26
mov rax, qword [rsp + 0x38]
movq xmm0, qword [rsp + 0x40]
jmp 0x18001b347
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a1b0
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001a1b0
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a3ec
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001a3ec
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a3d5
add edx, 0xffffff00
jmp 0x18001b6be
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a60c
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001a60c
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a5f5
add edx, 0xffffff00
jmp 0x18001b74f
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a816
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001a816
xor eax, esi
mov rcx, rdi
mov edx, eax
call fcn.18018b3e0
jmp 0x18001a3d5
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001a800
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001a800
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001aa26
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001aa26
xor eax, esi
mov rcx, rdi
mov edx, eax
call fcn.18018b3e0
jmp 0x18001a5f5
mov rcx, qword [rsp + 0x38]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18001aa10
add edx, 0xffffff00
call fcn.18018b3e0
jmp 0x18001aa10
lea rcx, [0x1801a0df8]
call fcn.18019e0f0
lea rcx, [0x1801a0da8]
call fcn.18019e0f0
lea rcx, [0x1801a0dd0]
call fcn.18019e0f0
lea rcx, [0x1801a0e80]
call fcn.18019e0f0
lea rcx, [0x1801a0ea8]
call fcn.18019e0f0
lea rcx, [0x1801a0ed0]
call fcn.18019e0f0
lea rcx, [0x1801a0f08]
call fcn.18019e0f0
lea rcx, [0x1801a0f38]
call fcn.18019e0f0
int3