Function at 0x140155659
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using chaskey
Parse pe header

Disassembly:
xchg ecx, eax
xor ebx, 0x1d88e52c
ror ebx, 1
bt r8, 0x2e
mul cx
neg ebx
btr rcx, 0x8b
push rdi
adc rdx, r9
xor dword [rsp + r8*4], ebx
bswap rax
rol rdx, cl
pop rdi
sal ax, 0xc1
movsxd rbx, ebx
bt edx, 0x88
adc r10, rbx
mov r11d, eax
jmp fcn.1401c9c2e
neg r8b
xor r11b, cl
lea rcx, [rsp + rcx + 8]
xchg qword [rsp + rax - 1], rdx
push r9
idiv word [rsp + rax + 6]
mov dword [rax + rcx - 0xb910], ebx
movzx ecx, dl
sal qword [rsp + rax - 0xb90b], cl
adc cl, 0x88
mov qword [rsp + rax*8 - 0x5c880], rdi
ret 8
bswap ebx
jne 0x1400ff179
mov ecx, 0x98180cba
call fcn.140235eab
or r8d, 0xc994133c
lea rcx, [rbp - 0x3eddf96d]
xor bx, 0x7092
shr r9, cl
neg bx
inc bx
lea r9, [rcx + 0x2c3eea9e]
xor r10w, bx
add rbx, rsp
btr r9d, ebp
jb 0x1402066b9
mov edi, 0x82a0a30e
sub r11, 4
lea rsi, [rdi - 0x73eac343]
mov ecx, dword [r11 + rsi - 0xeb5dfcb]
mov r10d, edi
xor ecx, r9d
btc rsi, rsi
imul esi, edi
inc ecx
rol ecx, 2
movzx eax, r10b
mov ebp, edi
sub ecx, 0xb01a2c8f
dec di
neg ecx
push r9
or bp, r10w
idiv bpl
btr di, bp
xor dword [rsp + rax - 1], ecx
pop r9
mul r10
movsxd rcx, ecx
jno 0x1401506b4
mov edx, 0x9a39c423
mov rax, qword [rsi + riz]
not dx
lea rbp, [rdx + rdx*2 + 0x1e05c605]
mov r9, qword [rsi + riz + 8]
lea rbp, [rbp + rdx*2 - 0x1bf1105c]
mov cl, byte [rsi + riz + 0x10]
call fcn.14018fd10
pop r9
call fcn.140269f77
mov r11d, 0xbf123e9e
movzx ecx, r11w
lea r10, [r10 + rcx*4 - 0xfa7a]
lea r9, [rcx + rcx - 0x7f7f3247]
xor r11w, 0xeebf
movzx edx, word [r10 + rcx*4 - 0xfa78]
lea rsi, [r11*2 - 0x2e49a7ee]
xor dx, di
movzx ebx, cl
inc dx
movsx eax, cl
call fcn.140168ac9
lea ebp, [rbp + rdx*2 - 0x54904250]
ror ebp, 3
lea rsi, [rax*8 + 0x348be8a5]
lea rcx, [rsi*8 - 0x6d553371]
push rdx
xor ebp, 0x92af7c8e
and ecx, eax
lea ebp, [rbp + rdx*2 - 0x269926e4]
neg ebp
call fcn.1402a32d2
ror eax, 0x77
movsx ebx, bpl
xor dword [rsp + r10], edx
ror r9d, cl
lea r9, [rax + rcx + 0x260705a1]
pop r11
jae 0x140298493
not ax
sub bp, 0xd216
add r8, rcx
lea rcx, [rdi*8 - 0x4bdf74f7]
rol sil, 0xc6
mov rsi, qword [rbx + rdx*2]
not r10d
mov rdi, qword [r10 + rsi - 0x7d5f5cf1]
rol eax, 0xfd
call fcn.14015d980
dec r8w
adc rsi, rcx
movzx eax, word [r10 + r9*8 - 0xf8]
ror dl, 7
movzx ecx, dx
lea r10, [r10 + r9 - 0x1d]
sal r8d, 0x55
sets dl
call fcn.140109940
sub r11, 2
mov ecx, 0x6f120d00
movzx ebx, cx
movzx ecx, word [rcx + r11 - 0x6f120d00]
movzx ebp, bl
movsx r9d, bx
xor cx, r10w
movsx edx, bpl
ror cx, 1
not cx
mov r8d, 0x70075ab3
xadd r9w, dx
btc rbp, 0x3b
dec cx
push rbx
inc r8w
or qword [rsp + rbx*2 - 0x1a00], rbp
not cx
mov eax, 0xc416a43f
add edx, 0x5c8c2d12
neg cx
push rbp
add cx, 0x91a1
sar dx, 0xcb
or dx, word [rsp + rbx - 0xcfd]
call fcn.140140f02
dec edx
sal cx, 0x6d
push r10
not edx
shl cl, 0x44
xor edx, 0x5a67eb7
ror rcx, 0x38
setb byte [rsp + rcx*4 - 0x37ffffe]
movsx ebp, cl
lea edx, [rdx + r10 - 0x74d85873]
not byte [rsp + r10 - 0x799053fd]
mov qword [rsp + rcx - 0xe00000], r9
bts rdi, rdi
xor dword [rsp + r10 - 0x79905400], edx
bswap rdi
neg r10d
jb 0x14012eedf
mov edx, 0x268c81b5
movzx ecx, dl
movzx ebx, dx
mov ecx, dword [r8 + rdx - 0x268c81b5]
push rbx
jmp 0x140184ddb
sar r8, 0xb3
sbb word [rsp + r9 - 0x733c2177], cx
ror ebp, 2
shl rax, 0xa3
call fcn.1400d4548
lea rdx, [rbx*2 + 0x44ab87a7]
mov eax, ecx
not r9d
push rcx
ror eax, 0xc1
mul rdx
add r9d, edx
shr ecx, 0xfa
mov qword [rsp + rcx - 0x39], rdi
ror cl, 0x81
push rbx
xor dword [rsp + rcx - 0x94], r9d
cwde
mov rdi, qword [rsp + rcx - 0x94]
movsxd r9, r9d
shr esi, 0xaf
imul word [rsp + rcx*4 - 0x26d]
and dword [rsp + rcx*8 - 0x4dc], 0xc3cbb33
adc rbp, r9
shl r11w, 0x8d
jnp fcn.140228a97
mov r8w, word [r8 + rcx*4 - 0x270]
mov qword [rsp + rcx*2 - 0x130], 0x129411a
pop r11
pop r11
jbe fcn.1400dc126
mov rcx, rsi
lea r9, [r8 + r8*4 - 0x547912f4]
movsx edx, r9w
movsx eax, dx
lea rsi, [rsi + r8*2 - 0x30207c4e]
add r9w, r9w
sar r8b, 0xa4
mov word [r8 + rsi - 0x18103e02], cx
mov ebx, dword [rbp + r8 - 0x18103e02]
jns 0x1401b16de
lea r8, [r8 + rdx - 0x268c81b1]
not dword [rsp + rbx*2 - 0x10368]
xor ecx, r11d
jmp 0x1400d6252
sar r8, 0xe6
sets dl
lea rbp, [rbp + r8*4 + 4]
shl dl, 0xa4
neg r8b
xor ebx, edi
or rdx, r9
movsx ecx, dx
jnp 0x1401267ff
sub r9b, cl
or r9w, r10w
xor r10, rdi
jmp r10
jp fcn.1402226a6
lea rdi, [rdi + rdx - 0x576968e3]
mov byte [rsp + rax*2 - 0x542193f5], 0x90
mov qword [rsp + rbx + 0x86], rdx
jb 0x140286668
xor r9w, r8w
mov eax, dword [rbx + rax - 0x8affef]
xadd r9, rbp
movsx ebx, r9w
lea rdi, [rdi + rbp*2 - 0xe51966a]
sal bp, 5
mov dword [rdi + r9 - 0x60f00ed1], eax
jb 0x1401e4ae1
xor edx, 0xe78f0ebc
ror edx, 2
bswap edx
or rdi, rdi
mov r8d, 0x5a0680b5
neg edx
add al, dil
sbb rdi, rbx
lea rsi, [rax - 0x18636677]
push r10
xor dword [rsp + rsi + 0x5c470b07], edx
bt r8d, 0x3e
or rdi, r8
mov r10d, esi
pop r10
cbw
shr di, 0xee
movsxd rdx, edx
mov ecx, r8d
sete r8b
add r11, rdx
sal r8w, 0xca
adc edi, 0x57bee1bd
call fcn.1401b41cf
xor dword [rsp + rcx*2 - 0x149fe], r8d
pop r10
ror al, 0xa4
div rbp
ror bp, 0xaa
movsxd r8, r8d
adc rsi, r8
neg rax
shr ebp, 0xae
movzx ax, byte [rdi + rbp*2 - 0x7ffc0]
btr rbp, rdx
mov cl, byte [rdi + rbp - 0x3ffde]
or rdx, rbx
lea rdi, [rdi + rbp - 0x3ffde]
sar bx, 0x2c
or bl, bpl
shr rbx, 0xe6
and al, cl
xor al, dl
btc edx, edx
mov word [rdi + rbp*2 - 0x7ffc0], ax
call fcn.140158536
not cl
or rdx, 0x1a20c06
inc rax
adc cl, al
add rdx, r9
jae 0x14010324c
movzx ecx, r8w
jp 0x140162508
push r11
jg 0x140148bf8
lea r11, [rdx + r11 - 0x576968e8]
movzx r8d, byte [rdx + r11 - 0x576968e7]
pop rdx
xor r8b, r10b
not r8b
neg r8b
call fcn.14013e040
dec bx
cbw
movsxd rdx, edx
bts cx, bx
shl rbp, cl
ror r10, 0x10
adc rdi, rdx
jmp 0x1401bb361