Function at 0xbd8767
Capabilities:
Encode data using base64
Encrypt data using aes mixcolumns step
Encrypt data using chaskey
Parse pe header

Disassembly:
rol ax, 1
sub ecx, edx
inc ax
xadd dx, cx
bts edx, ecx
neg ax
sub edx, 0xc598df2a
jno 0xbc9ffb
shr dword [esp], 0x50
mov dword [esp], eax
jp 0xb38c0d
mov edx, 0x32a9b09c
lea esi, [esi + edx*2 - 0x6553613c]
mov edx, dword [esi + edx*2 - 0x65536138]
mov eax, 0x4bb27499
xor edx, ebx
not edx
dec edx
bswap edx
cbw
rol edx, 3
movsx ecx, ax
shr eax, cl
xor ebx, edx
add ebp, edx
movsx edx, ax
mov eax, dword [edi + eax*2 - 0x4a]
imul edx, ecx
not dx
mov cl, byte [edi + 4]
xor edx, edx
lea edi, [edi + edx*2 + 2]
push edx
push edx
shr eax, cl
inc dl
mov ecx, 0x939eefb0
setne cl
mov dword [edi + edx - 1], eax
pop ecx
sar edx, 0xb8
adc dword [esp + edx], ebp
ret
push 0xedb2208d
dec ebx
call fcn.00d52993
jmp 0xd3874c
jne 0xb25e3a
shr word [esp], 0xee
neg edx
dec edx
shl dword [esp], 0x43
js 0xc0a078
xor ebx, edx
push 0xeb899b4
add ebp, edx
lea esp, [esp + 8]
jmp 0xd29fbc
adc ax, 0xef1c
ror edx, 0x90
shl ecx, 0xff
je 0x75d328
movzx ebx, word [ecx + ebp - 0xbd]
dec esp
lea ebp, [edx + edx*2 - 0x864bee3]
inc cx
xor ebx, eax
sal cx, 0xa9
inc esp
mov edx, ecx
dec ecx
ror edx, 0x5e
sbb bx, 0x123e
not bx
movzx eax, cl
movsx esi, cl
or edx, eax
adc bx, 0xeb3
dec eax
bt edx, 0x84
inc ecx
mov ebx, 0xf0a07e86
ror bx, 1
push ecx
push esi
cwd
inc sp
xor eax, ebx
dec eax
lea ebx, [esp + ebx + 0x10]
mov word [esp + ecx*2 - 0xf3f4], 0x589f
inc cx
bt ebp, eax
xor esi, 0xf1b7b196
mov word [ebx + eax*4], di
inc ecx
mov ebx, ebp
call fcn.00bb0eab
shl dx, 2
mov dword [edi + edx*4 - 0x25b14350], eax
movsx eax, byte [esp + ecx - 0x680c0000]
pop ecx
jne fcn.007ce517
shrd dx, ax, cl
shr dword [esp], 0xd9
setb byte [esp]
mov ecx, 0x138c3e3c
mov word [esi + ecx*2 - 0x27187c78], dx
adc cx, word [esp + ecx - 0x138c3e3c]
lea edi, [edi + ecx - 0x138c3e40]
lea eax, [ecx*4 - 0x6d797bc5]
mov edx, dword [edi + ecx*2 - 0x27187c78]
xor edx, ebx
sub edx, 0xf7805aa4
add cx, 0xc118
dec ax
neg edx
xadd cx, ax
ror byte [esp + ecx*2 - 0x2718f8f9], 0x42
xor edx, 0x6915458e
cbw
add dword [esp + ecx*2 - 0x2718f8fc], ecx
dec edx
xor ecx, ecx
xor edx, 0xdb046d87
sub ecx, 0x55aa771c
cmovl ax, word [esp + 2]
ror edx, 1
jmp 0xd3b5f1
bswap ecx
pop eax
xor ebx, ecx
add ebp, ecx
mov ecx, edx
lea eax, [edx*8 + 0x7a90b807]
movzx eax, word [edi + eax - 0x5868b807]
push ecx
pop ecx
shr dx, 0x2b
adc edi, 2
xor ax, bx
rol ax, 1
sal dl, 0xa2
xor cx, cx
jle 0xb9314b
inc esp
mov ah, 0x65
hlt
sal al, 0x41
mov cl, byte [esi + ecx*4 - 0x401bd80a]
imul ax, ax
shr dx, cl
movsx ecx, al
mov word [esi + ecx*4 + 2], dx
mov edx, dword [ebp + ecx*2]
xor edx, ebx
shl cl, 0xe2
rol ecx, 0x39
call fcn.00b06bdc
xor esi, eax
rol dword [esp], 0x59
call fcn.00d22d0a
mov eax, 0x5aa5ea2b
mov dx, word [eax + esi - 0x5aa5ea2b]
dec eax
mov ax, word [esi + eax - 0x5aa5ea28]
push 0x6a01540a
rol byte [esp + 2], 0x44
mov cl, byte [esi + 4]
adc esi, 4
jmp 0xb976f9
call fcn.00d188d6
dec eax
sub ebp, 4
inc ecx
mov edx, 0x780f352c
inc ecx
mov edi, edx
inc eax
movsx esi, bh
mov eax, dword [ebp + esi*2 - 0x58]
dec esi
lea ebp, [edi + edx*8 - 0x445d10f7]
inc ecx
xor eax, eax
inc ebp
movzx esi, dl
inc cx
bts ebp, edi
inc ecx
sar ebp, 0x8b
sbb eax, 0xb18f7d2d
push esi
ror eax, 2
inc sp
xchg dword [esp + esi*8 - 0x15c], edx
inc ecx
movsx ecx, dl
inc eax
inc ecx
push edx
not eax
shr dword [esp + esi*4 - 0xab], 0x30
dec eax
lea edx, [edi + 0x52120614]
rol eax, 3
dec esi
mov dword [esp + esi*2 - 0x50], eax
call fcn.00cbb617
mov edx, 0x36118590
mov ecx, 0x1006f603
movsx eax, dl
mov dx, word [edx + esi - 0x36118590]
push ecx
jmp 0xcf1431
xor ebx, edx
shr ecx, 0x7e
add ebp, edx
neg ecx
pop eax
jmp ebp