Function at 0x18000cb44
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov edi, dword [0x18004e2e8]
mov eax, 0xffffa8f5
mov word [rbp - 0x39], ax
mov rbx, rdx
mov eax, dword [0x18004e320]
xor edx, edx
mov dword [rbp - 0x15], 0x4706c7f7
mov r13d, 0xa453
mov qword [rbp + 0xf], rax
mov r12b, 0x4f
mov al, byte [0x18004e314]
mov ecx, 0x3c7
mov byte [rbp + 0x77], al
lea r14d, [rdx + 1]
mov byte [rbp - 0x41], 0x27
movzx eax, byte [0x18004e212]
mov word [rbp - 0x3d], ax
mov al, byte [0x18004e2c8]
mov dword [rbp + 0xb], eax
movzx eax, word [0x18004e284]
mov byte [rbp - 0x49], al
mov eax, dword [0x18004e304]
mov rsi, qword [0x18004e2c8]
mov eax, 0x2541
mov qword [rbp + 0x17], 0x4f896fc5
mov word [rbp - 0x45], ax
mov qword [rbp - 9], 0x5f44adea
mov al, byte [0x18004e1b7]
mov r15b, byte [0x18004e2c0]
mov byte [rbp + 0x7f], al
mov al, byte [0x18004e214]
mov byte [rbp + 0x77], 0x1b
mov byte [rbp - 0x40], al
mov rax, qword [0x18004e2c8]
mov byte [rbp + 0x77], al
mov byte [rbp + 0x77], al
mov eax, dword [0x18004e300]
mov rax, qword [0x18004e330]
mov byte [rbp + 0x77], 0x67
movzx eax, byte [0x18004e212]
mov qword [rbp + 0x77], rax
mov eax, 0xfffff540
mov byte [rbp + 0x77], 0xc5
mov word [rbp + 0x77], ax
movzx eax, word [0x18004e318]
movsx eax, byte [0x18004e207]
mov word [rbp + 0x77], ax
mov byte [rbp + 0x77], 0x7b
mov dword [rbp + 0x77], 0x2e6abfbb
movsx eax, byte [0x18004e1db]
mov dword [rbp + 0x77], eax
movzx eax, word [0x18004e338]
mov dword [rbp + 0x77], eax
movabs rax, 0x408676aafc241
mov qword [rbp + 0x77], rax
mov eax, 0xf934
mov word [rbp + 0x77], ax
mov al, byte [0x18004e31c]
mov byte [rbp + 0x77], al
movzx eax, word [rbp - 0x3d]
mov eax, dword [0x1801cfdf0]
mov byte [0x18004e207], al
mov dword [rbp + 0x77], eax
mov dword [rbp - 0x29], edi
mov dword [rbp - 0x25], r13d
mov dword [rbp - 0x35], 0x5c90
mov dword [rbp - 0x1d], reloc.mozglue.dll_export_full.dll_Ordinal_127
mov dword [rbp - 0x11], r12d
movzx eax, word [rbp - 0x45]
sub ecx, r14d
add ax, r14w
mov word [rbp - 0x45], ax
test ecx, ecx
jg 0x18000ccbd
mov eax, dword [rbp + 0x77]
xor r8d, r8d
add eax, 0x739
xor ecx, ecx
mov dword [rbp + 0x7f], eax
movsx eax, byte [rbp - 0x49]
imul eax, eax, 0x3daed28
mov dword [0x18004e1dc], eax
mov dword [rbp - 0x15], 0xed00460e
mov eax, dword [rbp + 0x77]
add eax, 0x54b
mov dword [rbp + 7], eax
mov eax, dword [rbp + 0x77]
movsx r9d, byte [0x18004e207]
add eax, 0x636
mov dword [rbp + 0x77], eax
call fcn.18000e21c
mov byte [rbp + 0x7f], al
xor r10d, r10d
mov al, byte [rbp + 0x7f]
test al, al
je 0x18000cd36
mov eax, dword [0x1801cfdf0]
mov qword [0x18004e2d0], rax
jmp 0x18000cd98
mov al, byte [0x18004e216]
test al, al
jne 0x18000cd63
movzx eax, word [rbp - 0x3d]
mov ecx, dword [0x18004e31c]
sub ecx, eax
movzx eax, word [rbp - 0x3d]
add ax, cx
mov word [rbp - 0x3d], ax
mov dword [0x18004e2f0], 0xce31fdb1
jmp 0x18000cd98
movsx eax, word [0x18004e314]
cmp eax, edi
jbe 0x18000cd85
movzx eax, word [0x18004e338]
sub ax, r14w
mov word [0x18004e338], ax
add rsi, r14
jmp 0x18000cd98
movsx ecx, word [rbp - 0x45]
not ecx
test ecx, ecx
je 0x18000cd98
mov eax, 0xffffb4bd
mov word [rbp - 0x39], ax
movzx eax, word [rbp - 0x45]
mov r8d, r10d
mov ecx, dword [0x18004e2f0]
mov r9d, r10d
mov eax, dword [0x18004e1dc]
mov rdx, qword [0x18004e298]
imul ecx, eax
not rdx
mov eax, r10d
test ecx, ecx
movsxd rcx, dword [0x18004e2f4]
setne r8b
test r15b, r15b
sete r9b
cmp rcx, rdx
mov dword [rbp - 0x19], r9d
seta al
cmp eax, r8d
ja 0x18000ce06
cmp qword [0x18004e290], r10
je 0x18000ce06
cmp qword [0x18004e2c8], r10
mov ecx, 0x4f
movzx eax, byte [0x18004e324]
cmovne ecx, eax
mov byte [0x18004e211], cl
mov rdi, qword [rbp + 0x67]
mov edx, 4
movsx r9d, byte [rbp - 0x40]
mov r8d, r10d
mov r11d, 0xec
lea r14d, [rdx + 4]
mov qword [rbp + 0x1f], r14
cmp byte [0x18004e1c2], r10b
je 0x18000ceb4
mov dword [0x18004e324], 2
mov eax, dword [0x18004e324]
mov byte [0x18004e206], 0x91
test eax, eax
je 0x18000ce90
sub eax, 1
je 0x18000ce72
cmp eax, 1
jne 0x18000ced1
mov rax, qword [0x18004e330]
mov ecx, 0x9c1f9faf
add rcx, rsi
and rcx, rax
mov qword [0x18004e330], rcx
jmp 0x18000ced1
lea eax, [r9 + 0xd]
mov dword [0x18004e1dc], 0x560e3c08
movsxd rcx, eax
mov rax, qword [rbp - 9]
add rcx, rax
mov qword [rbp - 9], rcx
jmp 0x18000ced1
mov rax, qword [0x18004e330]
add dword [0x18004e320], eax
movzx ecx, byte [0x18004e1b6]
mov eax, dword [0x18004e324]
xor eax, ecx
mov dword [0x18004e324], eax
jmp 0x18000ced1
mov rcx, qword [rbp + 0x17]
movzx eax, r13w
cmp rax, rcx
jne 0x18000ced1
movsx ecx, byte [rbp - 0x41]
add ecx, 0xc2
mov dword [0x18004e2f4], ecx
movzx eax, byte [rbp + 0x7f]
add ax, r11w
mov word [rbp - 0x45], ax
movzx eax, word [0x18004e318]
sar ax, 5
mov word [0x18004e2b0], ax
mov eax, dword [0x1801cfdf0]
mov dword [rbp - 0x25], eax
mov al, byte [0x18004e30c]
add al, 0x44
mov byte [rbp + 0x77], dl
movzx ecx, byte [rbp + 0x77]
mov byte [0x18004e1c2], al
mov byte [0x18004e1c3], r10b
test ecx, ecx
je 0x18000cfc7
sub ecx, 1
je 0x18000cf94
sub ecx, 1
je 0x18000cf85
sub ecx, 1
je 0x18000cf5e
cmp ecx, 1
jne 0x18000d016
mov rax, qword [0x18004e2a8]
mov rcx, r10
mov r12b, byte [0x18004e2e8]
add rax, 0x6fad
sete cl
xor r12b, 0x36
mov qword [0x18004e2d0], rcx
jmp 0x18000d016
movzx eax, byte [rbp + 0x7f]
xor rax, 0xb3c1
mov qword [0x18004e2f8], rax
movsx r13d, byte [rbp - 0x41]
movzx eax, word [rbp - 0x39]
sub r13w, ax
not r13w
jmp 0x18000d016
movzx eax, word [rbp - 0x45]
mov byte [0x18004e213], al
jmp 0x18000d016
mov rax, qword [0x18004e2a8]
movsx rcx, byte [0x18004e206]
lea rax, [rax*2 + 0x32d8]
mov qword [0x18004e2a8], rax
mov rax, qword [rbp - 9]
cmp rax, rcx
mov ecx, r10d
sete cl
mov dword [0x18004e2f4], ecx
jmp 0x18000d016
mov al, byte [rbp - 0x49]
movzx ecx, word [0x18004e2b0]
mov rax, qword [0x18004e330]
xor cl, al
mov rax, qword [0x18004e2d0]
test rax, rax
not cl
sete al
xor al, r15b
add al, cl
mov ecx, r10d
cmp qword [0x18004e328], r10
not al
cmove ecx, eax
movsx eax, byte [0x18004e30c]
movsx ecx, cl
imul ecx, eax
movsx eax, r13b
movsx r12d, cl
imul r12d, eax
mov eax, dword [rbp - 0x25]
mov r12b, 2
add eax, 0x3bc
mov dword [rbp - 0x31], eax
mov al, byte [rbp - 0x41]
mov qword [rbp + 0xf], 0x68
mov al, byte [rbp + 0x77]
add al, r12b
mov dword [rbp + 0xb], eax
mov eax, dword [rbp - 0x25]
add eax, 0x4d7
mov dword [rbp - 0x21], eax
mov eax, dword [rbp - 0x25]
add eax, 0x5ad
mov dword [rbp - 0x25], eax
mov eax, dword [rbp - 0x21]
mov edx, dword [rbp - 0x31]
sub edx, eax
mov eax, dword [rbp - 0x31]
imul ecx, eax, 0xf6
cmp edx, ecx
je 0x18000d0a3
movzx eax, word [0x18004e310]
lea edx, [r8*4]
add eax, r11d
mov qword [0x18004e2c8], rax
mov al, byte [rdx + rbx]
mov byte [rdx + rdi], al
lea eax, [rdx + 1]
mov ecx, eax
mov al, byte [rax + rbx]
mov byte [rcx + rdi], al
lea eax, [rdx + 2]
mov ecx, eax
mov al, byte [rax + rbx]
mov byte [rcx + rdi], al
lea eax, [rdx + 3]
mov ecx, eax
mov al, byte [rax + rbx]
mov byte [rcx + rdi], al
inc r8d
mov edx, 4
cmp r8d, r14d
jb 0x18000ce25
movzx ecx, word [rbp - 0x3d]
movsx eax, word [0x18004e254]
mov r9d, dword [rbp - 0x19]
mov edi, dword [rbp - 0x29]
mov dword [rbp - 0x25], r13d
mov dword [rbp - 0x11], r12d
cmp eax, ecx
jl 0x18000d0e8
mov eax, 0x906cefd8
sub eax, edi
mov dil, 0x63
mov byte [rbp - 0x40], dil
mov dword [0x18004e2f0], eax
jmp 0x18000d123
movzx eax, word [0x18004e2e4]
mov dil, byte [rbp - 0x40]
cmp eax, r9d
jb 0x18000d123
mov rax, qword [rbp + 0xf]
test rsi, rsi
mov rcx, r10
sete cl
add rcx, rax
not rcx
mov qword [0x18004e2c0], rcx
mov cl, byte [rbp + 0x7f]
mov rax, qword [rbp + 0x17]
and ecx, 0x4b
add rax, rcx
mov qword [rbp + 0x17], rax
movsx r9d, r12b
mov r8, r14
mov dword [rbp - 0x29], r9d
mov r11d, 0x5c90
mov qword [rbp - 1], r14
mov r12d, 4
lea edx, [r9 - 0x86dc]
mov rax, qword [rbp - 9]
mov ebx, r12d
movzx ecx, word [0x18004e30c]
test rax, rax
mov dword [rbp - 0x21], ebx
cmovne ecx, dword [0x18004e1c4]
movsxd rax, ecx
mov qword [rbp + 0xf], rax
movsx eax, byte [0x18004e216]
mov word [0x18004e2b4], ax
mov eax, dword [0x1801cfdf0]
mov dword [0x18004e1c4], edx
mov edx, r10d
mov dword [rbp - 0x31], eax
movzx eax, r11w
cmp qword [0x18004e2d8], rax
mov eax, r10d
setle dl
cmp qword [0x18004e2d8], 0x4f
setle al
cmp edx, eax
jb 0x18000d1ee
xor edx, edx
xor ecx, ecx
mov r8d, 0xc1
call fcn.18000e500
mov byte [rbp + 0x7f], al
xor r10d, r10d
mov al, byte [rbp + 0x7f]
test al, al
je 0x18000d2af
movzx eax, word [rbp - 0x45]
test ax, ax
je 0x18000d286
mov rax, qword [0x18004e2b8]
add qword [0x18004e2e8], rax
mov r11d, dword [rbp - 0x35]
mov r8, qword [rbp - 1]
mov r9d, dword [rbp - 0x29]
mov eax, dword [rbp - 0x31]
movzx ecx, word [0x18004e30c]
add eax, 0x496
mov dword [rbp - 0x19], eax
movsx eax, byte [0x18004e206]
cmp ecx, eax
jne 0x18000d229
movsx eax, dil
mov ecx, r10d
add eax, eax
mov rax, qword [0x18004e298]
sete cl
sub cx, ax
movzx r11d, cx
mov dword [rbp - 0x35], r11d
mov eax, dword [rbp - 0x31]
add eax, 0x6d1
mov dword [rbp - 0x19], eax
movzx ecx, byte [rbp + 0x77]
movsx eax, r15b
cmp eax, ecx
jge 0x18000d2f9
mov rax, qword [0x18004e2b8]
mov ecx, r12d
test rax, rax
cmovne ecx, r9d
mov dword [0x18004e304], ecx
movzx eax, word [rbp - 0x3d]
movsxd rcx, dword [rbp - 0x15]
add rcx, qword [0x18004e328]
movzx edx, word [0x18004e214]
mov rsi, qword [rbp + 0x17]
xor rdx, rax
xor rcx, rdx
xor rsi, rcx
not rsi
jmp 0x18000d37b
mov rax, qword [rbp - 9]
test rax, rax
je 0x18000d1e2
mov rax, qword [rbp - 9]
test rax, rax
je 0x18000d2a1
mov al, byte [rbp - 0x49]
jmp 0x18000d2a7
mov al, byte [0x18004e30c]
mov byte [rbp + 0x77], al
jmp 0x18000d1e2
mov eax, dword [0x18004e2f4]
test eax, eax
jne 0x18000d2d1
mov al, byte [0x18004e1db]
test al, al
jne 0x18000d2d1
mov al, byte [0x18004e213]
test al, al
je 0x18000d1e2
movzx ecx, word [0x18004e310]
mov r11d, dword [rbp - 0x35]
movzx eax, r11w
imul ecx, eax
movzx eax, word [0x18004e30c]
mov word [0x18004e310], cx
mov dword [rbp - 0x15], eax
jmp 0x18000d1e6
mov eax, dword [0x18004e1dc]
test eax, eax
je 0x18000d312
movzx ebx, byte [0x18004e1c2]
shr ebx, 6
mov dword [rbp - 0x21], ebx
jmp 0x18000d37b
movzx eax, word [rbp - 0x3d]
test ax, ax
je 0x18000d344
movzx ecx, byte [rbp + 0x7f]
movzx edx, byte [rbp + 0x7f]
not ecx
mov eax, dword [0x18004e1c4]
add edx, ecx
movsx ecx, word [rbp - 0x39]
sar eax, 6
add ecx, edx
mov byte [0x18004e206], al
mov dword [0x18004e300], ecx
jmp 0x18000d37b
mov rax, qword [0x18004e2b8]
mov edx, r10d
test rax, rax
mov ecx, r10d
mov eax, dword [0x18004e304]
sete dl
not eax
cmp edx, eax
movsx eax, word [0x18004e308]
seta cl
cmp eax, ecx
je 0x18000d37b
mov eax, dword [0x18004e2a8]
mov dword [0x18004e324], eax
mov eax, dword [rbp - 0x31]
mov ecx, 0xffffff2f
add eax, 0x626
mov dword [rbp - 0x31], eax
mov eax, dword [rbp - 0x19]
sub ecx, eax
mov eax, dword [rbp - 0x31]
add ecx, eax
mov eax, dword [rbp - 0x19]
add eax, 0x375
cmp eax, ecx
je 0x18000d979
movsx ecx, word [0x18004e318]
mov edx, 0x124
mov eax, dword [0x18004e2e0]
add ecx, 0xffffff5b
movsx r8d, byte [0x18004e207]
add eax, ecx
add dword [rbp - 0x1d], edx
mov dword [0x18004e2e0], eax
imul eax, r8d, 0x10d4f95c
cdqe
mov qword [0x18004e2b8], rax
sub rdx, 1
jne 0x18000d3d0
movzx eax, word [0x18004e310]
lea edx, [r14*4 - 4]
mov r10, qword [rbp + 0x67]
add eax, 0x194dae91
mov ecx, dword [rbp + 7]
mov dword [0x18004e31c], eax
lea eax, [rdx + 1]
movzx r12d, byte [rax + r10]
lea eax, [rdx + 2]
movzx r13d, byte [rax + r10]
lea eax, [rdx + 3]
mov r9b, byte [rax + r10]
mov eax, dword [rbp + 7]
sub ecx, eax
mov eax, dword [rbp + 7]
movzx edi, byte [rdx + r10]
xor eax, 0x1dd
imul eax, eax, 0x17b
mov byte [rbp - 0x2d], r9b
cmp eax, ecx
je 0x18000d8a5
mov al, byte [rbp - 0x49]
inc al
mov byte [rbp - 0x49], al
test r14b, 7
jne 0x18000d8a5
xor edx, edx
xor ecx, ecx
call fcn.18000dea4
movsx edx, word [0x18004e254]
xor r10d, r10d
mov word [0x18004e310], ax
mov ecx, r10d
movsx eax, r15b
cmp dx, ax
mov eax, r10d
setge cl
cmp edx, 0x3f
setge al
cmp ecx, eax
je 0x18000d519
test dx, dx
je 0x18000d4c2
movzx eax, word [0x1801cfdf0]
mov r9d, dword [rbp - 0x1d]
and edx, r9d
mov word [0x18004e338], ax
movsx eax, word [rbp - 0x45]
sub edx, eax
movzx eax, word [rbp - 0x3d]
add edx, dword [0x18004e31c]
sub al, bl
xor al, dl
mov byte [0x18004e213], al
jmp 0x18000d51d
test rsi, rsi
jne 0x18000d4d0
cmp dword [0x18004e31c], r10d
je 0x18000d4e7
mov al, byte [0x18004e1b6]
test al, al
je 0x18000d4e7
movzx eax, word [0x18004e318]
shl ax, 8
jmp 0x18000d515
cmp word [0x18004e26c], r10w
mov rcx, r10
mov rax, qword [rbp - 9]
mov edx, r10d
sete cl
cmp rcx, rax
movzx eax, word [0x18004e22c]
setle dl
sub eax, dword [rbp - 0x29]
cmp edx, eax
jge 0x18000d519
mov eax, 0x6e8a
mov word [rbp - 0x25], ax
mov r9d, dword [rbp - 0x1d]
mov eax, dword [0x1801cfdf0]
mov r8d, 0x243
mov r14d, dword [rbp - 0x35]
mov dword [rbp - 0x31], eax
mov eax, dword [0x18004e2e0]
test eax, eax
je 0x18000d56c
movzx ecx, word [0x18004e338]
movzx edx, word [0x18004e214]
movzx eax, r14w
imul ecx, eax
mov eax, dword [rbp - 0x15]
or edx, ecx
mov ecx, r10d
test eax, eax
mov eax, r10d
cmove ecx, edx
test ecx, ecx
sete al
mov dword [0x18004e320], eax
jmp 0x18000d5ab
cmp byte [0x18004e206], r10b
jne 0x18000d5ab
mov eax, dword [0x18004e2f4]
mov cl, byte [0x18004e214]
inc cl
movzx ebx, al
movzx ecx, cl
imul ebx, ecx
mov ecx, dword [0x18004e2f4]
mov edx, dword [0x18004e2f0]
not ecx
add edx, ecx
movsx ecx, word [rbp - 0x45]
xor ecx, edx
mov dword [0x18004e1dc], ecx
mov dword [rbp + 0xb], ebx
sub r8, 1
jne 0x18000d530
mov eax, dword [rbp - 0x31]
mov rcx, r10
mov ebx, dword [rbp - 0x21]
add eax, 0x425
mov r14, qword [rbp + 0x1f]
mov r8d, 0x1b4
mov dword [rbp - 0x19], eax
mov rax, qword [rbp - 9]
test rax, rax
sete cl
add rcx, qword [0x18004e2e8]
mov qword [0x18004e328], rcx
cmp byte [0x18004e207], r10b
mov rax, r10
mov rdx, qword [rbp + 0xf]
movsx rcx, word [rbp - 0x39]
sete al
not rdx
xor rdx, rax
mov eax, r10d
imul rcx, rdx
test rcx, rcx
sete al
mov word [rbp - 0x39], ax
sub r8, 1
jne 0x18000d5e8
mov eax, dword [rbp - 0x31]
add eax, 0x4f1
mov dword [rbp - 0x21], eax
lea eax, [r8 + 4]
mov word [0x18004e22c], ax
mov eax, 0xffffcd48
mov word [rbp - 0x39], ax
movzx eax, byte [rbp + 0x77]
movsx ecx, word [0x18004e314]
imul ecx, eax
mov al, byte [rbp + 0x77]
sub al, cl
movzx ecx, word [0x18004e22c]
mov byte [rbp + 0x77], al
test ecx, ecx
je 0x18000d6e9
sub ecx, 1
je 0x18000d6c2
sub ecx, 1
je 0x18000d6b8
sub ecx, 1
je 0x18000d694
cmp ecx, 1
jne 0x18000d716
movzx eax, word [rbp - 0x3d]
mov r11d, dword [rbp - 0x35]
add al, 0x75
mov byte [rbp - 0x41], al
movzx eax, r11w
sub qword [0x18004e328], rax
jmp 0x18000d71a
movsx eax, word [rbp - 0x45]
movsx ecx, word [0x18004e2b0]
add eax, ebx
cdqe
xor ecx, 0x82be
mov qword [0x18004e290], rax
mov dword [0x18004e320], ecx
jmp 0x18000d716
mov r15b, byte [rbp + 0x77]
sub r15b, 0x5c
jmp 0x18000d716
movzx r11d, word [0x18004e30c]
mov ecx, 0x46d1
movzx eax, word [rbp - 0x39]
sub r11w, cx
mov ecx, 0x2705
mov dword [rbp - 0x35], r11d
sub ax, cx
mov word [rbp - 0x45], ax
jmp 0x18000d71a
mov eax, dword [0x18004e2f0]
mov ecx, 0x68e3
sub ax, cx
movzx ecx, word [rbp - 0x39]
mov word [0x18004e254], ax
movzx eax, word [0x18004e30c]
xor cx, ax
add cx, ax
mov word [0x18004e30c], cx
mov r11d, dword [rbp - 0x35]
mov eax, dword [rbp - 0x31]
mov ecx, 0x1e7
add eax, 0x65c
mov dword [rbp - 0x21], eax
mov edx, dword [rbp - 0x21]
mov eax, dword [rbp - 0x19]
imul edx, eax
mov eax, dword [rbp - 0x21]
sub ecx, eax
imul eax, ecx, 0x9c
cmp eax, edx
je 0x18000d89d
mov eax, dword [0x18004e2e0]
test eax, eax
je 0x18000d7a9
test r15b, r15b
je 0x18000d7c3
mov rax, qword [0x18004e328]
mov r8d, r10d
neg rax
mov rax, qword [0x18004e330]
sbb ecx, ecx
neg ecx
add ecx, 0xb6
test rax, rax
movzx eax, word [0x18004e338]
mov dl, byte [rbp + 0x7f]
sete r8b
and dl, al
mov eax, dword [rbp + 0xb]
add r8d, r9d
xor r8d, ecx
movzx edx, dl
not al
movzx ecx, al
imul edx, ecx
movzx eax, r8b
movzx ecx, dl
imul ecx, eax
mov byte [rbp + 0x77], cl
jmp 0x18000d7c3
movzx ecx, word [0x18004e338]
mov al, byte [rbp - 0x41]
not cl
sub cl, al
movsx eax, r9b
movsx r15d, cl
imul r15d, eax
movsx rax, r15b
mov r8d, r10d
mov qword [0x1801fd240], rax
movzx eax, byte [0x18004e213]
cmp word [0x18004e214], ax
mov eax, r10d
setne r8b
cmp word [0x18004e214], 0x64
setne al
cmp r8d, eax
jne 0x18000d859
movzx eax, word [rbp - 0x3d]
movsx r8, byte [rbp - 0x11]
add rax, 0xae
mov qword [0x18004e2f8], rax
movabs rax, 0xc5f0afc939c3f
movsx ecx, byte [rbp - 0x49]
sub r8, rax
cmp dword [0x18004e320], r10d
not ecx
movsxd rdx, ecx
mov rax, r10
movsx rcx, word [0x18004e308]
sete al
add rcx, qword [0x18004e2e8]
xor r8, rax
xor rcx, qword [0x18004e2d8]
mov rax, r10
cmp r8, rdx
cmove rax, rcx
not rax
mov qword [rbp + 0xf], rax
movzx eax, byte [rbp - 0x2d]
lea rdx, [0x180000000]
mov r9b, byte [rdi + rdx + 0x36450]
mov rcx, r12
mov r12b, byte [r13 + rdx + 0x36450]
mov r10, qword [rbp + 0x67]
mov r13b, byte [rax + rdx + 0x36450]
mov rax, qword [rbp - 1]
shr rax, 3
mov dil, byte [rax + rdx + 0x36650]
xor dil, byte [rcx + rdx + 0x36450]
jmp 0x18000d8ac
mov r9b, byte [rbp - 0x2d]
mov r10, qword [rbp + 0x67]
lea rdx, [0x180000000]
mov eax, r14d
and al, 7
cmp al, 4
jne 0x18000d8e5
movzx eax, dil
mov dil, byte [rax + rdx + 0x36450]
movzx eax, r12b
mov r12b, byte [rax + rdx + 0x36450]
movzx eax, r13b
mov r13b, byte [rax + rdx + 0x36450]
movzx eax, r9b
mov r9b, byte [rax + rdx + 0x36450]
movzx eax, word [rbp - 0x39]
test ax, ax
jne 0x18000d8f4
mov eax, dword [0x18004e2e0]
lea r8d, [r14*4]
mov ecx, 0x31e
mov al, byte [rbp + 0x77]
cmp al, 0x9b
jb 0x18000d91d
mov rax, qword [rbp - 9]
mov edx, 0xd4e
add ax, dx
mov word [0x18004e2b0], ax
jmp 0x18000d928
lea rax, [rsi + rsi]
mov qword [0x18004e2f8], rax
inc rsi
sub rcx, 1
jne 0x18000d901
lea edx, [r14*4 - 0x20]
xor dil, byte [rdx + r10]
lea eax, [rdx + 1]
mov byte [r8 + r10], dil
xor r12b, byte [rax + r10]
lea eax, [r8 + 1]
mov byte [rax + r10], r12b
lea eax, [rdx + 2]
xor r13b, byte [rax + r10]
lea r12d, [rcx + 4]
lea eax, [r8 + 2]
mov byte [rax + r10], r13b
lea eax, [rdx + 3]
xor r9b, byte [rax + r10]
lea eax, [r8 + 3]
mov r8, qword [rbp - 1]
mov byte [rax + r10], r9b
xor r10d, r10d
mov r9d, dword [rbp - 0x29]
inc r14d
mov dil, byte [rbp - 0x40]
inc r8
mov qword [rbp + 0x1f], r14
mov qword [rbp - 1], r8
lea edx, [r9 - 0x86dc]
cmp r14d, 0x3c
jb 0x18000d145
movsx ecx, word [rbp - 0x45]
movzx eax, word [rbp - 0x25]
cmp eax, ecx
jne 0x18000d9cd
movzx eax, byte [0x18004e1c3]
sub rax, 0x9d12
mov qword [rbp + 0x17], rax
mov eax, dword [0x18004e2f0]
dec eax
mov dword [0x18004e2f0], eax
jmp 0x18000d9e3
movzx eax, word [0x18004e2a8]
mov ecx, 0xe0
sub ax, cx
mov word [0x18004e30c], ax
mov rbx, qword [rsp + 0xd8]
xor eax, eax
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret