Function at 0x15ab1f2
Capabilities:
Encode data using base64
Encode data using xor
Execute anti-debugging instructions

Disassembly:
and edx, 0x4b8dc19c
movsx ecx, dx
ror edx, cl
mov ecx, dword [esi + ecx*4 - 0x1021c]
add dx, 0x8814
sar dl, 0x42
adc esi, 4
sar edx, 0x9d
shr edx, 0xa
bswap edx
not eax
not ecx
jns 0xca53d6
mov ecx, 0x5c80e696
mov edx, dword [esi + ecx - 0x5c80e696]
sar ecx, 0xbd
mov eax, ecx
xadd cl, ah
lea esi, [esi + ecx*4 - 4]
bt cx, cx
xor edx, ebx
jmp 0xd4a6f3
ret
jbe 0xd263e3
ret
invalid
sbb edx, edx
or eax, ecx
movsx ecx, dl
xor edx, 0x369bee96
mov dword [esi], eax
mov edx, dword [ebp]
adc ebp, 4
xor edx, ebx
add edx, ecx
mov eax, 0xa798cf08
sar cl, 0x83
bswap edx
inc cx
and eax, eax
sub eax, eax
not edx
jg 0x1343a41
dec ax
shr al, 0xc1
rol edx, 2
sub eax, ecx
shr ecx, 0xf0
rol ecx, cl
neg edx
shl al, 0x83
dec edx
call fcn.00d1c4bc
mov al, dh
adc byte [esp + edi*2 + 0x47], ch
push 0x1e
pop ebp
inc ecx
fist word [edi - 0x4e]
sbb al, 0xfb
jle 0xd263d9
cwde
loope 0xd26469
invalid
cmp al, 0xd1
sahf
fiadd dword [eax]
dec ebx
jge 0xd26423
invalid
inc edx
cwde
ror edx, 1
push eax
not ecx
and ax, cx
not edx
inc edx
xor ebx, edx
add edi, edx
or dword [esp + eax - 0x200], eax
mov dx, word [eax + ebp - 0x200]
not cl
push ecx
rol word [esp + eax*2 - 0x3fd], 0x68
mov ax, word [ebp + eax*2 - 0x3fe]
bt ecx, 0x35
imul ecx, ecx
mov cl, byte [ebp + ecx - 0xfc00]
jae 0x1231c3d
loop 0xd4a768
or bh, bh
xchg esp, eax
out dx, eax
enter 0x71e7, 2
invalid
movsb byte es:[edi], byte [esi]
dec ebp
xor eax, 0xea2f231a
dec eax
pop ds
fst dword [esi]
scasb al, byte es:[edi]
mov word [edi + 0x1a], cs
push ecx
push cs
pop esi
jno 0xd4a7e6
sbb ch, byte [esi - 0x9f86ea9]
jmp 0xd7ac7f57
sub eax, 0xb3fa963c
pushfd
sal byte [eax - 0x7161ff16], 1
test byte [esi], al
dec ebx
push esp
out 0xb1, eax
jbe 0xd4a7f9
jmp [ecx - 0x3fef02b]
test eax, 0xfc010fd5
or ecx, 0x592581c
lea esi, [ecx + esi - 0x592581a]
sub cl, ch
shl cx, 0xa9
add eax, edx
neg ecx
mov dword [esi], eax
sar ecx, 0xcf
call fcn.00d495c1
shr esi, 0x24
push edi
cmp edx, ebx
mov edi, eax
mov esi, ecx
sub edx, edx
setns al
lea ecx, [ecx]
mov cl, 0x97
mov cl, byte [edi]
inc al
mov al, byte [esi]
jmp 0x122594f
mov esp, ebp
mov ebp, 0xfda0a20b
pop ebp
jmp 0xc88941
lea esi, [eax + esi - 0xcfff]
xor cl, bl
add cl, 0x83
sar dx, 0x8d
call fcn.0159a5a3
mov ax, word [esi]
mov ecx, 0x90386f08
lea edx, [ecx*4 - 0x604f52fc]
jmp 0x12bd2d6
lea esi, [eax + esi - 0x3919fffa]
and ax, ax
mov word ss:[ecx + eax*2 - 0x72340000], dx
jb 0x12f397a
jns 0x116e02e
xor eax, ebx
mov ecx, 0xe310468a
movsx edx, cl
sub eax, 0x4a27c432
imul dx, cx
and dx, dx
bswap eax
ror edx, cl
lea eax, [eax + ecx - 0x6dbdc62]
rol eax, 1
btc edx, 0xa6
bswap eax
sar ecx, cl
xor ebx, eax
xor edx, 0x2abf2a9d
not dx
adc esi, eax
or ecx, edx
jmp esi
sbb eax, eax
jmp 0x123e6ad
jmp ebp
jmp edi
pop ebp
jmp 0xd056af
mov byte [ebp - 1], cl
je 0x11d7eea
mov cl, dl
btr bx, bx
mov ebx, 0x99270ebe
stc
cmc
jmp 0x12c50aa
inc edx
test ch, 0x94
test al, al
je 0x125d078
cmp al, cl
jmp 0x125d072
mov esp, ebp
jmp 0x11a3307
inc esi
jmp 0x130824f
adc dword [esp + 4], 0x626319b
adc ebp, 4
shrd dx, ax, cl
push 0x9b8a8d37
mov word [ebp], dx
inc word [esp + 7]
jl 0x159c8a5
inc eax
sub al, 0xb3
add ebp, edx
mov ecx, dword [esi + ecx - 0xffecfa]
rol ax, 0xa1
xor ax, ax
movsx edx, al
xor dx, word [esi + edx*2 + 4]
btr ax, ax
jae 0x1154a8f
mov dword [esi + 0xc], eax
mov eax, 0x752b4332
or eax, 0x4425ee83
sar al, 0xc4
mov dword [esi + eax - 0x752feff3], ebx
movsx ebx, al
push eax
seta al
mov dword [esi + eax - 0x752feefd], ecx
ror bl, 4
cbw
setnp byte [esp + eax - 0x752f0001]
mov dword [esi + eax - 0x752f0001], edx
mov ebx, dword [esp + eax - 0x752efffd]
lea edx, [eax - 0x7411e55]
pop edx
pop ecx
js fcn.00cab190
neg eax
jmp 0xda1c95
je 0xd4a835
pop edi
rol bl, 0x8d
bts ebx, eax
pop esi
bswap bx
pop ebx
test eax, esi
cmp cl, al
jmp 0x15969fe
call fcn.0128afc5
sal cl, 0xa5
inc al
shr ecx, 0xe
sub cx, cx
jb 0xc7dfed
neg al
xor bl, al
dec dword [esp + ecx*2 + 4]
sal ecx, 0x44
lea eax, [esp + eax + 8]
sbb ecx, dword [esp + ecx*8 + 4]
imul cx, cx
inc ecx
mov dword [ecx + eax - 0x671c8725], edx
neg dword [esp + ecx - 0x671c8721]
push ecx
and byte [esp + ecx - 0x671c871c], 0x90
mov dword [esp + ecx - 0x671c8725], esi
ret 8
mov cl, byte [esi + 2]
dec dl
add esi, 2
btc edx, edx
shl ax, cl
mov ecx, edx
mov word [esi], ax
dec ecx
mov ecx, dword [ebp]
lea eax, [edx + edx - 0x49f6d4da]
setge dl
lea ebp, [ebp + eax - 0x772dfd78]
sal ax, 0x41
xor ecx, ebx
lea edx, [edx*8 + 0x540950bc]
sub ecx, 0xc71badaf
sar edx, 5
or eax, 0xfb0aa90e
bswap ecx
inc edx
neg ecx
lea ecx, [ecx + eax - 0x650e8870]
cwde
xor al, ah
bts dx, 0xb6
bswap ecx
ror edx, 0x4f
xor ebx, ecx
sar eax, 0xf7
xchg dx, ax
add edi, ecx
mov ecx, 0x2d11550a
xadd ecx, edx
jno 0x1184806
rol ebx, cl
rcr cl, 0x8b
mov cl, byte [ebp - 1]
add bl, dl
cmp sp, 0x8daf
xor al, bl
jmp 0x11d7ee6
mov word [ebp], cx
lea ecx, [edx + edx + 0x5d357db5]
movsx eax, cx
rol dl, 0x27
mov dword [esp + eax - 0x60b5], edi
ret 4
inc edi
cmc
cmp byte [ebp + 8], 0
jmp 0x11bc515
imul edx, edx
lea esi, [esi + edx - 0x2f107d9]
dec dl
add edx, 0xdb8b8e08
sub edx, edx
mov dword ss:[edx + ecx], eax
lea ecx, [edx + edx*2 + 0x806d51a]
lea eax, [edx + ecx - 0x6cf76ed4]
not eax
lea edi, [edi + edx*2 - 4]
push edx
adc edx, dword [edi + edx]
neg dword [esp + ecx*4 - 0x201b5468]
sal cl, 0x41
shl dword [esp + ecx*2 - 0x100daa68], 0x8f
xor edx, ebx
sar eax, cl
sub al, 2
xor edx, 0xd50a9e8f
neg edx
sar eax, 0x1a
neg word [esp + ecx - 0x806d532]
sbb eax, 0xf383f81d
not edx
not ecx
cbw
dec edx
pop eax
call fcn.00d4f52a
jbe 0x115c252
or eax, 0xffffffff
jmp 0x1205b12
pop edx
pop edx
pop ecx
jmp edi
shr ecx, 8
sal word [esp + 6], 0x43
call fcn.00cbb1f2
add eax, edx
xadd eax, edx
xor ecx, ebx
imul eax
neg ecx
shr dword [esp + edx], 0x36
setns byte [esp + edx*4]
inc ecx
xor ecx, 0x498537b0
lea ecx, [eax + ecx + 0x37c4071f]
xor ebx, ecx
dec dl
bt eax, 0x36
add edi, ecx
call fcn.01302dd7
add edi, edx
movzx edx, cx
dec ax
lea eax, [edx*8 + 0x769fd723]
movzx ecx, byte [esi + ecx - 0x65dfd000]
xchg edx, eax
jno 0x1137d3a
mov ax, word [esi]
mov dx, word [esi + 2]
mov ecx, 0xe40fbea5
and ecx, ecx
shl ecx, cl
mov cl, byte [esi + 4]
adc esi, 4
jmp 0x129381c