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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
mov rsi, rcx
lea rdi, [rsp + 0x52]
movabs rax, 0x2a002e0023004b
mov qword [rdi - 2], rax
mov dword [rdi + 6], 0x4b002f
mov word [rdi + 0x12], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x4b
inc rax
cmp rax, 0xa
jne 0x1800059c6
mov word [rsp + 0x64], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005a04
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005a04
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x180018654], rax
movabs rax, 0x18001800250077
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], 0x770003
mov word [rsp + 0x64], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x77
inc rax
cmp rax, 0xa
jne 0x180005a48
mov word [rsp + 0x64], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005a86
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005a86
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x18001865c], rax
movaps xmm0, xmmword [0x180014550]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x60], 0x55
mov word [rsp + 0x70], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x55
inc rax
cmp rax, 0x10
jne 0x180005ac6
mov word [rsp + 0x70], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005b04
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005b04
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x180018664], rax
movaps xmm0, xmmword [0x180014560]
movaps xmmword [rsp + 0x50], xmm0
movabs rax, 0x46002a00190023
mov qword [rsp + 0x60], rax
mov word [rsp + 0x7c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x46
inc rax
cmp rax, 0x16
jne 0x180005b4c
mov word [rsp + 0x7c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005b8a
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005b8a
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x18001866c], rax
movaps xmm0, xmmword [0x180014570]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x60], 0x420071
mov word [rsp + 0x74], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x42
inc rax
cmp rax, 0x12
jne 0x180005bcb
mov word [rsp + 0x74], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005c09
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005c09
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x180018674], rax
movaps xmm0, xmmword [0x180014580]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x6a
inc rax
cmp rax, 0xe
jne 0x180005c42
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005c80
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005c80
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x18001867c], rax
movaps xmm0, xmmword [0x180014590]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x60], 0x5f006c
mov word [rsp + 0x74], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x5f
inc rax
cmp rax, 0x12
jne 0x180005cc1
mov word [rsp + 0x74], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005cff
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005cff
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x180018674], rax
movaps xmm0, xmmword [0x1800145a0]
movaps xmmword [rsp + 0x50], xmm0
movabs rax, 0x7d001100220010
mov qword [rsp + 0x60], rax
mov word [rsp + 0x7c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x7d
inc rax
cmp rax, 0x16
jne 0x180005d47
mov word [rsp + 0x7c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005d85
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005d85
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x180018684], rax
movaps xmm0, xmmword [str.O:__.O_8.m]
movaps xmmword [rsp + 0x50], xmm0
movabs rax, 0x4f003d00100022
mov qword [rsp + 0x60], rax
mov word [rsp + 0x7c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x4f
inc rax
cmp rax, 0x16
jne 0x180005dcd
mov word [rsp + 0x7c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005e0b
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005e0b
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x18001868c], rax
movaps xmm0, xmmword [0x1800145c0]
movaps xmmword [rsp + 0x50], xmm0
movabs rax, 0x4f002300100022
mov qword [rsp + 0x60], rax
mov word [rsp + 0x7c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x4f
inc rax
cmp rax, 0x16
jne 0x180005e53
mov word [rsp + 0x7c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005e91
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005e91
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x180018694], rax
movaps xmm0, xmmword [0x1800145d0]
movaps xmmword [rsp + 0x50], xmm0
movabs rax, 0x6d001f00320000
mov qword [rsp + 0x60], rax
mov word [rsp + 0x7c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x6d
inc rax
cmp rax, 0x16
jne 0x180005ed9
mov word [rsp + 0x7c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005f17
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005f17
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x18001869c], rax
movaps xmm0, xmmword [str.6WXRiZ6]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x36
inc rax
cmp rax, 0xe
jne 0x180005f50
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180005f8e
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180005f8e
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186a4], rax
movaps xmm0, xmmword [0x1800145f0]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x15
inc rax
cmp rax, 0xe
jne 0x180005fc7
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006005
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006005
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186ac], rax
movaps xmm0, xmmword [0x180014600]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x60], 0x17
mov word [rsp + 0x70], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x17
inc rax
cmp rax, 0x10
jne 0x180006045
mov word [rsp + 0x70], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006083
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006083
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186b4], rax
movaps xmm0, xmmword [0x180014610]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x60], pe_nt_image_headers64
mov word [rsp + 0x70], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x78
inc rax
cmp rax, 0x10
jne 0x1800060c3
mov word [rsp + 0x70], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006101
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006101
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186bc], rax
movaps xmm0, xmmword [0x180014620]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x41
inc rax
cmp rax, 0xe
jne 0x18000613a
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006178
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006178
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186c4], rax
movaps xmm0, xmmword [0x180014630]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x2f
inc rax
cmp rax, 0xe
jne 0x1800061b1
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x1800061ef
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x1800061ef
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186cc], rax
movaps xmm0, xmmword [0x180014640]
movaps xmmword [rsp + 0x50], xmm0
movaps xmm0, xmmword [0x180014650]
movaps xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x70], 0x5c
mov word [rsp + 0x90], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x5c
inc rax
cmp rax, 0x20
jne 0x18000623e
mov word [rsp + 0x90], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x18000627f
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x18000627f
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186d4], rax
movaps xmm0, xmmword [0x180014660]
movaps xmmword [rsp + 0x50], xmm0
movaps xmm0, xmmword [0x180014670]
movaps xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x70], 0x7c
mov word [rsp + 0x90], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x7c
inc rax
cmp rax, 0x20
jne 0x1800062ce
mov word [rsp + 0x90], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x18000630f
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x18000630f
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186dc], rax
movaps xmm0, xmmword [0x180014680]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x60], 0x100023
mov word [rsp + 0x64], 0x7c
mov word [rsp + 0x78], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x7c
inc rax
cmp rax, 0x14
jne 0x180006357
mov word [rsp + 0x78], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006395
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006395
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186e4], rax
movaps xmm0, xmmword [0x180014690]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x60], 0x7f0052
mov word [rsp + 0x64], 0xd
mov word [rsp + 0x78], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0xd
inc rax
cmp rax, 0x14
jne 0x1800063dd
mov word [rsp + 0x78], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x18000641b
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x18000641b
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186ec], rax
movaps xmm0, xmmword [0x1800146a0]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x41
inc rax
cmp rax, 0xe
jne 0x180006454
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006492
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006492
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rbx, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rbx
call fcn.180010b5c
mov rax, qword [rbx]
mov qword [0x1800186f4], rax
movaps xmm0, xmmword [0x1800146b0]
movaps xmmword [rsp + 0x50], xmm0
mov word [rsp + 0x6c], 0
mov eax, 1
xor byte [rsp + rax*2 + 0x50], 0x30
inc rax
cmp rax, 0xe
jne 0x1800064cb
mov word [rsp + 0x6c], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
cmp word [rsp + 0x52], 0
je 0x180006509
mov rcx, rdi
call fcn.18001244c
inc eax
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], eax
je 0x180006509
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x2f]
lea rdi, [rsp + 0x48]
lea r8, [rsp + 0x30]
mov rdx, rdi
call fcn.180010b5c
mov rax, qword [rdi]
mov qword [0x1800186fc], rax
mov byte [rsi + 1], 1
mov al, 1
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret