Function at 0x18001e81c
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x100
mov rax, qword [0x180052d38]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov eax, 0xb8a7cb51
mov qword [rbp - 0x21], rcx
mov qword [rbp - 0x39], rax
mov r15, rcx
mov dword [rbp - 0x59], 0x9d
mov rdi, 0xffffffffffffffa8
mov dword [rbp - 0x61], 0x5d
mov r9d, dword [0x1800527dc]
movsx esi, word [0x18005273c]
mov rax, qword [0x180052800]
movsx eax, byte [0x18005272d]
mov r8b, byte [0x18005271f]
movzx r12d, byte [0x1800527cc]
mov qword [rbp - 0x51], 0x6b
mov ebx, dword [0x180052820]
mov byte [rbp - 0x75], 0xb1
mov byte [rbp - 0x79], 0x9a
mov word [rbp - 0x49], ax
movzx eax, word [0x18005273c]
mov al, byte [0x18005271b]
movzx r13d, byte [0x180052824]
mov byte [rbp - 0x75], al
movzx edx, word [0x18005271c]
movsx rax, dx
mov qword [rbp - 0x39], rax
mov al, byte [0x180052824]
mov byte [rbp - 0x75], al
mov rax, qword [0x1800527b8]
movzx eax, word [0x18005273c]
mov byte [rbp - 0x75], Ordinal_138
movabs rax, 0xdaeb15f90ba89
mov byte [rbp - 0x75], 0xd6
mov byte [rbp - 0x75], 0x34
mov byte [rbp - 0x75], 0x8c
mov qword [rbp - 0x69], rax
movsx rax, byte [0x1800526ee]
mov qword [rbp - 0x69], rax
movzx eax, byte [0x18005271b]
mov word [rbp - 0x75], ax
movsx eax, word [0x18005274c]
mov dword [rbp - 0x69], eax
movzx eax, word [0x180052814]
mov dword [rbp - 0x69], eax
mov al, byte [0x180052824]
mov byte [rbp - 0x75], al
mov dword [rbp - 0x69], 0xa
mov dword [rbp - 0x69], 0x8d
movsxd rax, dword [0x1800527dc]
mov qword [rbp - 0x69], rax
movzx eax, word [0x180052810]
mov byte [rbp - 0x75], 0xe9
mov dword [rbp - 0x69], eax
movsx rax, byte [0x18005272d]
mov qword [rbp - 0x69], rax
mov eax, dword [0x180052820]
mov dword [rbp - 0x69], eax
mov eax, dword [0x180890880]
mov dword [rbp - 0x75], eax
mov eax, dword [rbp - 0x61]
sub r8b, al
movzx eax, dl
movzx ecx, r8b
imul ecx, eax
mov dword [rbp - 0x45], r9d
mov dword [rbp - 0x41], esi
mov dword [rbp - 0x31], ebx
mov byte [0x18005271b], cl
mov al, byte [rbp - 0x79]
mov eax, dword [rbp - 0x75]
add eax, 0x625
mov dword [rbp - 0x5d], eax
mov dword [0x1800527e8], 0x1d
mov eax, dword [rbp - 0x75]
add eax, 0x77f
mov dword [rbp - 0x69], eax
mov eax, dword [rbp - 0x75]
add eax, 0x67f
mov dword [rbp - 0x2d], eax
lea eax, [r9 + r9]
movsxd r14, eax
mov byte [rbp - 0x75], Ordinal_138
mov eax, dword [0x180890880]
lea rcx, [rbp + 7]
mov dword [rbp - 0x71], eax
mov eax, dword [rbp - 0x71]
movups xmm0, xmmword [str.api_ms_win_core_re]
add eax, 0x57d
movups xmm1, xmmword [0x1800398c0]
mov dword [rbp - 0x69], eax
mov eax, dword [0x1800398d0]
mov dword [rbp + 0x27], eax
movzx eax, word [0x1800398d4]
mov word [rbp + 0x2b], ax
movups xmmword [rbp + 7], xmm0
movups xmmword [rbp + 0x17], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
mov qword [0x1800527e0], rcx
mov eax, dword [rbp - 0x71]
add eax, 0x752
mov dword [rbp - 0x29], eax
movzx ecx, byte [rbp - 0x79]
movsx eax, bl
xor ebx, ebx
cmp eax, ecx
mov edx, ebx
mov eax, ebx
setl dl
cmp byte [rbp - 0x31], 0x21
setl al
cmp edx, eax
jae 0x18001ea83
movsx eax, byte [rbp - 0x79]
imul edx, eax, 0xd
mov al, byte [rbp - 0x75]
xor dl, al
mov eax, esi
mov byte [rbp - 0x75], dl
mov rcx, qword [rbp - 0x51]
imul rcx, rax
mov rax, qword [rbp - 0x51]
add rax, rcx
mov qword [rbp - 0x51], rax
mov eax, dword [rbp - 0x71]
add eax, 0x8d1
mov dword [rbp - 0x71], eax
cmp r14, rdi
ja 0x18001ea9e
mov rax, qword [rbp - 0x51]
mov dword [rbp - 0x59], 0x82db8705
mov rcx, qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea rsi, [r15*8]
mov qword [rsp + 0x40], rbx
xor r9d, r9d
mov qword [rsp + 0x38], rbx
xor r8d, r8d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.18000c2e8
mov rcx, qword [sym.imp.mozglue.dll_export_full.dll_Ordinal_115]
mov rdx, rax
mov qword [rsp + 0x40], rbx
mov r9, rsi
mov qword [rsp + 0x38], rbx
mov r8d, 8
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.18000c2e8
mov r8d, dword [rbp - 0x29]
mov rsi, rax
mov ecx, dword [rbp - 0x69]
add r8d, ecx
mov ecx, dword [rbp - 0x71]
cmp ecx, r8d
je 0x18001f04c
mov ecx, dword [rbp - 0x61]
movups xmm0, xmmword [0x1800398d8]
lea rcx, [rbp - 0x19]
movzx eax, word [0x1800398f0]
movsd xmm1, qword [0x1800398e8]
movups xmmword [rbp - 0x19], xmm0
mov word [rbp - 1], ax
movsd qword [rbp - 9], xmm1
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp r12d, dword [0x180052824]
mov ecx, ebx
movsxd r15, eax
mov eax, dword [0x180890880]
setne cl
cmp r12b, 0x34
mov dword [rbp - 0x71], eax
mov eax, ebx
setne al
cmp ecx, eax
jbe 0x18001ebbd
mov r12, qword [rbp - 0x39]
test r14, r14
je 0x18001eb98
mov rcx, qword [0x1800527f0]
mov rax, qword [rbp - 0x51]
sub rcx, rax
mov qword [0x1800527f0], rcx
mov eax, dword [0x18005280c]
jmp 0x18001ec08
test r12, r12
je 0x18001ebac
movzx eax, byte [0x180052703]
mov dword [0x1800527d8], eax
jmp 0x18001ec08
cmp word [0x1800527ec], bx
je 0x18001ec08
inc byte [0x18005272d]
jmp 0x18001ec08
cmp qword [0x180052828], rbx
je 0x18001ebf3
mov eax, 0x88f146f0
mov qword [0x1800527e0], rax
movzx eax, byte [0x1800526ea]
movzx edx, word [0x1800527ec]
imul edx, eax
mov al, byte [0x1800526ea]
and al, dl
mov byte [0x1800526ea], al
jmp 0x18001ec04
mov al, byte [0x180052703]
test al, al
je 0x18001ec04
dec qword [0x180052830]
mov r12, qword [rbp - 0x39]
mov eax, dword [rbp - 0x71]
mov edx, ebx
add eax, 0x617
mov dword [rbp - 0x59], eax
mov eax, 0xffa3
add word [0x1800527ec], ax
mov eax, dword [rbp - 0x71]
add eax, 0x615f
mov dword [rbp - 0x69], eax
test r15, r15
movzx eax, byte [0x180052703]
cmove edx, eax
movzx eax, word [rbp - 0x49]
not eax
imul edx, eax
movsxd rax, dword [0x1800527d8]
movsx rcx, word [0x18005274c]
imul rax, rax, 0x1795ed06
movsxd rdx, edx
add rdx, rax
mov eax, dword [rbp - 0x71]
add rcx, rdx
add eax, 0xfa0e
mov qword [0x180052828], rcx
xor edx, edx
xor ecx, ecx
mov dword [rbp - 0x69], eax
call fcn.180024070
mov r14, rax
test rax, rax
jne 0x18001eceb
mov rcx, qword [rbp - 0x51]
test rcx, rcx
je 0x18001eca5
mov edx, dword [0x180052828]
mov dil, byte [0x180890880]
add edx, 0x3d
add dword [0x180052808], edx
jmp 0x18001eceb
movzx eax, word [0x18005271c]
test ax, ax
je 0x18001ecce
mov al, byte [rbp - 0x79]
mov ecx, 0x2d47
add al, 0x59
mov byte [rbp - 0x75], al
movzx edx, byte [rbp - 0x79]
imul edx, ecx
mov word [0x1800527ec], dx
jmp 0x18001eceb
cmp byte [rbp - 0x31], bl
jne 0x18001eceb
mov al, byte [rbp - 0x75]
mov eax, dword [0x180052820]
test eax, eax
jne 0x18001eceb
mov dil, byte [0x1800526eb]
add dil, 0x40
mov rax, qword [0x1800527d0]
mov r8d, 0x5f2d5ea
add rax, 0xdcfe
mov qword [0x180052800], rax
movsxd rax, dword [0x18005280c]
add qword [0x1800527c0], rax
mov ecx, dword [rbp - 0x69]
mov eax, dword [rbp - 0x59]
imul ecx, eax
mov eax, dword [rbp - 0x59]
mov edx, dword [rbp - 0x2d]
xor eax, 0x32
or eax, ecx
sub r8d, eax
mov eax, dword [rbp - 0x5d]
mov ecx, dword [rbp - 0x2d]
sub edx, eax
mov eax, dword [rbp - 0x5d]
xor ecx, edx
xor eax, ecx
sub r8d, eax
mov dword [rbp - 0x69], r8d
test rsi, rsi
jne 0x18001f048
movsxd rdx, dword [0x1800527d8]
lea r8d, [rsi + 0x76]
movzx ecx, byte [0x180052703]
mov r9, qword [0x180052830]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.1800246b4
mov word [0x180052814], ax
test ax, ax
je 0x18001edb8
xor edx, edx
xor ecx, ecx
call fcn.180024070
mov dword [rbp - 0x61], eax
mov eax, dword [rbp - 0x61]
mov eax, dword [rbp - 0x61]
cmp eax, 0x1a
jb 0x18001edd1
movsxd rax, dword [0x1800527d8]
mov rdx, qword [0x1800527b8]
sub rdx, rax
mov rax, qword [0x1800527b8]
sub rdx, rax
mov qword [0x1800527b8], rdx
jmp 0x18001edd1
movzx ecx, byte [0x180052703]
neg cx
mov word [0x1808ddb9c], r15w
mov word [0x18005279c], cx
movzx eax, byte [0x18005271b]
cmp eax, dword [0x180052808]
jbe 0x18001ee26
mov r8d, dword [rbp - 0x45]
mov edx, 0x1c5
movzx ecx, byte [0x1800526ea]
mov al, byte [0x1800526ea]
sub ecx, r8d
add al, cl
mov byte [0x1800526ea], al
mov rax, qword [0x180052800]
sub al, 0x21
mov byte [rbp - 0x79], al
mov rax, qword [0x1800527f0]
inc rax
mov qword [0x1800527f0], rax
sub rdx, 1
jne 0x18001ede9
jmp 0x18001ee3a
cmp word [0x180052810], bx
je 0x18001ee3a
mov qword [0x1800527f0], 0x5045
mov eax, dword [0x180890880]
mov edx, 0xc7
mov dword [rbp - 0x71], eax
movzx ecx, byte [0x1800526ef]
call fcn.180024070
movzx ecx, word [0x180052810]
mov word [0x180052814], ax
mov rax, qword [rbp - 0x51]
cmp rax, rcx
jne 0x18001ee7a
lea eax, [r13 - 0x6b592a9f]
mov dword [0x180052808], eax
jmp 0x18001ee94
mov eax, dword [0x180052704]
sub eax, dword [rbp - 0x41]
mov dword [0x180052704], eax
mov qword [0x1800527c0], 0x1431
mov eax, dword [rbp - 0x71]
add eax, 0x68b
mov dword [rbp - 0x45], eax
mov eax, dword [0x1800527e8]
mov qword [0x1800527e0], 3
test r13b, r13b
jne 0x18001eebc
movzx eax, byte [0x180052703]
mov byte [rbp - 0x75], al
mov rax, qword [0x1800527e0]
test rax, rax
je 0x18001ef16
sub rax, 1
je 0x18001ef01
sub rax, 1
je 0x18001eee5
cmp rax, 1
jne 0x18001ef2c
mov eax, dword [0x180052704]
jmp 0x18001ef2c
movsx rax, byte [0x18005271e]
mov rcx, rax
test al, al
jne 0x18001eef8
mov rcx, qword [rbp - 0x51]
mov word [0x18005274c], cx
jmp 0x18001ef2c
mov al, byte [0x1800526ef]
mov ecx, 0x78
sub cl, al
add byte [0x18005271f], cl
jmp 0x18001ef2c
movzx eax, word [0x1800527f8]
mov ecx, 0x27d1
sub ax, cx
mov word [0x1800527cc], ax
mov ecx, dword [rbp - 0x71]
xor r9d, r9d
mov eax, dword [rbp - 0x69]
xor edx, edx
add ecx, eax
mov qword [rsp + 0x20], 0xd9
mov dword [rbp - 0x41], ecx
xor ecx, ecx
mov r8d, dword [rbp - 0x61]
call fcn.180024b5c
cmp ax, 0x3d
mov edx, ebx
mov ecx, ebx
sete dl
test ax, ax
sete cl
cmp ecx, edx
jb 0x18001efce
mov edx, 0xc6
movzx r8d, r12w
movzx ecx, ax
lea r9d, [rdx - 0x2f]
call fcn.1800243a8
mov byte [0x180052703], al
mov al, byte [0x180052703]
test al, al
jne 0x18001efb9
mov ecx, 0x21d
mov eax, dword [0x1800527c8]
sub eax, 0xef
mov dword [0x180052820], eax
mov rax, qword [0x1800527b8]
inc rax
mov qword [0x1800527b8], rax
sub rcx, 1
jne 0x18001ef8f
jmp 0x18001efda
mov rax, qword [rbp - 0x51]
mov ecx, ebx
test rax, rax
sete cl
mov word [0x18005271c], cx
jmp 0x18001efda
neg al
mov dil, al
mov rax, qword [0x1800527b8]
mov eax, dword [rbp - 0x71]
add eax, 0x699
mov dword [rbp - 0x5d], eax
mov edx, dword [rbp - 0x5d]
mov eax, dword [rbp - 0x41]
mov ecx, dword [rbp - 0x5d]
imul edx, eax
mov eax, dword [rbp - 0x45]
add ecx, eax
cmp edx, ecx
je 0x18001f048
movsx rax, dil
cmp rax, qword [0x180052830]
jge 0x18001f021
mov eax, dword [0x180890880]
mov dword [0x180052820], eax
mov eax, 0xfb204274
mov qword [0x180052800], rax
jmp 0x18001f038
mov ecx, dword [0x1800527c8]
cmp r13d, ecx
jae 0x18001f032
mov al, byte [0x1800526ee]
mov al, byte [rbp - 0x75]
mov byte [rbp - 0x79], al
mov eax, dword [0x1800527fc]
mov al, byte [rbp - 0x79]
xor eax, eax
jmp 0x18001f17e
mov r15, qword [rbp - 0x21]
mov qword [rsp + 0x40], rbx
lea r9, [r15*8]
mov qword [rsp + 0x38], rbx
lea rcx, [fcn.18002e070]
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov rdx, rsi
mov qword [rsp + 0x20], rbx
call fcn.18000c2e8
mov rdi, rbx
test r15, r15
je 0x18001f17b
mov r12d, 0x2110
mov rax, qword [0x180052818]
mov edx, reloc.mozglue.dll_export_full.dll_Ordinal_128
movzx ecx, al
imul eax, ecx, 0xf2
mov byte [0x1800526ea], al
mov eax, dword [rbp - 0x61]
movzx r8d, word [0x180052814]
mov r9d, dword [0x180a4ba08]
mov rcx, qword [0x180052828]
xor rcx, r8
mov dword [0x1800527dc], r9d
mov qword [0x180052828], rcx
sub rdx, 1
jne 0x18001f0c5
mov rcx, qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor r9d, r9d
mov qword [rsp + 0x40], rbx
xor r8d, r8d
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.18000c2e8
mov rcx, qword [sym.imp.mozglue.dll_export_full.dll_Ordinal_115]
mov rdx, rax
mov qword [rsp + 0x40], rbx
mov r9, r12
mov qword [rsp + 0x38], rbx
mov r8d, 8
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call fcn.18000c2e8
mov qword [rsi + rdi*8], rax
test rax, rax
je 0x18001f1ab
mov qword [rsp + 0x40], rbx
lea rcx, [fcn.18002e070]
mov qword [rsp + 0x38], rbx
mov r9, r12
mov qword [rsp + 0x30], rbx
xor r8d, r8d
mov qword [rsp + 0x28], rbx
mov rdx, rax
mov qword [rsp + 0x20], rbx
call fcn.18000c2e8
inc rdi
cmp rdi, r15
jb 0x18001f091
mov rax, rsi
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.18002ca80
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, qword [0x180052818]
mov ecx, ebx
cmp rax, r14
mov rax, qword [0x180052818]
setb cl
cmp rax, 0x4a
setb bl
cmp ecx, ebx
jne 0x18001f041
mov eax, 0xfe8e
mov qword [0x1800527c0], 2
mov word [0x180052810], ax
jmp 0x18001f041