Function at 0x1800331e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x340]
sub rsp, 0x440
mov rax, qword [0x180161040]
xor rax, rsp
mov qword [rbp + 0x330], rax
mov qword [rsp + 0x78], r8
mov rbx, rdx
mov qword [rbp - 0x78], rcx
xor esi, esi
mov dword [rsp + 0x30], esi
lea r15, [rcx + 0x40]
mov qword [rbp - 0x68], r15
mov rcx, r15
call fcn.1800051d0
mov byte [rbp - 0x60], 1
mov ecx, 0x54
call fcn.1800df99c
mov r13, rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x58], rax
lea r12, [rax + 0x54]
mov qword [rbp - 0x48], r12
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r13], xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13 + 0x20], xmm0
movups xmmword [r13 + 0x30], xmm0
movups xmmword [r13 + 0x40], xmm0
mov dword [r13 + 0x50], eax
mov qword [rbp - 0x50], r12
movdqu xmmword [rsp + 0x60], xmm0
mov edi, esi
mov qword [rsp + 0x70], rsi
mov qword [rbp + 0x268], rsi
mov qword [rbp + 0x278], rsi
mov qword [rbp + 0x280], rsi
mov qword [rbp + 0x290], rsi
mov qword [rbp + 0x288], 0x7fd8
movdqa xmmword [rbp + 0x2a0], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x2b0], xmm1
mov qword [rbp + 0x2c8], rsi
mov qword [rbp + 0x2d0], rsi
lea rcx, [rbp + 0x298]
shl rcx, 8
lea rax, [rbp + 0x270]
shl rax, 8
sub rcx, rax
or rcx, 1
mov qword [rbp + 0x298], rcx
lea rax, [rbp + 0x270]
mov qword [rbp + 0x2d8], rax
movdqa xmm0, xmmword [0x18013e7c0]
movdqa xmmword [rbp + 0x2e0], xmm0
mov qword [rbp + 0x2f0], rsi
lea rax, [rbp + 0x298]
mov qword [rbp + 0x260], rax
lea rax, [rbp + 0x298]
mov qword [rbp + 0x2c0], rax
lea rax, [rbp + 0x2d8]
mov qword [rbp + 0x270], rax
cmp qword [rbx + 0x18], 7
jbe 0x18003334b
mov rbx, qword [rbx]
mov r8, rbx
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x260]
call fcn.1800abfe0
cmp dword [rsp + 0x40], 0
jne 0x180034410
mov rbx, qword [rbp + 0x260]
test rbx, rbx
jne 0x180033382
mov rbx, rsi
lea rdx, [0x180119dc1]
jmp 0x1800333a6
mov rbx, qword [rbx + 0x20]
test rbx, rbx
jne 0x180033394
lea rdx, [0x180119dc1]
jmp 0x1800333a6
mov rax, qword [rbx + 8]
lea rdx, [0x180119dc1]
test rax, rax
cmovne rdx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xc0], xmm1
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x1800333c2
lea rcx, [rbp + 0xb0]
call fcn.180005260
lea rcx, [rbp + 0xb0]
mov r12, qword [rbp + 0xb0]
mov rsi, qword [rbp + 0xc8]
cmp rsi, 0xf
cmova rcx, r12
mov r8, qword [rbp + 0xc0]
cmp r8, 0x10
jne 0x180033417
lea rdx, str.CloudSettingsMap
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x180033417
xor r14b, r14b
jmp 0x18003341a
mov r14b, 1
cmp rsi, 0xf
jbe 0x18003342b
mov r8, rsi
mov rdx, r12
call fcn.1800056b0
test r14b, r14b
jne 0x18003440a
mov rsi, qword [rsp + 0x78]
mov r12, qword [rsi]
add r12, 0x30
mov qword [rbp - 0x70], r12
lea rcx, [rsi + 0x28]
call fcn.1800373d0
cmp qword [r12], 0
je 0x1800334ed
xor ecx, ecx
movzx r14d, cx
cmp cx, word [r12 + 8]
jae 0x1800334d0
nop word [rax + rax]
movzx ecx, r14w
mov rax, qword [r12]
mov rsi, qword [rax + rcx*8]
test rsi, rsi
je 0x1800334c4
nop dword [rax]
nop word [rax + rax]
mov rdi, qword [rsi + 0x198]
lea rcx, [rsi + 8]
call fcn.180034570
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x50]
mov rsi, rdi
test rdi, rdi
jne 0x180033490
inc r14w
cmp r14w, word [r12 + 8]
jb 0x180033470
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [r12]
call qword [rax + 0x50]
xor esi, esi
mov qword [r12], rsi
mov dword [r12 + 8], esi
test rbx, rbx
je 0x18003352c
mov rbx, qword [rbx + 0x20]
test rbx, rbx
je 0x18003352c
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x180033523
lea rcx, str.SettingsMap
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x180033716
mov rbx, qword [rbx + 0x30]
test rbx, rbx
jne 0x180033506
mov rdi, rsi
mov qword [rsp + 0x58], rdi
mov rax, rdi
lea rbx, str.Name
mov r12d, 0x10
mov r14d, 0x15
test rax, rax
je 0x1800343ec
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0xe0], rsi
mov dword [rbp + 0xe8], 0
mov qword [rbp + 0xf0], rsi
mov dword [rbp + 0xf8], 0x150001
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, r12d
mov edx, 4
call qword [rax + 0x40]
mov qword [rbp + 0xf0], rax
xor ecx, ecx
mov dword [rax], ecx
mov qword [rbp + 0x100], rsi
mov dword [rbp + 0x108], ecx
mov qword [rbp + 0x120], rsi
mov dword [rbp + 0x128], ecx
mov qword [rbp + 0x140], rsi
mov dword [rbp + 0x148], ecx
mov qword [rbp + 0x160], rsi
mov dword [rbp + 0x168], ecx
mov qword [rbp + 0x180], rsi
mov dword [rbp + 0x188], ecx
mov qword [rbp + 0x1a0], rsi
mov dword [rbp + 0x1a8], ecx
mov qword [rbp + 0x1c0], rsi
mov dword [rbp + 0x1c8], ecx
mov qword [rbp + 0x1e0], rsi
mov dword [rbp + 0x1e8], ecx
mov qword [rbp + 0x200], rsi
mov dword [rbp + 0x208], ecx
mov qword [rbp + 0x220], rsi
mov dword [rbp + 0x228], ecx
mov qword [rbp + 0x240], rsi
mov dword [rbp + 0x248], ecx
cmp r14w, word [rbp + 0xea]
jbe 0x1800336e5
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, r12d
mov edx, 0x54
call qword [rax + 0x40]
mov rbx, rax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x40], xmm0
mov dword [rbx + 0x50], eax
mov rdx, qword [rbp + 0xe0]
test rdx, rdx
je 0x1800336cf
movzx eax, word [rbp + 0xe8]
lea r8, [rdx + rax*4]
sub r8, rdx
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xe0]
call qword [rax + 0x50]
mov qword [rbp + 0xe0], rbx
lea rbx, str.Name
mov word [rbp + 0xea], r14w
test rdi, rdi
je 0x180033731
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x180033731
mov r8, qword [rax + 8]
test r8, r8
je 0x180033728
mov rdx, rsi
nop
movzx ecx, byte [rbx + rdx]
inc rdx
cmp cl, byte [r8 + rdx - 1]
jne 0x180033728
cmp rdx, 5
jne 0x180033700
jmp 0x180033734
test rbx, rbx
je 0x18003352c
mov rdi, qword [rbx + 0x20]
jmp 0x18003352f
mov rax, qword [rax + 0x30]
test rax, rax
jne 0x1800336f3
mov rax, rsi
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x38]
call fcn.1800abdb0
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], rsi
mov qword [rbp + 0xc8], rsi
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x180033762
mov rdx, rax
lea rcx, [rbp + 0xb0]
call fcn.180005260
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, qword [rsp + 0x70]
je 0x1800337b4
movups xmm0, xmmword [rbp + 0xb0]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp + 0xc0]
movups xmmword [rdx + 0x10], xmm1
mov eax, 0xf
mov byte [rbp + 0xb0], 0
add rdx, 0x20
mov qword [rsp + 0x68], rdx
jmp 0x1800337cc
lea r8, [rbp + 0xb0]
lea rcx, [rsp + 0x60]
call fcn.180039a40
mov rax, qword [rbp + 0xc8]
cmp rax, 0xf
jbe 0x180033807
lea rdx, [rax + 1]
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180033802
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800343e5
call fcn.1800df6f8
test rdi, rdi
je 0x180033837
mov r15, qword [rdi + 0x20]
test r15, r15
je 0x180033837
mov rdx, qword [r15 + 8]
test rdx, rdx
je 0x18003382e
lea rcx, str.Settings
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x180033865
mov r15, qword [r15 + 0x30]
test r15, r15
jne 0x180033815
mov r15, rsi
mov r14, rsi
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r14
test r14, r14
jne 0x180033870
cmp qword [rsp + 0x48], r15
je 0x18003406d
test r14, r14
jne 0x180033870
lea rdx, [0x180119dc1]
jmp 0x180033882
test r15, r15
je 0x18003383a
mov r14, qword [r15 + 0x20]
jmp 0x18003383d
mov rax, qword [r14 + 8]
lea rdx, [0x180119dc1]
test rax, rax
cmovne rdx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], rsi
mov qword [rbp + 0xc8], rsi
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], 0
jne 0x1800338a1
lea rcx, [rbp + 0xb0]
call fcn.180005260
lea rcx, [rbp + 0xb0]
mov rbx, qword [rbp + 0xb0]
mov rdi, qword [rbp + 0xc8]
cmp rdi, 0xf
cmova rcx, rbx
mov r8, qword [rbp + 0xc0]
cmp r8, 9
jne 0x1800338f6
lea rdx, str.CloudList
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x1800338f6
mov sil, 1
jmp 0x1800338f9
xor sil, sil
cmp rdi, 0xf
jbe 0x180033930
lea rdx, [rdi + 1]
mov rax, rbx
cmp rdx, 0x1000
jb 0x180033928
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800343e5
mov rcx, rbx
call fcn.1800df6f8
test sil, sil
je 0x180034048
test r14, r14
je 0x180033969
mov rbx, qword [r14 + 0x20]
test rbx, rbx
je 0x180033969
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x180033960
lea rcx, str.mProbability
call sub.api_ms_win_crt_string_l1_1_0.dll_strcmp
test eax, eax
je 0x18003397b
mov rbx, qword [rbx + 0x30]
test rbx, rbx
jne 0x180033947
xor ecx, ecx
mov ebx, ecx
test rbx, rbx
jne 0x1800339c1
lea rdx, [0x180119dc1]
jmp 0x1800339d3
test rbx, rbx
je 0x180033972
mov ecx, dword [rbx]
and ecx, 0xf
lea eax, [rcx - 3]
cmp eax, 1
jbe 0x18003396d
cmp ecx, 2
jne 0x180033999
cmp qword [rbx + 0x10], 0
jne 0x1800339c1
mov rbx, qword [rbx + 0x20]
test rbx, rbx
je 0x180033972
mov eax, dword [rbx]
and eax, 0xf
sub eax, 3
cmp eax, 1
jbe 0x18003396d
mov rbx, qword [rbx + 0x30]
test rbx, rbx
jne 0x1800339a2
lea rdx, [0x180119dc1]
jmp 0x1800339d3
mov rax, qword [rbx + 0x10]
lea rdx, [0x180119dc1]
test rax, rax
cmovne rdx, rax
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
xor ebx, ebx
mov qword [rbp + 0xc0], rbx
mov qword [rbp + 0xc8], rbx
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], bl
jne 0x1800339f4
lea rcx, [rbp + 0xb0]
call fcn.180005260
nop
lea rax, [0x18011c980]
mov qword [rbp - 0x40], rax
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
or dword [rsp + 0x30], 1
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x30]
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_istringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp + rcx - 0x40], rsi
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x90]
mov dword [rbp + rcx - 0x44], edx
lea rax, [rbp - 0x30]
mov qword [rsp + 0x38], rax
lea rcx, [rbp - 0x30]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
lea rax, vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov qword [rbp - 0x30], rax
lea rdx, [rbp + 0xb0]
cmp qword [rbp + 0xc8], 0xf
cmova rdx, qword [rbp + 0xb0]
mov edi, 2
mov r9d, edi
mov r8, qword [rbp + 0xc0]
lea rcx, [rbp - 0x30]
call fcn.180038470
nop
lea rdx, [rsp + 0x34]
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::operator___int____ptr64____ptr64]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
je 0x180033b0e
mov rdi, r13
cmp ebx, 0x15
jae 0x180033b09
mov eax, dword [rsp + 0x34]
mov dword [rdi], eax
inc ebx
add rdi, 4
lea rdx, [rsp + 0x34]
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_istream_char__struct_std::char_traits_char__::operator___int____ptr64____ptr64]
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator_bool_void_const___ptr64]
test al, al
jne 0x180033ad5
mov edi, 2
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x40], rsi
mov rax, qword [rbp - 0x40]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x90]
mov dword [rbp + rcx - 0x44], edx
lea rcx, [rbp - 0x30]
call fcn.180037a50
lea rcx, [rbp - 0x28]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp + 0xc8]
cmp rdx, 0xf
jbe 0x180033b8c
inc rdx
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180033b87
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800343e5
call fcn.1800df6f8
movzx ecx, word [rbp + 0xe8]
add ecx, 0x15
movzx edx, word [rbp + 0xea]
test dx, dx
jne 0x180033c58
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8, r12
mov edx, 0x40
call qword [rax + 0x40]
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov rdx, qword [rbp + 0xe0]
test rdx, rdx
jne 0x180033c06
mov qword [rbp + 0xe0], rax
mov edx, r12d
mov word [rbp + 0xea], dx
mov r14, qword [rsp + 0x40]
jmp 0x180033d27
movzx eax, word [rbp + 0xe8]
lea r8, [rdx + rax*4]
sub r8, rdx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xe0]
call qword [rax + 0x50]
mov qword [rbp + 0xe0], rsi
movzx edx, r12w
mov word [rbp + 0xea], dx
mov r14, qword [rsp + 0x40]
jmp 0x180033d27
cmp ecx, edx
jb 0x180033d20
cmp ecx, 2
jae 0x180033c69
mov eax, edi
jmp 0x180033c7f
lea eax, [rcx + 1]
test eax, ecx
je 0x180033c7f
bsr eax, eax
movzx ecx, al
inc ecx
mov eax, 1
shl eax, cl
mov edi, eax
cmp rdi, rdx
jbe 0x180033d20
lea rbx, [rdi*4]
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8, r12
mov rdx, rbx
call qword [rax + 0x40]
mov rsi, rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rbp + 0xe0]
test rdx, rdx
jne 0x180033ce8
mov qword [rbp + 0xe0], rsi
movzx edx, di
mov word [rbp + 0xea], dx
mov r14, qword [rsp + 0x40]
jmp 0x180033d27
movzx eax, word [rbp + 0xe8]
lea r8, [rdx + rax*4]
sub r8, rdx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xe0]
call qword [rax + 0x50]
jmp 0x180033cd0
mov rsi, qword [rbp + 0xe0]
movzx r8d, word [rbp + 0xe8]
test r8, r8
jne 0x180033ef6
lea r12, [r13 + 0x54]
cmp r13, r12
je 0x180033f43
mov rbx, r13
mov r13d, 0x10
nop
movzx ecx, word [rbp + 0xe8]
test dx, dx
jne 0x180033df5
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8, r13
mov edx, 0x40
call qword [rax + 0x40]
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov rdx, qword [rbp + 0xe0]
test rdx, rdx
jne 0x180033db2
mov word [rbp + 0xea], r13w
jmp 0x180033eb5
movzx eax, word [rbp + 0xe8]
lea r8, [rdx + rax*4]
sub r8, rdx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xe0]
call qword [rax + 0x50]
mov word [rbp + 0xea], r13w
jmp 0x180033eb5
movzx eax, dx
cmp ecx, eax
jb 0x180033ebc
cmp ecx, 2
jae 0x180033e0c
mov eax, 2
jmp 0x180033e22
lea eax, [rcx + 1]
test eax, ecx
je 0x180033e22
bsr eax, eax
movzx ecx, al
inc ecx
mov eax, 1
shl eax, cl
mov r14d, eax
movzx eax, dx
cmp r14, rax
jbe 0x180033ebc
lea rdi, [r14*4]
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8, r13
mov rdx, rdi
call qword [rax + 0x40]
mov rsi, rax
mov r8, rdi
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [rbp + 0xe0]
test rdx, rdx
je 0x180033ead
movzx eax, word [rbp + 0xe8]
lea r8, [rdx + rax*4]
sub r8, rdx
mov rcx, rsi
call sub.VCRUNTIME140.dll_memmove
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xe0]
call qword [rax + 0x50]
mov word [rbp + 0xea], r14w
mov qword [rbp + 0xe0], rsi
movzx ecx, word [rbp + 0xe8]
mov eax, dword [rbx]
mov dword [rsi + rcx*4], eax
inc word [rbp + 0xe8]
add rbx, 4
cmp rbx, r12
je 0x180033eeb
movzx edx, word [rbp + 0xea]
mov rsi, qword [rbp + 0xe0]
jmp 0x180033d50
mov r14, qword [rsp + 0x40]
mov r13, qword [rbp - 0x80]
jmp 0x180033f43
lea r8, [r8*4]
lea rcx, [rsi + 0x54]
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
lea r12, [r13 + 0x54]
cmp r13, r12
je 0x180033f3b
mov rax, r13
xor ecx, ecx
mov r8d, ecx
nop dword [rax + rax]
mov rdx, qword [rbp + 0xe0]
add rdx, r8
add r8, 4
mov ecx, dword [rax]
mov dword [rdx], ecx
add rax, 4
cmp rax, r12
jne 0x180033f20
add word [rbp + 0xe8], 0x15
test r14, r14
je 0x180034026
mov rdx, qword [r14 + 0x20]
test rdx, rdx
je 0x180034026
nop dword [rax]
mov r8, qword [rdx + 8]
xor esi, esi
test r8, r8
je 0x180034017
mov eax, esi
lea rcx, str.mBits
movzx ecx, byte [rcx + rax]
inc rax
cmp cl, byte [r8 + rax - 1]
jne 0x180034017
cmp rax, 6
jne 0x180033f71
test rdx, rdx
je 0x180033fd6
mov ecx, dword [rdx]
and ecx, 0xf
lea eax, [rcx - 3]
cmp eax, 1
jbe 0x18003402b
cmp ecx, 2
jne 0x180033fb5
cmp qword [rdx + 0x10], rsi
jne 0x180034030
mov rdx, qword [rdx + 0x20]
test rdx, rdx
je 0x180033fd6
nop
mov eax, dword [rdx]
and eax, 0xf
sub eax, 3
cmp eax, 1
jbe 0x18003402b
mov rdx, qword [rdx + 0x30]
test rdx, rdx
jne 0x180033fc0
mov eax, esi
mov rcx, qword [rbp + 0xf0]
test rcx, rcx
je 0x180033fe6
mov dword [rcx], eax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r13], xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13 + 0x20], xmm0
movups xmmword [r13 + 0x30], xmm0
movups xmmword [r13 + 0x40], xmm0
mov dword [r13 + 0x50], eax
mov r12d, 0x10
mov r14, qword [r14 + 0x30]
jmp 0x180033842
mov rdx, qword [rdx + 0x30]
test rdx, rdx
jne 0x180033f60
jmp 0x180034028
xor esi, esi
mov rdx, rsi
test rdx, rdx
je 0x180033fd6
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x180033fd6
xor edx, edx
mov r8d, 0xffffffff
call fcn.1800ad650
jmp 0x180033fd8
lea r8, [rbp + 0xd0]
lea rdx, [rsp + 0x40]
mov rcx, qword [rbp - 0x78]
call fcn.180034680
mov r14, qword [rsp + 0x40]
xor esi, esi
mov r14, qword [r14 + 0x30]
jmp 0x180033842
mov r11, qword [rsp + 0x68]
add r11, 0xffffffffffffffe0
cmp qword [r11 + 0x18], 0xf
jbe 0x180034080
mov r11, qword [r11]
mov ecx, esi
mov r10d, esi
cmp byte [r11], 0
je 0x1800340cd
nop dword [rax + rax]
lea r9d, [rcx + 1]
mov eax, ecx
movzx r8d, byte [rax + r11]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r10d
imul r10d, eax, 0x401
mov eax, r10d
shr eax, 6
xor r10d, eax
mov ecx, r9d
cmp byte [r9 + r11], 0
jne 0x180034090
lea ecx, [r10 + r10*8]
mov eax, ecx
shr eax, 0xb
xor ecx, eax
imul r14d, ecx, 0x8001
mov r12, qword [rbp - 0x70]
movzx r8d, word [r12 + 0xa]
test r8w, r8w
je 0x180034121
movzx ecx, word [r12 + 8]
xor edx, edx
mov eax, r14d
div ecx
mov rax, qword [r12]
mov rdx, qword [rax + rdx*8]
test rdx, rdx
je 0x180034121
nop dword [rax]
cmp dword [rdx], r14d
je 0x18003413d
mov rdx, qword [rdx + 0x198]
test rdx, rdx
jne 0x180034110
movzx esi, word [r12 + 8]
cmp r8w, si
jb 0x18003424b
cmp esi, 2
jae 0x180034162
mov esi, 2
jmp 0x18003417e
lea rbx, [rdx + 8]
test rbx, rbx
je 0x180034121
mov rcx, rbx
call fcn.180034570
lea rdx, [rbp + 0xd0]
mov rcx, rbx
call fcn.180037be0
jmp 0x1800342be
lea ecx, [rsi + 1]
test ecx, esi
jne 0x18003416e
inc si
jmp 0x18003417e
bsr eax, ecx
movzx ecx, al
inc ecx
mov esi, 1
shl si, cl
movzx ebx, si
shl rbx, 3
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov r8d, 0x10
mov rdx, rbx
call qword [rax + 0x40]
mov rdi, rax
mov r8, rbx
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov rdx, qword [r12]
test rdx, rdx
je 0x180034241
xor ecx, ecx
movzx r11d, cx
cmp cx, word [r12 + 8]
jae 0x180034228
movzx eax, r11w
mov r9, qword [rdx + rax*8]
test r9, r9
je 0x18003421c
movzx r10d, si
nop dword [rax]
nop word [rax + rax]
mov r8, qword [r9 + 0x198]
xor edx, edx
mov eax, dword [r9]
div r10d
lea rcx, [rdi + rdx*8]
mov rax, qword [rcx]
mov qword [r9 + 0x198], rax
mov qword [rcx], r9
mov r9, r8
test r8, r8
jne 0x1800341f0
mov rdx, qword [r12]
inc r11w
cmp r11w, word [r12 + 8]
jb 0x1800341d1
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov word [r12 + 8], si
mov qword [r12], rdi
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
xor r9d, r9d
mov edx, 0x1a0
mov r8d, 0x10
call qword [rax + 0x40]
mov rdi, rax
movzx ecx, word [r12 + 8]
xor edx, edx
mov eax, r14d
div ecx
mov ebx, edx
mov dword [rdi], r14d
lea rcx, [rdi + 8]
lea rdx, [rbp + 0xd0]
call fcn.180037be0
lea rdx, [rbx*8]
mov rcx, qword [r12]
mov rax, qword [rdx + rcx]
mov qword [rdi + 0x198], rax
mov rax, qword [r12]
mov qword [rdx + rax], rdi
inc word [r12 + 0xa]
xor esi, esi
lea rcx, [rbp + 0x240]
call fcn.180037480
lea rcx, [rbp + 0x220]
call fcn.180037480
lea rcx, [rbp + 0x200]
call fcn.180037480
lea rcx, [rbp + 0x1e0]
call fcn.180037480
lea rcx, [rbp + 0x1c0]
call fcn.180037480
lea rcx, [rbp + 0x1a0]
call fcn.180037480
lea rcx, [rbp + 0x180]
call fcn.180037480
lea rcx, [rbp + 0x160]
call fcn.180037480
lea rcx, [rbp + 0x140]
call fcn.180037480
lea rcx, [rbp + 0x120]
call fcn.180037480
lea rcx, [rbp + 0x100]
call fcn.180037480
nop
cmp qword [rbp + 0xf0], 0
je 0x18003437e
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xf0]
call qword [rax + 0x50]
mov qword [rbp + 0xf0], rsi
mov dword [rbp + 0xf8], 0
cmp word [rbp + 0xe8], 0
je 0x18003438f
mov word [rbp + 0xe8], si
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x1800343cf
movzx r8d, word [rbp + 0xea]
shl r8, 2
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0xb8]
mov rax, qword [rcx]
mov rdx, qword [rbp + 0xe0]
call qword [rax + 0x50]
nop
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 0x30]
mov rdi, rax
mov qword [rsp + 0x58], rax
jmp 0x180033537
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
call fcn.1800385b0
mov r15, qword [rbp - 0x68]
mov r12, qword [rbp - 0x48]
mov rdi, qword [rsp + 0x70]
jmp 0x180034410
lea r12, [r13 + 0x54]
xor esi, esi
mov rcx, qword [rbp + 0x268]
test rcx, rcx
je 0x180034429
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rbp + 0x268], rsi
mov rcx, qword [rbp + 0x260]
mov rbx, qword [rcx + 0x58]
test rbx, rbx
je 0x18003445e
nop dword [rax]
mov rcx, qword [rbx]
test rcx, rcx
je 0x18003444e
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x180034440
mov rcx, qword [rbp + 0x260]
mov rax, qword [rcx]
shr rax, 8
sub rcx, rax
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x180034483
mov rbx, qword [rcx + 0x10]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, rbx
test rbx, rbx
jne 0x180034471
mov qword [rbp + 0x260], rsi
mov rsi, qword [rsp + 0x60]
test rsi, rsi
je 0x1800344ed
mov rbx, rsi
mov r14, qword [rsp + 0x68]
cmp rsi, r14
je 0x1800344b2
mov rcx, rbx
call fcn.180005610
add rbx, 0x20
cmp rbx, r14
jne 0x1800344a1
sub rdi, rsi
and rdi, 0xffffffffffffffe0
mov rax, rsi
cmp rdi, 0x1000
jb 0x1800344e1
add rdi, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800344e1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, rdi
mov rcx, rsi
call fcn.1800df6f8
nop
test r13, r13
je 0x18003452b
sub r12, r13
sar r12, 2
lea rdx, [r12*4]
cmp rdx, 0x1000
jb 0x180034522
add rdx, 0x27
mov rcx, qword [r13 - 8]
sub r13, rcx
lea rax, [r13 - 8]
cmp rax, 0x1f
ja 0x18003455e
mov r13, rcx
mov rcx, r13
call fcn.1800df6f8
nop
mov rcx, r15
call qword [sym.imp.MSVCP140.dll__Mtx_unlock]
mov rcx, qword [rbp + 0x330]
xor rcx, rsp
call fcn.1800df290
mov rbx, qword [rsp + 0x498]
add rsp, 0x440
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
int3