Function at 0x180056660
Capabilities:
Authenticate hmac
Encode data using xor
Parse pe header

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x70]
sub rsp, 0x170
xor ebx, ebx
mov rdi, rcx
mov qword [rcx], rbx
mov esi, edx
mov qword [rcx + 8], rbx
movabs rdx, 0x7ffffffdfffe
mov qword [rcx + 0x10], rbx
mov qword [rcx + 0x18], rbx
mov qword [rcx + 0x20], rbx
mov rcx, qword [0x180072bf8]
mov r14, qword [0x180072640]
lea rax, [rcx - 0x10000]
cmp rax, rdx
jbe 0x18005671a
mov eax, dword [0x18006bd74]
lea rdx, [rbp + 0xb0]
mov dword [rbp + 0xb0], eax
movabs rcx, 0x64359c5288ecaf9c
movzx eax, word [0x18006bd78]
xor byte [rbp + 0xb1], 0x32
xor byte [rbp + 0xb2], 0x33
xor byte [rbp + 0xb3], 0x34
mov word [rbp + 0xb4], ax
xor al, 0x35
xor byte [rbp + 0xb5], 0x36
mov byte [rbp + 0xb4], al
mov byte [rbp + 0xb0], 0x46
call fcn.180012310
mov rcx, rax
mov qword [0x180072bf8], rax
mov qword [rbp + 0x40], rcx
lea rax, [rbp + 0x40]
mov rcx, rdi
mov qword [rsp + 0x28], rbx
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov qword [rbp + 0x48], r14
mov edx, esi
mov qword [rbp + 0x50], rbx
call fcn.1800124a0
mov dword [rbp + 0xb0], eax
test eax, eax
jns 0x1800570c3
movups xmm1, xmmword [0x18006b8c8]
movzx edx, word [0x18006b8ec]
movups xmm0, xmmword [0x18006b8b8]
mov ecx, dword [0x18006b8e8]
movups xmmword [rsp + 0x40], xmm1
xor byte [rsp + 0x41], 0x42
xor byte [rsp + 0x42], 0x43
xor byte [rsp + 0x43], 0x44
xor byte [rsp + 0x44], 0x45
xor byte [rsp + 0x45], 0x46
xor byte [rsp + 0x46], 0x47
xor byte [rsp + 0x47], 0x48
xor byte [rsp + 0x48], 0x49
xor byte [rsp + 0x49], 0x4a
xor byte [rsp + 0x4a], 0x4b
xor byte [rsp + 0x4b], 0x4c
xor byte [rsp + 0x4c], 0x4d
xor byte [rsp + 0x4d], 0x4e
xor byte [rsp + 0x4e], 0x4f
xor byte [rsp + 0x4f], 0x50
movups xmmword [rsp + 0x30], xmm0
xor byte [rsp + 0x31], 0x32
movups xmm0, xmmword [0x18006b8d8]
xor byte [rsp + 0x32], 0x33
xor byte [rsp + 0x33], 0x34
xor byte [rsp + 0x34], 0x35
xor byte [rsp + 0x35], 0x36
xor byte [rsp + 0x36], 0x37
xor byte [rsp + 0x37], 0x38
xor byte [rsp + 0x38], 0x39
xor byte [rsp + 0x39], 0x3a
xor byte [rsp + 0x3a], 0x3b
xor byte [rsp + 0x3b], 0x3c
xor byte [rsp + 0x3c], 0x3d
xor byte [rsp + 0x3d], 0x3e
xor byte [rsp + 0x3e], 0x3f
xor byte [rsp + 0x3f], 0x40
movups xmmword [rsp + 0x50], xmm0
xor byte [rsp + 0x51], 0x52
xor byte [rsp + 0x52], 0x53
xor byte [rsp + 0x53], 0x54
xor byte [rsp + 0x54], 0x55
xor byte [rsp + 0x55], 0x56
xor byte [rsp + 0x56], 0x57
xor byte [rsp + 0x57], 0x58
xor byte [rsp + 0x58], 0x59
xor byte [rsp + 0x59], 0x5a
xor byte [rsp + 0x5a], 0x5b
xor byte [rsp + 0x5b], 0x5c
xor byte [rsp + 0x5c], 0x5d
xor byte [rsp + 0x5d], 0x5e
xor byte [rsp + 0x5e], 0x5f
xor byte [rsp + 0x5f], 0x60
mov dword [rsp + 0x60], ecx
xor cl, 0x61
xor byte [rsp + 0x61], 0x62
xor byte [rsp + 0x62], 0x31
xor byte [rsp + 0x63], 0x32
movd eax, xmm1
movups xmm1, xmmword [0x18006b888]
mov word [rsp + 0x64], dx
xor dl, 0x33
xor al, 0x41
mov qword [rsp + 0x1a8], r12
mov byte [rsp + 0x40], al
movd eax, xmm0
movups xmm0, xmmword [0x18006b878]
mov qword [rsp + 0x168], r13
xor al, 0x51
mov qword [rsp + 0x160], r15
xor byte [rsp + 0x65], 0x34
movups xmmword [rsp + 0x66], xmm0
mov byte [rsp + 0x30], 0x68
movups xmm0, xmmword [0x18006b898]
mov byte [rsp + 0x50], al
movups xmmword [rsp + 0x76], xmm1
mov byte [rsp + 0x60], cl
movsd xmm1, qword [0x18006b8a8]
movups xmmword [rbp - 0x7a], xmm0
mov byte [rsp + 0x64], dl
movsd qword [rbp - 0x6a], xmm1
movzx eax, word [0x18006b8b0]
lea rcx, [rsp + 0x66]
mov word [rbp - 0x62], ax
mov r10d, 1
lea rax, [rsp + 0x66]
mov r11d, 2
sub r10, rax
mov esi, 3
lea rax, [rsp + 0x66]
mov r14d, 4
sub r11, rax
mov r15d, 5
lea rax, [rsp + 0x66]
mov r12d, 6
sub rsi, rax
mov r13d, 7
lea rax, [rsp + 0x66]
sub r14, rax
lea rax, [rsp + 0x66]
sub r15, rax
lea rax, [rsp + 0x66]
sub r12, rax
lea rax, [rsp + 0x66]
sub r13, rax
mov eax, 8
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp + 0xb8], rax
mov eax, 9
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x60], rax
mov eax, 0xa
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x58], rax
mov eax, 0xb
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x50], rax
mov eax, 0xc
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x48], rax
mov eax, 0xd
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x40], rax
mov eax, 0xe
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x38], rax
mov eax, 0xf
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x30], rax
mov eax, 0x10
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x28], rax
mov eax, 0x11
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x20], rax
mov eax, 0x12
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x18], rax
mov eax, 0x13
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 0x10], rax
mov eax, 0x14
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp - 8], rax
mov eax, 0x15
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp], rax
mov eax, 0x16
mov rdi, qword [rbp + 0xb8]
sub rax, rcx
mov r9, qword [rbp - 0x60]
lea rcx, [rsp + 0x66]
mov qword [rbp + 8], rax
mov eax, 0x17
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp + 0x10], rax
mov eax, 0x18
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp + 0x18], rax
mov eax, 0x19
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp + 0x20], rax
mov eax, 0x1a
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp + 0x28], rax
mov eax, 0x1b
sub rax, rcx
lea rcx, [rsp + 0x66]
mov qword [rbp + 0x30], rax
mov eax, 0x1c
sub rax, rcx
mov qword [rbp + 0x38], rax
movabs rax, 0x47ae147ae147ae15
nop dword [rax]
mul rbx
mov rax, rbx
lea r8, [rsp + 0x66]
sub rax, rdx
add r8, rbx
shr rax, 1
add rax, rdx
shr rax, 5
movsx eax, al
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r10 + r8]
add al, 0x31
xor byte [r8], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r11 + r8]
add al, 0x32
xor byte [r8 + 1], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [rsi + r8]
add al, 0x33
xor byte [r8 + 2], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r14 + r8]
add al, 0x34
xor byte [r8 + 3], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r15 + r8]
add al, 0x35
xor byte [r8 + 4], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r12 + r8]
add al, 0x36
xor byte [r8 + 5], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r8 + r13]
add al, 0x37
xor byte [r8 + 6], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [rdi + r8]
add al, 0x38
xor byte [r8 + 7], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
lea rcx, [r9 + r8]
add al, 0x39
xor byte [r8 + 8], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x58]
add al, 0x3a
add rcx, r8
xor byte [r8 + 9], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x50]
add al, 0x3b
add rcx, r8
xor byte [r8 + 0xa], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x48]
add al, 0x3c
xor byte [r8 + 0xb], al
movabs rax, 0x47ae147ae147ae15
add rcx, r8
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x40]
add rcx, r8
add al, 0x3d
xor byte [r8 + 0xc], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x38]
add rcx, r8
add al, 0x3e
xor byte [r8 + 0xd], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x30]
add rcx, r8
add al, 0x3f
xor byte [r8 + 0xe], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x28]
add al, 0x40
add rcx, r8
xor byte [r8 + 0xf], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x20]
add al, 0x41
add rcx, r8
xor byte [r8 + 0x10], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
add al, 0x42
xor byte [r8 + 0x11], al
mov rcx, qword [rbp - 0x18]
movabs rax, 0x47ae147ae147ae15
add rcx, r8
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 0x10]
add rcx, r8
add al, 0x43
xor byte [r8 + 0x12], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp - 8]
add rcx, r8
add al, 0x44
xor byte [r8 + 0x13], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp]
add rcx, r8
add al, 0x45
xor byte [r8 + 0x14], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 8]
add rcx, r8
add al, 0x46
xor byte [r8 + 0x15], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 0x10]
add al, 0x47
add rcx, r8
xor byte [r8 + 0x16], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 0x18]
add rcx, r8
add al, 0x48
xor byte [r8 + 0x17], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 0x20]
add rcx, r8
add al, 0x49
xor byte [r8 + 0x18], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 0x28]
add al, 0x4a
add rcx, r8
xor byte [r8 + 0x19], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 0x30]
add al, 0x4b
add rcx, r8
xor byte [r8 + 0x1a], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
sub al, cl
mov rcx, qword [rbp + 0x38]
add al, 0x4c
add rcx, r8
xor byte [r8 + 0x1b], al
movabs rax, 0x47ae147ae147ae15
mul rcx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 5
movsx eax, cl
imul ecx, eax, 0x32
movzx eax, bl
add rbx, 0x1d
sub al, cl
add al, 0x4d
xor byte [r8 + 0x1c], al
movabs rax, 0x47ae147ae147ae15
cmp rbx, 0x3a
jb 0x180056ae0
mov r8d, dword [rbp + 0xb0]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x66]
call fcn.180001140
mov rax, qword [rbp + 0xa0]
mov r15, qword [rsp + 0x160]
mov r13, qword [rsp + 0x168]
mov r12, qword [rsp + 0x1a8]
add rsp, 0x170
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rax, rdi
add rsp, 0x170
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret