Function at 0x140001780
Capabilities:
Authenticate hmac
Encode data using base64
Encode data using xor
Generate random numbers using a mersenne twister
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1490
call fcn.1400465c0
sub rsp, rax
mov rax, qword [0x140058040]
xor rax, rsp
mov qword [rsp + 0x1480], rax
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], rcx
mov dword [rsp + 0x70], 0
xorps xmm0, xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x10], 0
mov qword [rcx + 0x18], 0
mov qword [rcx + 0x10], 0
mov qword [rcx + 0x18], 0xf
mov byte [rcx], 0
mov r15d, 1
mov dword [rsp + 0x70], r15d
xor edx, edx
mov cl, 0x30
call fcn.1400015f0
mov byte [rsp + 0x20], al
mov edx, r15d
mov cl, 0x31
call fcn.1400015f0
mov byte [rsp + 0x21], al
mov edx, 2
mov cl, 0x32
call fcn.1400015f0
mov byte [rsp + 0x22], al
mov edx, 3
mov cl, 0x33
call fcn.1400015f0
mov byte [rsp + 0x23], al
mov edx, 4
mov cl, 0x34
call fcn.1400015f0
mov byte [rsp + 0x24], al
mov edx, 5
mov cl, 0x35
call fcn.1400015f0
mov byte [rsp + 0x25], al
mov edx, 6
mov cl, 0x36
call fcn.1400015f0
mov byte [rsp + 0x26], al
mov edx, 7
mov cl, 0x37
call fcn.1400015f0
mov byte [rsp + 0x27], al
mov edx, 8
mov cl, 0x38
call fcn.1400015f0
mov byte [rsp + 0x28], al
mov edx, 9
mov cl, 0x39
call fcn.1400015f0
mov byte [rsp + 0x29], al
mov edx, 0xa
mov cl, 0x41
call fcn.1400015f0
mov byte [rsp + 0x2a], al
mov edx, 0xb
mov cl, 0x42
call fcn.1400015f0
mov byte [rsp + 0x2b], al
mov edx, 0xc
mov cl, 0x43
call fcn.1400015f0
mov byte [rsp + 0x2c], al
mov edx, 0xd
mov cl, 0x44
call fcn.1400015f0
mov byte [rsp + 0x2d], al
mov edx, 0xe
mov cl, 0x45
call fcn.1400015f0
mov byte [rsp + 0x2e], al
mov edx, 0xf
mov cl, 0x46
call fcn.1400015f0
mov byte [rsp + 0x2f], al
mov edx, 0x10
mov cl, 0x47
call fcn.1400015f0
mov byte [rsp + 0x30], al
mov edx, 0x11
mov cl, 0x48
call fcn.1400015f0
mov byte [rsp + 0x31], al
mov edx, 0x12
mov cl, 0x49
call fcn.1400015f0
mov byte [rsp + 0x32], al
mov edx, 0x13
mov cl, 0x4a
call fcn.1400015f0
mov byte [rsp + 0x33], al
mov edx, 0x14
mov cl, 0x4b
call fcn.1400015f0
mov byte [rsp + 0x34], al
mov edx, 0x15
mov cl, 0x4c
call fcn.1400015f0
mov byte [rsp + 0x35], al
mov edx, 0x16
mov cl, 0x4d
call fcn.1400015f0
mov byte [rsp + 0x36], al
mov edx, 0x17
mov cl, 0x4e
call fcn.1400015f0
mov byte [rsp + 0x37], al
mov edx, 0x18
mov cl, 0x4f
call fcn.1400015f0
mov byte [rsp + 0x38], al
mov edx, 0x19
mov cl, 0x50
call fcn.1400015f0
mov byte [rsp + 0x39], al
mov edx, 0x1a
mov cl, 0x51
call fcn.1400015f0
mov byte [rsp + 0x3a], al
mov edx, 0x1b
mov cl, 0x52
call fcn.1400015f0
mov byte [rsp + 0x3b], al
mov edx, 0x1c
mov cl, 0x53
call fcn.1400015f0
mov byte [rsp + 0x3c], al
mov edx, 0x1d
mov cl, 0x54
call fcn.1400015f0
mov byte [rsp + 0x3d], al
mov edx, 0x1e
mov cl, 0x55
call fcn.1400015f0
mov byte [rsp + 0x3e], al
mov edx, 0x1f
mov cl, 0x56
call fcn.1400015f0
mov byte [rsp + 0x3f], al
mov edx, 0x20
mov cl, 0x57
call fcn.1400015f0
mov byte [rsp + 0x40], al
mov edx, 0x21
mov cl, 0x58
call fcn.1400015f0
mov byte [rsp + 0x41], al
mov edx, 0x22
mov cl, 0x59
call fcn.1400015f0
mov byte [rsp + 0x42], al
mov edx, 0x23
mov cl, 0x5a
call fcn.1400015f0
mov byte [rsp + 0x43], al
mov edx, 0x24
mov cl, 0x61
call fcn.1400015f0
mov byte [rsp + 0x44], al
mov edx, 0x25
mov cl, 0x62
call fcn.1400015f0
mov byte [rsp + 0x45], al
mov edx, 0x26
mov cl, 0x63
call fcn.1400015f0
mov byte [rsp + 0x46], al
mov edx, 0x27
mov cl, 0x64
call fcn.1400015f0
mov byte [rsp + 0x47], al
mov edx, 0x28
mov cl, 0x65
call fcn.1400015f0
mov byte [rsp + 0x48], al
mov edx, 0x29
mov cl, 0x66
call fcn.1400015f0
mov byte [rsp + 0x49], al
mov edx, 0x2a
mov cl, 0x67
call fcn.1400015f0
mov byte [rsp + 0x4a], al
mov edx, 0x2b
mov cl, 0x68
call fcn.1400015f0
mov byte [rsp + 0x4b], al
mov edx, 0x2c
mov cl, 0x69
call fcn.1400015f0
mov byte [rsp + 0x4c], al
mov edx, 0x2d
mov cl, 0x6a
call fcn.1400015f0
mov byte [rsp + 0x4d], al
mov edx, 0x2e
mov cl, 0x6b
call fcn.1400015f0
mov byte [rsp + 0x4e], al
mov edx, 0x2f
mov cl, 0x6c
call fcn.1400015f0
mov byte [rsp + 0x4f], al
mov edx, 0x30
mov cl, 0x6d
call fcn.1400015f0
mov byte [rsp + 0x50], al
mov edx, 0x31
mov cl, 0x6e
call fcn.1400015f0
mov byte [rsp + 0x51], al
mov edx, 0x32
mov cl, 0x6f
call fcn.1400015f0
mov byte [rsp + 0x52], al
mov edx, 0x33
mov cl, 0x70
call fcn.1400015f0
mov byte [rsp + 0x53], al
mov edx, 0x34
mov cl, 0x71
call fcn.1400015f0
mov byte [rsp + 0x54], al
mov edx, 0x35
mov cl, 0x72
call fcn.1400015f0
mov byte [rsp + 0x55], al
mov edx, 0x36
mov cl, 0x73
call fcn.1400015f0
mov byte [rsp + 0x56], al
mov edx, 0x37
mov cl, 0x74
call fcn.1400015f0
mov byte [rsp + 0x57], al
mov edx, 0x38
mov cl, 0x75
call fcn.1400015f0
mov byte [rsp + 0x58], al
mov edx, 0x39
mov cl, 0x76
call fcn.1400015f0
mov byte [rsp + 0x59], al
mov edx, 0x3a
mov cl, 0x77
call fcn.1400015f0
mov byte [rsp + 0x5a], al
mov edx, 0x3b
mov cl, 0x78
call fcn.1400015f0
mov byte [rsp + 0x5b], al
mov edx, 0x3c
mov cl, 0x79
call fcn.1400015f0
mov byte [rsp + 0x5c], al
mov edx, 0x3d
mov cl, 0x7a
call fcn.1400015f0
mov byte [rsp + 0x5d], al
mov edx, 0x3e
mov cl, 0x21
call fcn.1400015f0
mov byte [rsp + 0x5e], al
mov edx, 0x3f
mov cl, 0x40
call fcn.1400015f0
mov byte [rsp + 0x5f], al
mov r14d, 0x40
mov edx, r14d
mov cl, 0x23
call fcn.1400015f0
mov byte [rsp + 0x60], al
mov edx, 0x41
mov cl, 0x24
call fcn.1400015f0
mov byte [rsp + 0x61], al
mov edx, 0x42
mov cl, 0x25
call fcn.1400015f0
mov byte [rsp + 0x62], al
mov edx, 0x43
mov cl, 0x5e
call fcn.1400015f0
mov byte [rsp + 0x63], al
mov edx, 0x44
mov cl, 0x26
call fcn.1400015f0
mov byte [rsp + 0x64], al
mov edx, 0x45
mov cl, 0x2a
call fcn.1400015f0
mov byte [rsp + 0x65], al
xor eax, eax
mov byte [rsp + 0x66], al
xor r8d, r8d
cmp dword [0x140058090], 6
jl 0x140001e10
movdqa xmm4, xmmword [0x14004fa20]
movdqa xmm0, xmmword [0x14004fdc0]
movdqa xmmword [rsp + 0xb0], xmm0
movdqa xmm1, xmmword [0x14004fdb0]
movdqa xmmword [rsp + 0xa0], xmm1
movdqa xmm5, xmmword [0x14004f990]
mov edx, dword [rsp + 0xa0]
mov r9d, dword [rsp + 0xb0]
nop dword [rax]
nop dword [rax + rax]
movsxd rcx, r8d
movd xmm1, r8d
pshufd xmm1, xmm1, 0
paddd xmm1, xmm4
pshufb xmm1, xmm5
movd xmm0, r9d
vpmovzxbw ymm1, xmm1
vpmovzxbw ymm0, xmm0
vpmullw ymm1, ymm1, ymm0
vpmovzxwd zmm2, ymm1
vpmovdb xmm3, zmm2
movd xmm0, edx
psubb xmm3, xmm0
movd xmm0, dword [rsp + rcx + 0x20]
xorps xmm3, xmm0
movd dword [rsp + rcx + 0x20], xmm3
lea eax, [r8 + 4]
movd xmm1, eax
pshufd xmm1, xmm1, 0
paddd xmm1, xmm4
pshufb xmm1, xmm5
movd xmm0, r9d
vpmovzxbw ymm1, xmm1
vpmovzxbw ymm0, xmm0
vpmullw ymm1, ymm1, ymm0
vpmovzxwd zmm2, ymm1
vpmovdb xmm3, zmm2
movd xmm0, edx
psubb xmm3, xmm0
movd xmm0, dword [rsp + rcx + 0x24]
xorps xmm3, xmm0
movd dword [rsp + rcx + 0x24], xmm3
lea eax, [r8 + 8]
movd xmm1, eax
pshufd xmm1, xmm1, 0
paddd xmm1, xmm4
pshufb xmm1, xmm5
movd xmm0, r9d
vpmovzxbw ymm1, xmm1
vpmovzxbw ymm0, xmm0
vpmullw ymm1, ymm1, ymm0
vpmovzxwd zmm2, ymm1
vpmovdb xmm3, zmm2
movd xmm0, edx
psubb xmm3, xmm0
movd xmm0, dword [rsp + rcx + 0x28]
xorps xmm3, xmm0
movd dword [rsp + rcx + 0x28], xmm3
lea eax, [r8 + 0xc]
movd xmm1, eax
pshufd xmm1, xmm1, 0
paddd xmm1, xmm4
pshufb xmm1, xmm5
movd xmm0, r9d
vpmovzxbw ymm1, xmm1
vpmovzxbw ymm0, xmm0
vpmullw ymm1, ymm1, ymm0
vpmovzxwd zmm2, ymm1
vpmovdb xmm3, zmm2
movd xmm0, edx
psubb xmm3, xmm0
movd xmm0, dword [rsp + rcx + 0x2c]
xorps xmm3, xmm0
movd dword [rsp + rcx + 0x2c], xmm3
add r8d, 0x10
cmp r8d, r14d
jb 0x140001cc0
cmp r8d, 0x46
jae 0x140001e30
nop dword [rax]
nop word [rax + rax]
movsxd rax, r8d
lea rdx, [rsp + 0x20]
add rdx, rax
movsx eax, r8b
imul ecx, eax, 0x64
sub cl, 0x5c
xor byte [rdx], cl
inc r8d
cmp r8d, 0x46
jb 0x140001e10
mov byte [rsp + 0x66], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0xd0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0xe0], xmm1
lea rax, [rsp + 0x20]
mov rsi, 0xffffffffffffffff
mov r8, rsi
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140001e60
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0xd0]
call fcn.14000f290
nop
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov edx, eax
mov ebx, 0xffffffff
mov dword [rsp + 0x1474], ebx
mov dword [rsp + 0xf4], eax
mov rcx, r15
nop dword [rax + rax]
mov eax, edx
shr eax, 0x1e
xor eax, edx
imul edx, eax, 0x6c078965
add edx, ecx
mov dword [rsp + rcx*4 + 0xf4], edx
inc rcx
cmp rcx, 0x270
jb 0x140001ea0
mov dword [rsp + 0xf0], 0x270
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ecx, eax
mov eax, 0x30c30c31
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x15
sub ecx, eax
mov dword [rsp + 0x74], ecx
lea r8, [rsp + 0xd0]
mov r12, qword [rsp + 0xe8]
cmp r12, 0xf
cmova r8, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xe0]
add r8, rdx
mov qword [rsp + 0xb0], r8
lea r13, [rsp + 0xd0]
cmp r12, 0xf
cmova r13, qword [rsp + 0xd0]
dec r14
shr rsi, 1
cmp rsi, rbx
ja 0x140001f34
cmp r13, r8
je 0x14000202a
lea rax, [r13 + 1]
cmp rax, r8
je 0x14000202a
mov rcx, r15
sub rcx, r13
mov qword [rsp + 0xa0], rcx
nop dword [rax]
nop word [rax + rax]
lea r12, [r15 + r13]
add r12, rcx
xor edi, edi
xor ebx, ebx
test r15, r15
je 0x140001fb9
lea rcx, [r14 - 1]
shl rdi, cl
add rdi, rdi
nop word [rax + rax]
lea rcx, [rsp + 0xf0]
call fcn.14000fc50
mov eax, eax
cmp rax, rsi
ja 0x140001f90
or rdi, rax
lea rcx, [r14 - 1]
shl rbx, cl
add rbx, rbx
or rbx, rsi
cmp rbx, r15
jb 0x140001f80
xor edx, edx
mov rax, rbx
div r12
mov rcx, rax
xor edx, edx
mov rax, rdi
div r12
cmp rax, rcx
jb 0x140001fde
xor edx, edx
mov rax, rbx
div r12
cmp rdx, r15
jne 0x140001f77
xor edx, edx
mov rax, rdi
div r12
cmp rdx, r15
je 0x140001ffd
movzx ecx, byte [r15 + r13]
movzx eax, byte [rdx + r13]
mov byte [r15 + r13], al
mov byte [rdx + r13], cl
inc r15
lea rax, [r15 + r13]
cmp rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xa0]
jne 0x140001f70
mov r12, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xe0]
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
movsxd rbx, dword [rsp + 0x74]
add rbx, 0xa
cmp rdx, rbx
cmovb rbx, rdx
lea r14, [rsp + 0xd0]
cmp r12, 0xf
cmova r14, qword [rsp + 0xd0]
movabs rdi, 0x7fffffffffffffff
cmp rbx, rdi
ja 0x140002280
cmp rbx, 0xf
ja 0x1400020a6
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], 0xf
mov r8, rbx
mov rdx, r14
lea rcx, [rsp + 0x78]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rbx + 0x78], 0
mov rdi, qword [rsp + 0x90]
jmp 0x14000214b
mov rax, rbx
or rax, 0xf
cmp rax, rdi
jbe 0x1400020df
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.140045538
test rax, rax
je 0x1400021fc
lea rsi, [rax + 0x27]
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x14000211c
mov rdi, rax
cmp rax, 0x16
mov eax, 0x16
cmovb rdi, rax
lea rcx, [rdi + 1]
test rcx, rcx
jne 0x1400020fc
xor esi, esi
jmp 0x14000211c
cmp rcx, 0x1000
jb 0x140002114
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140002286
jmp 0x1400020c0
call fcn.140045538
mov rsi, rax
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rdi
mov r8, rbx
mov rdx, r14
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rbx], 0
mov r12, qword [rsp + 0xe8]
lea rax, [rsp + 0x78]
mov rbx, qword [rsp + 0xc0]
cmp rbx, rax
je 0x1400021cc
mov rdx, qword [rbx + 0x18]
cmp rdx, 0xf
jbe 0x14000219b
mov rcx, qword [rbx]
inc rdx
cmp rdx, 0x1000
jb 0x14000218e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400021fc
mov rcx, r8
call fcn.140045410
mov r12, qword [rsp + 0xe8]
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0xf
mov byte [rbx], 0
movups xmm0, xmmword [rsp + 0x78]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsp + 0x88]
movups xmmword [rbx + 0x10], xmm1
mov edi, 0xf
mov byte [rsp + 0x78], 0
cmp rdi, 0xf
jbe 0x140002210
lea rdx, [rdi + 1]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002203
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002203
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140045410
mov r12, qword [rsp + 0xe8]
cmp r12, 0xf
jbe 0x140002250
lea rdx, [r12 + 1]
mov rcx, qword [rsp + 0xd0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000224b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000224b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140045410
mov rax, rbx
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.1400453f0
lea r11, [rsp + 0x1490]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call fcn.1400015d0
int3
call fcn.140001530
int3