Function at 0x180145d20
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
lea rbp, [rsp - 0x130]
sub rsp, 0x230
mov rax, qword [0x18054e100]
xor rax, rsp
mov qword [rbp + 0x128], rax
xor ebx, ebx
mov edx, dword [0x1805ed934]
lea rcx, [rsp + 0x48]
call fcn.18006a170
nop
movabs rdi, 0x7fffffffffffffff
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x180147016
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
lea r8d, [rbx + 0xf]
lea rdx, str._H3OPT_APPROACH
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x68], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x78], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x68], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], bl
lea r10, [rbp - 0x78]
cmp qword [rbp - 0x60], 0xf
cmova r10, qword [rbp - 0x78]
mov r9d, ebx
mov r11, qword [rbp - 0x68]
add r11, r10
cmp r10, r11
je 0x180145e54
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180145e20
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
movabs rsi, 0xb3271d7ab655b441
mov r8d, 2
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x180145eb9
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180145eb4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18014701c
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp - 0x68], xmm0
mov byte [rbp - 0x78], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x180147022
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0x11
lea rdx, str._H3_LAST_APPROACH
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x48], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x48], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp - 0x58]
cmp qword [rbp - 0x40], 0xf
cmova r10, qword [rbp - 0x58]
mov r9d, ebx
mov r11, qword [rbp - 0x48]
add r11, r10
cmp r10, r11
je 0x180145fb4
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180145f80
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 3
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp - 0x40]
cmp rdx, 0xf
jbe 0x18014600f
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014600a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147028
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp - 0x48], xmm0
mov byte [rbp - 0x58], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x18014702e
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0x11
lea rdx, str._H3_HARD_APPROACH
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp - 0x38], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x28], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x38], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x28], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp - 0x38]
cmp qword [rbp - 0x20], 0xf
cmova r10, qword [rbp - 0x38]
mov r9d, ebx
mov r11, qword [rbp - 0x28]
add r11, r10
cmp r10, r11
je 0x180146114
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x1801460e0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 2
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp - 0x20]
cmp rdx, 0xf
jbe 0x18014616f
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014616a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147034
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp - 0x28], xmm0
mov byte [rbp - 0x38], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x18014703a
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0xd
lea rdx, str._H3OPT_TARGET
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp - 0x18], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 8], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x18], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp - 0x18]
cmp qword [rbp], 0xf
cmova r10, qword [rbp - 0x18]
mov r9d, ebx
mov r11, qword [rbp - 8]
add r11, r10
cmp r10, r11
je 0x180146274
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146240
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 3
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp]
cmp rdx, 0xf
jbe 0x1801462cf
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801462ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147040
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp - 8], xmm0
mov byte [rbp - 0x18], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x180147046
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0x12
lea rdx, str._H3OPT_DISRUPTSHIP
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x18], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x18], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 8]
cmp qword [rbp + 0x20], 0xf
cmova r10, qword [rbp + 8]
mov r9d, ebx
mov r11, qword [rbp + 0x18]
add r11, r10
cmp r10, r11
je 0x1801463d4
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x1801463a0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 3
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x20]
cmp rdx, 0xf
jbe 0x18014642f
inc rdx
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014642a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18014704c
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0x18], xmm0
mov byte [rbp + 8], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x180147052
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0x10
lea rdx, str._H3OPT_KEYLEVELS
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x38], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x28], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x38], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0x28]
cmp qword [rbp + 0x40], 0xf
cmova r10, qword [rbp + 0x28]
mov r9d, ebx
mov r11, qword [rbp + 0x38]
add r11, r10
cmp r10, r11
je 0x180146534
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146500
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 2
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x40]
cmp rdx, 0xf
jbe 0x18014658f
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014658a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147058
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0x38], xmm0
mov byte [rbp + 0x28], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x18014705e
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0xf
lea rdx, str._H3OPT_CREWWEAP
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0x48], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x58], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x48], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x58], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0x48]
cmp qword [rbp + 0x60], 0xf
cmova r10, qword [rbp + 0x48]
mov r9d, ebx
mov r11, qword [rbp + 0x58]
add r11, r10
cmp r10, r11
je 0x180146694
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146660
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 2
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x60]
cmp rdx, 0xf
jbe 0x1801466ef
inc rdx
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801466ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147064
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0x58], xmm0
mov byte [rbp + 0x48], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x18014706a
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0x11
lea rdx, str._H3OPT_CREWDRIVER
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0x68], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x78], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x68], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x78], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0x68]
cmp qword [rbp + 0x80], 0xf
cmova r10, qword [rbp + 0x68]
mov r9d, ebx
mov r11, qword [rbp + 0x78]
add r11, r10
cmp r10, r11
je 0x1801467f4
nop dword [rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x1801467c0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 2
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x80]
cmp rdx, 0xf
jbe 0x180146852
inc rdx
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014684d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147070
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0x78], xmm0
mov byte [rbp + 0x68], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x180147076
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0x11
lea rdx, str._H3OPT_CREWHACKER
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0x88], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x98], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x88], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x98], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0x88]
cmp qword [rbp + 0xa0], 0xf
cmova r10, qword [rbp + 0x88]
mov r9d, ebx
mov r11, qword [rbp + 0x98]
add r11, r10
cmp r10, r11
je 0x180146965
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146931
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 4
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0xa0]
cmp rdx, 0xf
jbe 0x1801469c6
inc rdx
mov rcx, qword [rbp + 0x88]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801469c1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18014707c
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0x98], xmm0
mov byte [rbp + 0x88], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x180147082
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0xb
lea rdx, str._H3OPT_VEHS
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0xa8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xb8], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xa8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xb8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0xa8]
cmp qword [rbp + 0xc0], 0xf
cmova r10, qword [rbp + 0xa8]
mov r9d, ebx
mov r11, qword [rbp + 0xb8]
add r11, r10
cmp r10, r11
je 0x180146ae4
nop dword [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146ab0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 3
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0xc0]
cmp rdx, 0xf
jbe 0x180146b45
inc rdx
mov rcx, qword [rbp + 0xa8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180146b40
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147088
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0xb8], xmm0
mov byte [rbp + 0xa8], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x18014708e
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0xc
lea rdx, str._H3OPT_WEAPS
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0xc8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xd8], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xc8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xd8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0xc8]
cmp qword [rbp + 0xe0], 0xf
cmova r10, qword [rbp + 0xc8]
mov r9d, ebx
mov r11, qword [rbp + 0xd8]
add r11, r10
cmp r10, r11
je 0x180146c64
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146c30
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
xor r8d, r8d
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0xe0]
cmp rdx, 0xf
jbe 0x180146cc2
inc rdx
mov rcx, qword [rbp + 0xc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180146cbd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147094
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0xd8], xmm0
mov byte [rbp + 0xc8], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rax, rdi
mov rcx, qword [rsp + 0x58]
sub rax, rcx
cmp rax, 2
jb 0x18014709a
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0xe
lea rdx, str._H3OPT_BITSET1
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0xe8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xf8], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0xe8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0xf8], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r10, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0xf
cmova r10, qword [rbp + 0xe8]
mov r9d, ebx
mov r11, qword [rbp + 0xf8]
add r11, r10
cmp r10, r11
je 0x180146de4
nop word [rax + rax]
movzx r8d, byte [r10]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, r9d
imul r9d, eax, 0x401
mov eax, r9d
shr eax, 6
xor r9d, eax
inc r10
cmp r10, r11
jne 0x180146db0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 0x9f
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x100]
cmp rdx, 0xf
jbe 0x180146e45
inc rdx
mov rcx, qword [rbp + 0xe8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180146e40
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801470a0
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0xf8], xmm0
mov byte [rbp + 0xe8], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
mov rcx, qword [rsp + 0x58]
sub rdi, rcx
cmp rdi, 2
jb 0x1801470a6
lea rax, [rsp + 0x48]
cmp qword [rsp + 0x60], 0xf
cmova rax, qword [rsp + 0x48]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 2
lea r9, [0x18048f6b0]
lea rcx, [rsp + 0x68]
call fcn.18006a4c0
nop
mov r8d, 0xe
lea rdx, str._H3OPT_BITSET0
lea rcx, [rsp + 0x68]
call fcn.18006a3c0
xorps xmm0, xmm0
movups xmmword [rbp + 0x108], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x118], xmm1
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x108], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x118], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
lea r9, [rbp + 0x108]
cmp qword [rbp + 0x120], 0xf
cmova r9, qword [rbp + 0x108]
mov r10, qword [rbp + 0x118]
add r10, r9
cmp r9, r10
je 0x180146f60
nop dword [rax]
nop dword [rax + rax]
movzx r8d, byte [r9]
lea edx, [r8 - 0x41]
lea eax, [r8 + 0x20]
movzx ecx, al
cmp dl, 0x19
cmova ecx, r8d
movsx eax, cl
add eax, ebx
imul ebx, eax, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
inc r9
cmp r9, r10
jne 0x180146f30
lea eax, [rbx + rbx*8]
mov edx, eax
shr edx, 0xb
xor edx, eax
imul edx, edx, 0x8001
mov r8d, 0x5ff16
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x120]
cmp rdx, 0xf
jbe 0x180146fbc
inc rdx
mov rcx, qword [rbp + 0x108]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180146fb7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180147010
call fcn.180357650
movdqa xmm0, xmmword [0x180509e00]
movdqu xmmword [rbp + 0x118], xmm0
mov byte [rbp + 0x108], 0
lea rcx, [rsp + 0x68]
call fcn.18006b8d0
nop
lea rcx, [rsp + 0x48]
call fcn.18006b8d0
mov rcx, qword [rbp + 0x128]
xor rcx, rsp
call fcn.180357630
lea r11, [rsp + 0x230]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18006b090
int3