Function at 0x101d9dac
Capabilities:
Encode data using base64

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
push 1
mov ecx, esi
call fcn.100b3fd0
mov eax, dword [edi]
mov ebx, dword [eax]
mov dword [ebp - 0x18], eax
add eax, 4
mov dword [edi], eax
mov ecx, ebx
shr ecx, 0x13
and ecx, 0xf
mov dword [esi + 0x4f0], ecx
mov ecx, ebx
and ecx, 0x2000
mov dword [esi + 0x520], ecx
mov ecx, ebx
mov eax, ebx
and eax, 0x7ff
shr ecx, 0x18
and ecx, 0x7f
push eax
mov dword [esi], eax
mov dword [ebp - 4], ecx
call fcn.101d8b44
mov dword [esi + 0x4e8], eax
mov eax, ebx
shr eax, 0x1f
test eax, eax
je 0x101d9e43
mov ecx, dword [esi]
cmp ecx, 0x92
je 0x101d9e28
cmp ecx, 0x91
jne 0x101d9e43
mov dword [esi + 0x4ec], 1
mov eax, dword [edi]
mov ecx, dword [eax]
add eax, 4
mov dword [edi], eax
mov dword [ebp - 4], ecx
jmp 0x101d9f1e
and dword [esi + 0x4ec], 0
and dword [ebp - 0x10], 0
neg eax
sbb eax, eax
test eax, 3
jle 0x101d9f1e
lea eax, [esi + 0x4f4]
mov dword [ebp - 0xc], eax
inc dword [esi + 0x4ec]
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [ebp - 0xc]
add ecx, 4
mov dword [edi], ecx
mov ecx, eax
shr ecx, 0x1f
mov dword [ebp - 0x14], ecx
mov ecx, eax
and ecx, 0x3f
mov dword [edx], ecx
dec ecx
je 0x101d9ecd
dec ecx
je 0x101d9ebf
dec ecx
jne 0x101d9f07
lea ecx, [esi + 0x508]
mov dword [ebp + 8], 6
mov dword [ebp - 8], ecx
mov ecx, dword [ebp + 8]
add dword [ebp + 8], 4
mov edx, eax
shr edx, cl
mov ecx, dword [ebp - 8]
add dword [ebp - 8], 4
and edx, 0xf
cmp dword [ebp + 8], 0x16
mov dword [ecx], edx
jb 0x101d9ea0
jmp 0x101d9f07
shr eax, 6
and eax, 0x1f
mov dword [esi + 0x504], eax
jmp 0x101d9f07
mov edx, eax
shr edx, 9
and dl, 0xf
lea ecx, [esi + 0x500]
mov byte [ecx], dl
mov edx, eax
shr edx, 0xd
and dl, 0xf
shr eax, 0x11
and al, 0xf
push 3
mov byte [esi + 0x501], dl
mov byte [esi + 0x502], al
pop edx
mov al, byte [ecx]
test al, 8
je 0x101d9f03
or al, 0xf0
mov byte [ecx], al
inc ecx
dec edx
jne 0x101d9ef9
cmp dword [ebp - 0x14], 0
je 0x101d9f1e
inc dword [ebp - 0x10]
add dword [ebp - 0xc], 4
cmp dword [ebp - 0x10], 3
jl 0x101d9e66
mov eax, dword [esi]
cmp eax, 0x69
jg 0x101da1cf
je 0x101da15a
cmp eax, 0x5c
jg 0x101da120
je case.0x101da12c.93
cmp eax, 0x3d
jg 0x101da042
je 0x101da015
sub eax, 3
je 0x101da10a
push 2
pop edx
sub eax, edx
je 0x101da00a
sub eax, 3
je 0x101da10a
sub eax, 5
je 0x101da10a
sub eax, 0x12
je 0x101da10a
sub eax, 0x16
jne case.default.0x101da3b9
shr ebx, 0xb
mov dword [esi + 0x524], ebx
mov eax, dword [edi]
mov ecx, dword [eax]
mov dword [ebp - 4], ecx
cmp ecx, edx
jae 0x101d9faf
and dword [esi + 0x52c], 0
and dword [esi + 0x528], 0
mov dword [ebp - 4], edx
jmp 0x101da075
mov eax, ecx
lea eax, [eax*4 - 8]
mov dword [esi + 0x528], eax
mov eax, dword [edi]
mov eax, dword [eax]
lea eax, [eax*4 - 8]
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x52c], eax
test eax, eax
jne 0x101d9fef
mov dword [ebp - 0x14], 0x8007000e
push 0x101de948
lea eax, [ebp - 0x14]
push eax
call sub.msvcrt.dll__CxxThrowException
mov ecx, dword [edi]
mov edx, dword [ecx]
lea edx, [edx*4 - 8]
push edx
add ecx, 4
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x101da075
shr ebx, 0x12
and ebx, 1
jmp 0x101da2a4
shr ebx, 0xb
lea eax, [esi + 8]
and ebx, 3
push eax
mov ecx, edi
mov dword [esi + 0x524], ebx
call fcn.101d9ba4
lea eax, [esi + 0xd8]
push eax
mov ecx, edi
call fcn.101d9ba4
add esi, 0x1a8
jmp 0x101da096
sub eax, 0x3f
je 0x101da10a
sub eax, 0x19
je 0x101da0a4
dec eax
je 0x101da09c
dec eax
je case.0x101da12c.98
dec eax
jne case.default.0x101da3b9
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.101d9ba4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x524], eax
add dword [edi], 4
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 4]
lea eax, [eax + ecx*4]
mov dword [edi], eax
pop edi
pop esi
pop ebx
leave
ret 4
shr ebx, 0xb
and ebx, 0xf
mov dword [esi + 0x524], ebx
add esi, 8
push esi
jmp 0x101da292
shr ebx, 0xb
and ebx, 1
jmp 0x101da08d
mov eax, ebx
shr eax, 0xb
and eax, 0x1f
mov dword [esi + 0x524], eax
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.101d9ba4
mov eax, dword [edi]
mov ecx, dword [eax]
push 0xf
pop eax
and ecx, eax
mov dword [esi + 0x528], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 4
and ecx, eax
mov dword [esi + 0x52c], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 8
and ecx, eax
mov dword [esi + 0x530], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 0xc
and ecx, eax
shr ebx, 0x10
and ebx, 0x7f
mov dword [esi + 0x534], ecx
mov dword [esi + 0x538], ebx
jmp 0x101da072
shr ebx, 0x12
jmp 0x101da09f
shr ebx, 0xb
and ebx, 0x3f
mov dword [esi + 0x524], ebx
jmp 0x101da075
sub eax, 0x5d
cmp eax, 0xb
ja case.default.0x101da3b9
jmp dword [eax*4 + 0x101da510]
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.101d9ba4
mov eax, dword [edi]
mov eax, dword [eax]
and eax, 0xffff
jmp 0x101da06c
shr ebx, 0xb
and ebx, 0xf
mov dword [esi + 0x528], ebx
jmp case.0x101da12c.96
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x524], eax
push 4
pop ecx
add dword [edi], ecx
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x528], eax
add dword [edi], ecx
mov eax, dword [edi]
mov eax, dword [eax]
cmp eax, 1
jb 0x101da18b
cmp eax, ecx
jbe 0x101da186
mov eax, ecx
jmp 0x101da18e
cmp eax, 1
jae 0x101da18e
xor eax, eax
inc eax
dec eax
je 0x101da1be
dec eax
je 0x101da1b2
dec eax
je 0x101da1a6
dec eax
jne 0x101da1c8
mov dword [esi + 0x52c], 0xf0
jmp 0x101da1c8
mov dword [esi + 0x52c], 0x70
jmp 0x101da1c8
mov dword [esi + 0x52c], 0x30
jmp 0x101da1c8
mov dword [esi + 0x52c], 0x10
add dword [edi], ecx
jmp 0x101da075
mov ecx, 0x98
cmp eax, ecx
jg 0x101da398
je 0x101da389
add ecx, 0xfffffffa
cmp eax, ecx
jg 0x101da354
je 0x101da2cb
sub eax, 0x6a
je 0x101da2c0
sub eax, 5
je 0x101da29e
sub eax, 9
je 0x101da27b
sub eax, 0x17
je case.0x101da3b9.161
dec eax
je case.0x101da3b9.153
dec eax
jne case.default.0x101da3b9
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x524], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x528], eax
shl eax, 2
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x52c], eax
test eax, eax
jne 0x101da260
mov dword [ebp - 0x10], 0x8007000e
push 0x101de948
lea eax, [ebp - 0x10]
jmp 0x101d9fe9
add dword [edi], 4
mov ecx, dword [esi + 0x528]
mov eax, dword [edi]
shl ecx, 2
push ecx
push eax
push dword [esi + 0x52c]
jmp 0x101da000
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x524], eax
add dword [edi], 4
lea eax, [esi + 8]
mov dword [esi + 0x528], eax
push eax
mov ecx, edi
call fcn.101d9ba4
jmp 0x101da075
shr ebx, 0xb
and ebx, 3
lea eax, [esi + 8]
push eax
mov ecx, edi
mov dword [esi + 0x524], ebx
call fcn.101d9ba4
add esi, 0xd8
jmp 0x101da096
and ebx, 0xfff800
jmp 0x101da115
shr ebx, 0xb
and bl, 1
mov byte [esi + 0x534], bl
mov eax, dword [edi]
mov ax, word [eax]
mov word [esi + 0x524], ax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x528], eax
add dword [edi], 4
mov eax, dword [edi]
movzx eax, word [eax]
mov dword [esi + 0x52c], eax
mov eax, dword [edi]
mov ax, word [eax + 2]
mov word [esi + 0x526], ax
mov eax, dword [esi + 0x52c]
shl eax, 2
push eax
call sub.msvcrt.dll_malloc
pop ecx
mov dword [esi + 0x530], eax
test eax, eax
jne 0x101da339
mov dword [ebp - 0xc], 0x8007000e
push 0x101de948
lea eax, [ebp - 0xc]
jmp 0x101d9fe9
add dword [edi], 4
mov ecx, dword [esi + 0x52c]
mov eax, dword [edi]
shl ecx, 2
push ecx
push eax
push dword [esi + 0x530]
jmp 0x101da000
sub eax, 0x93
je case.0x101da12c.93
dec eax
je case.0x101da12c.93
dec eax
je 0x101da37e
dec eax
je 0x101da373
dec eax
jne case.default.0x101da3b9
shr ebx, 0xb
and ebx, 7
jmp 0x101da115
shr ebx, 0xb
and ebx, 3
jmp 0x101da115
mov eax, dword [edi]
fld dword [eax]
fstp dword [esi + 0x524]
jmp 0x101da072
mov ecx, 0xbe
cmp eax, ecx
jg 0x101da4d0
je 0x101da492
sub eax, 0x99
cmp eax, 9
ja case.default.0x101da3b9
jmp dword [eax*4 + 0x101da540]
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x524], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x528], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x52c], eax
jmp 0x101da072
mov eax, ebx
shr eax, 0xb
and eax, 0x1f
mov dword [esi + 0x524], eax
lea eax, [esi + 8]
and ebx, 0x10000
push eax
mov ecx, edi
mov dword [esi + 0x538], ebx
call fcn.101d9ba4
mov eax, dword [edi]
mov ecx, dword [eax]
push 0xf
pop eax
and ecx, eax
mov dword [esi + 0x528], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 4
and ecx, eax
mov dword [esi + 0x52c], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 8
and ecx, eax
mov dword [esi + 0x530], ecx
mov ecx, dword [edi]
mov ecx, dword [ecx]
shr ecx, 0xc
and ecx, eax
mov dword [esi + 0x534], ecx
jmp 0x101da075
and ebx, 0x10000
jmp 0x101da08d
and ebx, 0x10000
mov dword [esi + 0x528], ebx
jmp case.0x101da3b9.159
lea eax, [esi + 8]
push eax
mov ecx, edi
call fcn.101d9ba4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x524], eax
add dword [edi], 4
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x528], eax
jmp 0x101da072
and ebx, 0x7800
mov eax, ebx
shr eax, 0xb
and al, 1
mov byte [esi + 0x524], al
mov eax, ebx
shr eax, 0xc
and al, 1
mov byte [esi + 0x525], al
mov eax, ebx
shr eax, 0xd
and al, 1
shr ebx, 0xe
and bl, 1
mov byte [esi + 0x527], al
mov byte [esi + 0x526], bl
jmp 0x101da075
cmp eax, 0xce
je case.0x101da3b9.153
xor ebx, ebx
cmp dword [esi + 0x4e8], ebx
jbe 0x101da075
lea eax, [esi + 8]
mov dword [ebp + 8], eax
push dword [ebp + 8]
mov ecx, edi
call fcn.101d9ba4
add dword [ebp + 8], 0xd0
inc ebx
cmp ebx, dword [esi + 0x4e8]
jb 0x101da4ef
jmp 0x101da075