Function at 0x180148440
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 0x180149736
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 0x180148574
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 0x180148540
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
movabs rsi, 0xb3271d7ab655b441
mov r8d, 3
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp - 0x60]
cmp rdx, 0xf
jbe 0x1801485d9
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801485d4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18014973c
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 0x180149742
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 0x1801486d4
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 0x1801486a0
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 0x18014872f
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014872a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149748
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 0x18014974e
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 0x180148834
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 0x180148800
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 0x18014888f
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18014888a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149754
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 0x18014975a
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 0x180148994
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 0x180148960
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 0x1801489ef
inc rdx
mov rcx, qword [rbp - 0x18]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801489ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149760
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 0x180149766
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 0x180148af4
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 0x180148ac0
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 0x180148b4f
inc rdx
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180148b4a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18014976c
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 0x180149772
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 0x180148c54
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 0x180148c20
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 0x180148caf
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180148caa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149778
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 0x18014977e
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 0x180148db4
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 0x180148d80
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 5
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x60]
cmp rdx, 0xf
jbe 0x180148e0f
inc rdx
mov rcx, qword [rbp + 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180148e0a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149784
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 0x18014978a
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 0x180148f14
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 0x180148ee0
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 0x180148f72
inc rdx
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180148f6d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149790
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 0x180149796
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 0x180149085
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 0x180149051
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 0x1801490e6
inc rdx
mov rcx, qword [rbp + 0x88]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801490e1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18014979c
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 0x1801497a2
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 0x180149204
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 0x1801491d0
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 0x180149265
inc rdx
mov rcx, qword [rbp + 0xa8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180149260
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801497a8
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 0x1801497ae
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 0x180149384
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 0x180149350
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 1
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0xe0]
cmp rdx, 0xf
jbe 0x1801493e5
inc rdx
mov rcx, qword [rbp + 0xc8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801493e0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801497b4
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 0x1801497ba
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 0x180149504
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 0x1801494d0
lea eax, [r9 + r9*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul edx, ecx, 0x8001
mov r8d, 0x31f
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x100]
cmp rdx, 0xf
jbe 0x180149565
inc rdx
mov rcx, qword [rbp + 0xe8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180149560
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801497c0
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 0x1801497c6
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 0x180149680
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 0x180149650
lea eax, [rbx + rbx*8]
mov edx, eax
shr edx, 0xb
xor edx, eax
imul edx, edx, 0x8001
mov r8d, 0x380016
mov rcx, rsi
call fcn.18015c0b0
nop
mov rdx, qword [rbp + 0x120]
cmp rdx, 0xf
jbe 0x1801496dc
inc rdx
mov rcx, qword [rbp + 0x108]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801496d7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180149730
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