Function at 0x10130c70
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x24]
xor ecx, ecx
mov ebx, 0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
shr eax, 0x10
movsx eax, al
mov ebp, dword [eax*4 + 0x10236130]
mov eax, esi
sub eax, 0x1a
cmovb eax, ecx
mov dword [esp + 4], eax
jbe 0x10130f4a
xor ebx, ebx
mov edx, 0x20
nop word cs:[eax + eax]
nop
mov ecx, edx
lea edx, [ebx + 0x1a]
cmp edx, esi
ja 0x101311d3
test ecx, ecx
je 0x101311dc
cmp ecx, dword [esp + 0x34]
ja 0x101311e7
mov edx, dword [esp + 0x20]
mov eax, ebx
mov edi, dword [esp + 0x30]
mov edx, dword [edx + eax]
bswap edx
mov esi, edx
shr esi, 0x1a
movzx eax, byte [ebp + esi]
mov byte [edi + ecx - 0x20], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x1f], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x1e], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x1d], al
mov eax, edx
shr eax, 2
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x1c], al
mov eax, dword [esp + 0x20]
mov esi, dword [eax + ebx + 4]
bswap esi
shld edx, esi, 4
and edx, 0x3f
movzx eax, byte [ebp + edx]
mov byte [edi + ecx - 0x1b], al
mov eax, esi
shr esi, 0x10
shr eax, 0x16
and esi, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x1a], al
movzx eax, byte [ebp + esi]
mov esi, dword [esp + 0x20]
mov edx, dword [esi + ebx + 6]
mov byte [edi + ecx - 0x19], al
bswap edx
mov eax, edx
shr eax, 0x1a
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x18], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x17], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x16], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x15], al
mov eax, edx
shr eax, 2
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x14], al
mov eax, esi
mov esi, dword [esi + ebx + 0xa]
bswap esi
shld edx, esi, 4
and edx, 0x3f
movzx eax, byte [ebp + edx]
mov byte [edi + ecx - 0x13], al
mov eax, esi
shr esi, 0x10
shr eax, 0x16
and esi, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x12], al
movzx eax, byte [ebp + esi]
mov byte [edi + ecx - 0x11], al
mov eax, dword [esp + 0x20]
mov edx, dword [eax + ebx + 0xc]
bswap edx
mov eax, edx
shr eax, 0x1a
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0x10], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0xf], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0xe], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0xd], al
mov eax, edx
shr eax, 2
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0xc], al
mov eax, dword [esp + 0x20]
mov esi, dword [eax + ebx + 0x10]
bswap esi
shld edx, esi, 4
and edx, 0x3f
movzx eax, byte [ebp + edx]
mov byte [edi + ecx - 0xb], al
mov eax, esi
shr esi, 0x10
shr eax, 0x16
and esi, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 0xa], al
movzx eax, byte [ebp + esi]
mov esi, dword [esp + 0x20]
mov edx, dword [esi + ebx + 0x12]
mov byte [edi + ecx - 9], al
mov esi, dword [esi + ebx + 0x16]
add ebx, 0x18
bswap edx
bswap esi
mov eax, edx
shr eax, 0x1a
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 8], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 7], al
mov eax, edx
shr eax, 0xe
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 6], al
mov eax, edx
shr eax, 8
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 5], al
mov eax, edx
shld edx, esi, 4
shr eax, 2
and edx, 0x3f
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 4], al
movzx eax, byte [ebp + edx]
lea edx, [ecx + 0x20]
mov byte [edi + ecx - 3], al
mov eax, esi
shr esi, 0x10
shr eax, 0x16
and esi, 0x3f
and eax, 0x3f
cmp ebx, dword [esp + 4]
movzx eax, byte [ebp + eax]
mov byte [edi + ecx - 2], al
movzx eax, byte [ebp + esi]
mov esi, dword [esp + 0x24]
mov byte [edi + ecx - 1], al
jbe 0x10130cc0
mov edx, 0xaaaaaaab
mov eax, esi
mul edx
shr edx, 1
lea edx, [edx + edx*2]
cmp ebx, edx
mov eax, edx
mov dword [esp], edx
jae 0x101310c2
nop word cs:[eax + eax]
nop
cmp ebx, 0xfffffffc
ja 0x101311ee
lea edx, [ebx + 3]
mov eax, dword [esp + 0x34]
cmp edx, dword [esp + 0x24]
ja 0x101311fa
cmp ecx, 0xfffffffb
ja 0x10131209
lea edi, [ecx + 4]
mov dword [esp + 4], edx
cmp edi, eax
ja 0x1013121d
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x20]
mov esi, ebx
movzx eax, byte [eax + ebx]
movzx edx, byte [edx + esi + 1]
mov ebx, eax
mov dh, dl
shl al, 4
shl dl, 2
shr dh, 4
shr ebx, 2
or dh, al
movzx eax, byte [ebp + ebx]
mov ebx, dword [esp + 0x30]
mov byte [ebx + ecx], al
movzx eax, dh
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [ebx + ecx + 1], al
mov eax, dword [esp + 0x20]
movzx ebx, byte [eax + esi + 2]
mov eax, ebx
and ebx, 0x3f
shr al, 6
or al, dl
mov edx, dword [esp + 0x30]
movzx eax, al
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [edx + ecx + 2], al
movzx eax, byte [ebp + ebx]
mov ebx, dword [esp + 4]
cmp ebx, dword [esp]
mov byte [edx + ecx + 3], al
mov ecx, edi
jb 0x10130f70
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp]
cmp ecx, 1
je 0x101310d4
mov eax, dword [esp + 0x34]
cmp ecx, 2
jne 0x10131127
cmp edi, eax
jae 0x10131180
mov eax, dword [esp + 0x20]
mov edx, dword [esp]
mov esi, dword [esp + 0x30]
movzx ebx, byte [eax + edx]
inc edx
mov eax, ebx
shr eax, 2
cmp edx, dword [esp + 0x24]
movzx eax, byte [ebp + eax]
mov byte [esi + edi], al
mov eax, dword [esp + 0x24]
mov esi, edx
jae 0x10131199
mov edx, dword [esp + 0x34]
lea eax, [edi + 1]
cmp eax, edx
jae 0x101311b1
mov eax, dword [esp + 0x20]
shl bl, 4
movzx edx, byte [eax + esi]
mov esi, dword [esp + 0x30]
mov eax, edx
shr al, 4
or bl, al
movzx eax, bl
and eax, 0x3f
movzx eax, byte [ebp + eax]
mov byte [esi + edi + 1], al
mov eax, dword [esp + 0x34]
lea esi, [edi + 2]
cmp esi, eax
jae 0x101311c2
shl dl, 2
mov ebx, 3
and dl, 0x3c
jmp 0x10131112
mov edi, ecx
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp]
cmp ecx, 1
jne 0x10131030
mov ebx, dword [esp + 0x34]
cmp edi, ebx
jae 0x10131188
mov eax, dword [esp + 0x20]
mov edx, dword [esp]
mov esi, dword [esp + 0x30]
movzx edx, byte [eax + edx]
mov eax, edx
shr eax, 2
movzx eax, byte [ebp + eax]
mov byte [esi + edi], al
lea esi, [edi + 1]
cmp esi, ebx
jae 0x101311a0
shl dl, 4
mov ebx, 2
and dl, 0x30
movzx eax, dl
mov edx, dword [esp + 0x30]
add edi, ebx
movzx eax, byte [ebp + eax]
mov byte [edx + esi], al
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x28]
xor edx, edx
test bl, 1
je 0x1013115f
cmp edi, eax
ja 0x1013124a
test ecx, ecx
je 0x1013115f
xor ecx, 3
je 0x1013115f
add dword [esp + 8], edi
sub eax, edi
xor edx, edx
mov esi, dword [esp + 8]
nop
cmp eax, edx
je 0x1013116f
mov byte [esi + edx], 0x3d
inc edx
cmp ecx, edx
jne 0x10131150
mov edx, ecx
add edi, edx
jb 0x10131234
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x10236120
push eax
push eax
call fcn.101af280
add esp, 0xc
ud2
push 0x10236080
push eax
jmp 0x1013118e
push 0x10236060
push ebx
push edi
call fcn.101af280
add esp, 0xc
ud2
push 0x10236090
jmp 0x101311c7
push 0x10236070
push ebx
push esi
call fcn.101af280
add esp, 0xc
ud2
push 0x102360a0
push edx
push eax
call fcn.101af280
add esp, 0xc
ud2
push 0x102360b0
push eax
push esi
call fcn.101af280
add esp, 0xc
ud2
push 0x10236020
push esi
push edx
jmp 0x1013122a
push 0x10236030
push 0
push 0xffffffffffffffe0
jmp 0x10131213
push 0x10236030
jmp 0x10131225
lea eax, [ebx + 3]
push 0x10236040
push eax
push ebx
jmp 0x10131213
add ebx, 3
push 0x10236040
push dword [esp + 0x28]
push ebx
jmp 0x1013122a
lea eax, [ecx + 4]
push 0x10236050
push eax
push ecx
call fcn.101af640
add esp, 0xc
ud2
add ecx, 4
push 0x10236050
push dword [esp + 0x38]
push ecx
call fcn.101af5d0
add esp, 0xc
ud2
push 0x10236010
push 0x2a
push str.usize_overflow_when_calculating_b64_length
call fcn.101af0c0
add esp, 0xc
ud2
push 0x10235fd4
push eax
push edi
call fcn.101af560
add esp, 0xc
ud2