Function at 0x180136114
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x138]
sub rsp, 0x200
mov qword [rbp + 0x90], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov ebx, r9d
mov esi, r8d
mov r14, rdx
mov r15, rcx
mov r13, qword [rcx + 0x210]
mov r12d, 0x30
mov r8d, r12d
mov rdx, r13
mov rcx, qword [r14]
call fcn.18012f094
mov rdi, rax
xor eax, eax
test rdi, rdi
je 0x180136c4f
mov qword [rsp + 0x20], rax
lea r9d, [r12 - 0x2c]
mov r8d, r12d
mov edx, esi
mov rcx, r14
call fcn.18012e724
mov qword [rbp + 0x140], rax
xor esi, esi
test rax, rax
je 0x180136c39
mov rax, qword [rbp + 0x160]
mov qword [rdi + 0x18], rax
lea ecx, [rsi + 3]
lea edx, [rsi + 2]
lea eax, [rsi + 1]
cmp ebx, eax
jne 0x1801361d1
mov r9d, r12d
mov r8, rdi
mov rdx, qword [rbp + 0x140]
mov rcx, qword [r14]
call fcn.18013a778
test eax, eax
setne cl
jmp 0x180136245
cmp ebx, edx
jne 0x180136215
mov rdx, qword [rbp + 0x140]
mov qword [rbp + 0x140], rsi
lea rax, [rbp + 0x140]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
mov r9, r12
mov r8, rdi
mov rcx, qword [r14]
call fcn.18012f46c
mov rcx, qword [rbp + 0x140]
neg rcx
sbb cl, cl
and cl, al
jmp 0x180136245
cmp ebx, ecx
jne 0x180136c39
lea rax, [r14 + 8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
mov r9, r12
mov r8, rdi
mov rdx, qword [rbp + 0x140]
mov rcx, r14
call fcn.1800118c4
mov cl, al
test cl, cl
je 0x180136c39
mov ecx, dword [0x180195f94]
mov rax, qword gs:[0x58]
mov r8d, 4
mov r12, qword [rax + rcx*8]
or rbx, 0xffffffffffffffff
lea edx, [rbx + 8]
mov eax, dword [r12 + r8]
cmp dword [0x1801a17e0], eax
jle 0x180136461
lea rcx, [0x1801a17e0]
call fcn.180157af0
cmp dword [0x1801a17e0], ebx
jne 0x18013645c
lea rax, [rbp + 0x30]
mov qword [rbp + 0x148], rax
mov byte [rsp + 0x30], 0x5b
mov byte [rsp + 0x31], 0x6d
mov byte [rsp + 0x32], 0x7c
mov byte [rsp + 0x33], 0x58
mov byte [rsp + 0x34], 0x7a
mov byte [rsp + 0x35], 0x77
mov byte [rsp + 0x36], 0x78
mov byte [rsp + 0x37], 0x5f
mov byte [rsp + 0x38], sil
mov al, byte [rsp + 0x30]
mov rcx, rsi
lea edx, [rbx + 9]
mov al, byte [rsp + rcx + 0x30]
sub al, dl
mov byte [rsp + rcx + 0x30], al
inc rcx
cmp rcx, rdx
jb 0x1801362d7
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], rsi
mov qword [rbp + 0x48], rsi
lea rax, [rsp + 0x30]
mov r8, rbx
inc r8
cmp byte [rax + r8], sil
jne 0x180136300
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x30]
call fcn.18000c7ac
nop
mov dword [rsp + 0x48], 0x3f
mov byte [rsp + 0x4c], 0x4a
mov byte [rsp + 0x4d], 0x4c
mov byte [rsp + 0x4e], 0x5a
mov byte [rsp + 0x4f], 0x4d
mov eax, 0xc
mov byte [rsp + 0x50], al
mov eax, 0xd
mov byte [rsp + 0x51], al
xor eax, eax
mov byte [rsp + 0x52], al
mov al, byte [rsp + 0x4c]
mov rdx, rsi
mov esi, 6
mov al, byte [rsp + rdx + 0x4c]
mov ecx, dword [rsp + 0x48]
xor cl, al
mov byte [rsp + rdx + 0x4c], cl
inc rdx
cmp rdx, rsi
jb 0x180136358
xor esi, esi
mov byte [rsp + 0x52], sil
xorps xmm0, xmm0
movups xmmword [rbp - 0x30], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x20], xmm1
lea rax, [rsp + 0x4c]
mov r8, rbx
inc r8
cmp byte [rax + r8], sil
jne 0x18013638c
lea rdx, [rsp + 0x4c]
lea rcx, [rbp - 0x30]
call fcn.18000c7ac
nop
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x98]
call fcn.1800ceb58
nop
mov qword [rsp + 0x20], rsi
mov r9b, 1
lea r8, [rbp + 0x30]
mov rdx, rax
lea rcx, [0x1801a1520]
call fcn.180143a7c
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x18013640f
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013640a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18013640a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
movdqa xmm0, xmmword [0x180165930]
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x30], sil
xor edx, edx
lea r8d, [rdx + 7]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rdx + 9]
lea rcx, [rsp + 0x30]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rcx, [0x180163eac]
call fcn.1801579fc
nop
lea rcx, [0x1801a17e0]
call fcn.180157a84
mov edx, 7
mov rsi, qword [rbp + 0x140]
mov eax, 0x5c
mov word [rbp - 0x58], ax
mov eax, 0x7f
mov word [rbp - 0x56], ax
mov eax, 0x5a
mov word [rbp - 0x54], ax
mov eax, 0x7c
mov word [rbp - 0x52], ax
mov eax, 0x69
mov word [rbp - 0x50], ax
mov eax, 0x6a
mov word [rbp - 0x4e], ax
mov eax, 0x73
mov word [rbp - 0x4c], ax
mov eax, 0x68
mov word [rbp - 0x4a], ax
mov eax, 0x7a
mov word [rbp - 0x48], ax
mov word [rbp - 0x46], ax
mov eax, 0x50
mov word [rbp - 0x44], ax
mov eax, 0x75
mov word [rbp - 0x42], ax
mov eax, 0x6d
mov word [rbp - 0x40], ax
mov eax, 0x76
mov word [rbp - 0x3e], ax
xor ecx, ecx
mov word [rbp - 0x3c], cx
movzx eax, word [rbp - 0x58]
movzx eax, word [rbp + rcx*2 - 0x58]
sub ax, dx
mov word [rbp + rcx*2 - 0x58], ax
inc rcx
cmp rcx, 0xe
jb 0x1801364eb
mov r15, qword [r15 + 0x220]
lea rcx, [0x1801a1530]
cmp qword [0x1801a1548], 0x10
cmovae rcx, qword [0x1801a1530]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18013655d
lea rcx, [0x1801a1530]
cmp qword [0x1801a1548], 0x10
cmovae rcx, qword [0x1801a1530]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1801a1528], rax
mov r8, rax
lea rdx, [0x1801a1530]
call fcn.1800150f8
mov r8, rsi
lea rdx, [rbp - 0x58]
mov rcx, r15
call qword [0x1801a1520]
nop
xor edx, edx
lea r8d, [rdx + 0x1e]
lea rcx, [rbp - 0x58]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov eax, 4
mov eax, dword [r12 + rax]
cmp dword [0x1801a1510], eax
jle 0x180136793
lea rcx, [0x1801a1510]
call fcn.180157af0
cmp dword [0x1801a1510], ebx
jne 0x180136793
lea rax, [rbp + 0x50]
mov qword [rbp + 0x148], rax
mov byte [rsp + 0x39], 0x5c
mov byte [rsp + 0x3a], 0x7b
mov eax, 0x7f
mov byte [rsp + 0x3b], al
mov byte [rsp + 0x3c], 0x80
mov byte [rsp + 0x3d], 0x59
mov byte [rsp + 0x3e], 0x71
mov byte [rsp + 0x3f], al
mov byte [rsp + 0x40], al
mov eax, 0x6d
mov byte [rsp + 0x41], al
mov byte [rsp + 0x42], 0x73
mov byte [rsp + 0x43], 0x71
mov byte [rsp + 0x44], 0x63
xor esi, esi
mov byte [rsp + 0x45], sil
mov al, byte [rsp + 0x39]
mov ecx, esi
lea edx, [rsi + 0xc]
mov al, byte [rsp + rcx + 0x39]
sub al, dl
mov byte [rsp + rcx + 0x39], al
inc rcx
cmp rcx, rdx
jb 0x180136608
xorps xmm0, xmm0
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], rsi
mov qword [rbp + 0x68], rsi
lea rax, [rsp + 0x39]
mov r8, rbx
inc r8
cmp byte [rax + r8], sil
jne 0x180136631
lea rdx, [rsp + 0x39]
lea rcx, [rbp + 0x50]
call fcn.18000c7ac
nop
mov dword [rsp + 0x54], 0x3f
mov byte [rsp + 0x58], 0x4a
mov byte [rsp + 0x59], 0x4c
mov eax, 0x5a
mov byte [rsp + 0x5a], al
mov byte [rsp + 0x5b], 0x4d
mov eax, 0xc
mov byte [rsp + 0x5c], al
mov eax, 0xd
mov byte [rsp + 0x5d], al
xor eax, eax
mov byte [rsp + 0x5e], al
mov al, byte [rsp + 0x58]
mov rdx, rsi
mov esi, 6
mov al, byte [rsp + rdx + 0x58]
mov ecx, dword [rsp + 0x54]
xor cl, al
mov byte [rsp + rdx + 0x58], cl
inc rdx
cmp rdx, rsi
jb 0x18013668d
xor esi, esi
mov byte [rsp + 0x5e], sil
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp], xmm1
lea rax, [rsp + 0x58]
mov r8, rbx
inc r8
cmp byte [rax + r8], sil
jne 0x1801366c1
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x10]
call fcn.18000c7ac
nop
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0xb8]
call fcn.1800ceb58
nop
mov qword [rsp + 0x20], rsi
mov r9b, 1
lea r8, [rbp + 0x50]
mov rdx, rax
lea rcx, [0x1801a21e0]
call fcn.180143414
nop
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x180136744
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18013673f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18013673f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
movdqa xmm0, xmmword [0x180165930]
movdqu xmmword [rbp], xmm0
mov byte [rbp - 0x10], sil
xor edx, edx
lea r8d, [rdx + 7]
lea rcx, [rsp + 0x58]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rdx + 0xd]
lea rcx, [rsp + 0x39]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rcx, [0x180163ea0]
call fcn.1801579fc
nop
lea rcx, [0x1801a1510]
call fcn.180157a84
jmp 0x180136795
xor esi, esi
lea rcx, [0x1801a21f0]
cmp qword [0x1801a2208], 0x10
cmovae rcx, qword [0x1801a21f0]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x1801367ea
lea rcx, [0x1801a21f0]
cmp qword [0x1801a2208], 0x10
cmovae rcx, qword [0x1801a21f0]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1801a21e8], rax
mov r8, rax
lea rdx, [0x1801a21f0]
call fcn.1800150f8
xor r9d, r9d
xor r8d, r8d
mov edx, 0x400
mov rcx, r15
call qword [0x1801a21e0]
mov ecx, 5
mov dword [rbp - 0x7c], ecx
mov eax, dword [rbp - 0x7c]
xor ax, 0x55
mov word [rbp - 0x78], ax
mov eax, dword [rbp - 0x7c]
lea r8d, [rcx - 4]
add ax, r8w
xor ax, 0x78
mov word [rbp - 0x76], ax
mov eax, dword [rbp - 0x7c]
add ax, 2
xor ax, 0x53
mov word [rbp - 0x74], ax
mov eax, dword [rbp - 0x7c]
add ax, 3
xor ax, 0x75
mov word [rbp - 0x72], ax
mov eax, dword [rbp - 0x7c]
add ax, 4
xor ax, 0x62
mov word [rbp - 0x70], ax
mov eax, dword [rbp - 0x7c]
add ax, cx
xor ax, 0x63
mov word [rbp - 0x6e], ax
mov eax, dword [rbp - 0x7c]
add ax, 6
xor ax, 0x6c
mov word [rbp - 0x6c], ax
mov eax, dword [rbp - 0x7c]
add ax, 7
xor ax, 0x61
mov word [rbp - 0x6a], ax
mov eax, dword [rbp - 0x7c]
add ax, 8
lea ecx, [r8 + 0x72]
xor ax, cx
mov word [rbp - 0x68], ax
mov eax, dword [rbp - 0x7c]
add ax, 9
xor ax, cx
mov word [rbp - 0x66], ax
mov eax, dword [rbp - 0x7c]
add ax, 0xa
xor ax, 0x49
mov word [rbp - 0x64], ax
mov eax, dword [rbp - 0x7c]
add ax, 0xb
xor ax, 0x6e
mov word [rbp - 0x62], ax
mov eax, dword [rbp - 0x7c]
add ax, 0xc
xor ax, 0x66
mov word [rbp - 0x60], ax
mov eax, dword [rbp - 0x7c]
add ax, 0xd
xor ax, 0x6f
mov word [rbp - 0x5e], ax
xor eax, eax
mov word [rbp - 0x5c], ax
movzx eax, word [rbp - 0x78]
mov rdx, rsi
movzx eax, word [rbp + rdx*2 - 0x78]
mov ecx, dword [rbp - 0x7c]
add cx, dx
xor cx, ax
mov word [rbp + rdx*2 - 0x78], cx
add rdx, r8
cmp rdx, 0xe
jb 0x1801368e6
mov word [rbp - 0x5c], si
lea rcx, [0x1801a1530]
cmp qword [0x1801a1548], 0x10
cmovae rcx, qword [0x1801a1530]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x18013695b
lea rcx, [0x1801a1530]
cmp qword [0x1801a1548], 0x10
cmovae rcx, qword [0x1801a1530]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1801a1528], rax
mov r8, rax
lea rdx, [0x1801a1530]
call fcn.1800150f8
mov r8, r13
lea rdx, [rbp - 0x78]
mov rcx, r15
call qword [0x1801a1520]
nop
xor edx, edx
lea r8d, [rdx + 0x1e]
lea rcx, [rbp - 0x78]
call qword [sym.imp.VCRUNTIME140.dll_memset]
mov ecx, 4
mov eax, dword [r12 + rcx]
cmp dword [0x1801a2614], eax
jle 0x180136bab
lea rcx, [0x1801a2614]
call fcn.180157af0
cmp dword [0x1801a2614], ebx
jne 0x180136bab
lea rax, [rbp + 0x70]
mov qword [rbp + 0x148], rax
mov dword [rsp + 0x60], 0x59
mov byte [rsp + 0x64], 0xf
mov byte [rsp + 0x65], 0x30
mov byte [rsp + 0x66], 0x2b
mov byte [rsp + 0x67], 0x2d
mov byte [rsp + 0x68], 0x2c
mov byte [rsp + 0x69], 0x38
mov byte [rsp + 0x6a], 0x35
mov byte [rsp + 0x6b], 0x1f
mov byte [rsp + 0x6c], 0x2b
mov byte [rsp + 0x6d], 0x3c
mov byte [rsp + 0x6e], 0x3c
mov byte [rsp + 0x6f], 0x1c
mov byte [rsp + 0x70], 0x21
xor eax, eax
mov byte [rsp + 0x71], al
mov al, byte [rsp + 0x64]
mov rdx, rsi
mov esi, 0xd
lea r15d, [rsi - 0xc]
mov al, byte [rsp + rdx + 0x64]
mov ecx, dword [rsp + 0x60]
xor cl, al
mov byte [rsp + rdx + 0x64], cl
add rdx, r15
cmp rdx, rsi
jb 0x180136a13
xor esi, esi
mov byte [rsp + 0x71], sil
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], rsi
mov qword [rbp + 0x88], rsi
lea rax, [rsp + 0x64]
mov r8, rbx
inc r8
cmp byte [rax + r8], sil
jne 0x180136a4d
lea rdx, [rsp + 0x64]
lea rcx, [rbp + 0x70]
call fcn.18000c7ac
nop
mov dword [rsp + 0x74], 0x58
mov byte [rsp + 0x78], 0x33
mov byte [rsp + 0x79], 0x3d
mov byte [rsp + 0x7a], 0x2a
mov byte [rsp + 0x7b], 0x36
mov byte [rsp + 0x7c], 0x3d
mov byte [rsp + 0x7d], 0x34
mov byte [rsp + 0x7e], 0x6b
mov byte [rsp + 0x7f], 0x6a
xor eax, eax
mov byte [rbp - 0x80], al
mov al, byte [rsp + 0x78]
mov rdx, rsi
mov esi, 8
mov al, byte [rsp + rdx + 0x78]
mov ecx, dword [rsp + 0x74]
xor cl, al
mov byte [rsp + rdx + 0x78], cl
add rdx, r15
cmp rdx, rsi
jb 0x180136aa6
xor esi, esi
mov byte [rbp - 0x80], sil
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x20], xmm1
lea rax, [rsp + 0x78]
inc rbx
cmp byte [rax + rbx], sil
jne 0x180136ad6
mov r8, rbx
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x10]
call fcn.18000c7ac
nop
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0xd8]
call fcn.1800ceb58
nop
mov qword [rsp + 0x20], rsi
mov r9b, r15b
lea r8, [rbp + 0x70]
mov rdx, rax
lea rcx, [0x1801a1300]
call fcn.180069974
nop
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x180136b5c
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180136b57
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180136b57
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180157a14
movdqa xmm0, xmmword [0x180165930]
movdqu xmmword [rbp + 0x20], xmm0
mov byte [rbp + 0x10], sil
xor edx, edx
lea r8d, [rdx + 9]
lea rcx, [rsp + 0x78]
call qword [sym.imp.VCRUNTIME140.dll_memset]
nop
xor edx, edx
lea r8d, [rdx + 0xe]
lea rcx, [rsp + 0x64]
call qword [sym.imp.VCRUNTIME140.dll_memset]
lea rcx, [0x180163e94]
call fcn.1801579fc
nop
lea rcx, [0x1801a2614]
call fcn.180157a84
jmp 0x180136bb1
mov r15d, 1
mov rbx, qword [rbp + 0x140]
mov rsi, qword [r14]
lea r14, [0x1801a1310]
mov rcx, r14
cmp qword [0x1801a1328], 0x10
cmovae rcx, qword [0x1801a1310]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x180136c0b
mov rcx, r14
cmp qword [0x1801a1328], 0x10
cmovae rcx, qword [0x1801a1310]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [0x1801a1308], rax
mov r8, rax
mov rdx, r14
call fcn.1800150f8
mov r9d, 0xc000
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call qword [0x1801a1300]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov al, r15b
jmp 0x180136c4f
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor al, al
mov rbx, qword [rsp + 0x250]
add rsp, 0x200
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret