Function at 0x510d0c
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov ebp, dword [edx + 8]
mov esi, edx
push 3
pop edi
mov eax, ebp
xor edx, edx
div edi
cmp ebp, 0xbfffffff
ja 0x511657
mov edi, eax
mov eax, dword [esi]
mov ebx, edx
shl edi, 2
test edx, edx
mov dword [esp + 8], eax
je 0x510d47
add edi, 4
jb 0x511657
xor edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, edi
mov dword [esp + 0x10], esi
inc edx
call fcn.004d425e
mov ecx, ebp
xor esi, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov dword [esp + 4], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ebp
sub ecx, 0x1a
cmovb ecx, esi
mov dword [esp + 0x24], ecx
mov ecx, 0
jbe 0x51118c
xor esi, esi
xor ecx, ecx
lea edx, [ecx + 0x1a]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edx
push 0x58b40c
push dword [esp + 0x18]
push dword [esp + 0x10]
call fcn.00417cca
add esp, 0xc
mov ebp, edx
lea edx, [esi + 0x20]
mov edi, eax
mov ecx, esi
mov dword [esp + 0x2c], edx
push 0x58b41c
push dword [esp + 8]
push dword [esp + 0x14]
call fcn.00417cca
add esp, 0xc
mov ebx, edx
mov esi, eax
mov edx, ebp
mov dword [esp], edi
mov ecx, edi
push 0x58b42c
push 0
call fcn.00445474
pop ecx
pop ecx
mov ecx, eax
call fcn.00417cfe
test ebx, ebx
je 0x511454
mov ecx, edx
shr ecx, 0x1a
cmp ebx, 1
mov cl, byte [ecx + 0x630777]
mov byte [esi], cl
je 0x511462
mov ecx, edx
shr ecx, 0x14
and ecx, 0x3f
cmp ebx, 2
mov cl, byte [ecx + 0x630777]
mov byte [esi + 1], cl
jbe 0x511471
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3f
cmp ebx, 3
mov cl, byte [ecx + 0x630777]
mov byte [esi + 2], cl
je 0x511480
mov ecx, edx
shr ecx, 8
and ecx, 0x3f
cmp ebx, 4
mov cl, byte [ecx + 0x630777]
mov byte [esi + 3], cl
jbe 0x51148f
mov ecx, edx
shr ecx, 2
and ecx, 0x3f
cmp ebx, 5
mov cl, byte [ecx + 0x630777]
mov byte [esi + 4], cl
je 0x51149e
shld edx, eax, 4
and edx, 0x3f
cmp ebx, 6
mov cl, byte [edx + 0x630777]
mov byte [esi + 5], cl
jbe 0x5114ad
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
cmp ebx, 7
mov cl, byte [ecx + 0x630777]
mov byte [esi + 6], cl
je 0x5114bc
shr eax, 0x10
mov ecx, dword [esp]
mov edx, ebp
and eax, 0x3f
mov al, byte [eax + 0x630777]
mov byte [esi + 7], al
push 0x58b4bc
push 6
call fcn.00445474
pop ecx
pop ecx
mov ecx, eax
call fcn.00417cfe
cmp ebx, 8
jbe 0x5114cb
mov ecx, edx
shr ecx, 0x1a
cmp ebx, 9
mov cl, byte [ecx + 0x630777]
mov byte [esi + 8], cl
je 0x5114da
mov ecx, edx
shr ecx, 0x14
and ecx, 0x3f
cmp ebx, 0xa
mov cl, byte [ecx + 0x630777]
mov byte [esi + 9], cl
jbe 0x5114e9
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3f
cmp ebx, 0xb
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0xa], cl
je 0x5114f8
mov ecx, edx
shr ecx, 8
and ecx, 0x3f
cmp ebx, 0xc
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0xb], cl
jbe 0x511507
mov ecx, edx
shr ecx, 2
and ecx, 0x3f
cmp ebx, 0xd
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0xc], cl
je 0x511516
shld edx, eax, 4
and edx, 0x3f
cmp ebx, 0xe
mov cl, byte [edx + 0x630777]
mov byte [esi + 0xd], cl
jbe 0x511525
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
cmp ebx, 0xf
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0xe], cl
je 0x511534
shr eax, 0x10
mov ecx, dword [esp]
mov edx, ebp
and eax, 0x3f
mov al, byte [eax + 0x630777]
mov byte [esi + 0xf], al
push 0x58b54c
push 0xc
call fcn.00445474
pop ecx
pop ecx
mov ecx, eax
call fcn.00417cfe
cmp ebx, 0x10
jbe 0x511543
mov ecx, edx
shr ecx, 0x1a
cmp ebx, 0x11
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x10], cl
je 0x511552
mov ecx, edx
shr ecx, 0x14
and ecx, 0x3f
cmp ebx, 0x12
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x11], cl
jbe 0x511561
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3f
cmp ebx, 0x13
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x12], cl
je 0x511570
mov ecx, edx
shr ecx, 8
and ecx, 0x3f
cmp ebx, 0x14
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x13], cl
jbe 0x51157f
mov ecx, edx
shr ecx, 2
and ecx, 0x3f
cmp ebx, 0x15
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x14], cl
je 0x51158e
shld edx, eax, 4
and edx, 0x3f
cmp ebx, 0x16
mov cl, byte [edx + 0x630777]
mov byte [esi + 0x15], cl
jbe 0x51159a
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
cmp ebx, 0x17
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x16], cl
je 0x5115a6
shr eax, 0x10
mov ecx, dword [esp]
mov edx, ebp
and eax, 0x3f
mov al, byte [eax + 0x630777]
mov byte [esi + 0x17], al
push 0x58b5dc
push 0x12
call fcn.00445474
pop ecx
pop ecx
mov ecx, eax
call fcn.00417cfe
cmp ebx, 0x18
jbe 0x5115b2
mov ecx, edx
shr ecx, 0x1a
cmp ebx, 0x19
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x18], cl
je 0x5115be
mov ecx, edx
shr ecx, 0x14
and ecx, 0x3f
cmp ebx, 0x1a
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x19], cl
jbe 0x5115ca
mov ecx, edx
shr ecx, 0xe
and ecx, 0x3f
cmp ebx, 0x1b
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x1a], cl
je 0x5115d6
mov ecx, edx
shr ecx, 8
and ecx, 0x3f
cmp ebx, 0x1c
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x1b], cl
jbe 0x5115e2
mov ecx, edx
shr ecx, 2
and ecx, 0x3f
cmp ebx, 0x1d
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x1c], cl
je 0x5115ee
shld edx, eax, 4
and edx, 0x3f
cmp ebx, 0x1e
mov cl, byte [edx + 0x630777]
mov byte [esi + 0x1d], cl
jbe 0x5115fa
mov ecx, eax
shr ecx, 0x16
and ecx, 0x3f
cmp ebx, 0x1f
mov cl, byte [ecx + 0x630777]
mov byte [esi + 0x1e], cl
je 0x511606
shr eax, 0x10
mov ecx, dword [esp + 0x28]
and eax, 0x3f
mov al, byte [eax + 0x630777]
add ecx, 0xfffffffe
cmp ecx, dword [esp + 0x24]
mov byte [esi + 0x1f], al
mov esi, dword [esp + 0x2c]
jbe 0x510d92
mov ecx, dword [esp + 0x20]
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
add ecx, 0x18
mov eax, ebp
mov edi, esi
sub eax, ebx
mov dword [esp], eax
cmp ecx, dword [esp]
jae 0x51127a
lea ebx, [ecx + 3]
mov edx, ebx
push 0x58b37c
push ebp
push dword [esp + 0x10]
call fcn.00417cca
add esp, 0xc
mov ecx, edi
add edi, 4
mov esi, edx
mov ebp, eax
mov edx, edi
push 0x58b38c
push dword [esp + 8]
push dword [esp + 0x14]
call fcn.00417cca
add esp, 0xc
test esi, esi
je 0x5113e1
test edx, edx
je 0x5113ef
movzx ecx, byte [ebp]
shr ecx, 2
cmp esi, 1
mov cl, byte [ecx + 0x630777]
mov byte [eax], cl
jbe 0x5113fd
cmp edx, 1
jbe 0x51140c
mov cl, byte [ebp]
mov ch, byte [ebp + 1]
shr ch, 4
shl cl, 4
or cl, ch
movzx ecx, cl
and ecx, 0x3f
cmp esi, 2
mov cl, byte [ecx + 0x630777]
mov byte [eax + 1], cl
jbe 0x51141b
cmp edx, 2
jbe 0x51142a
mov cl, byte [ebp + 1]
mov ch, byte [ebp + 2]
shr ch, 6
shl cl, 2
or cl, ch
movzx ecx, cl
and ecx, 0x3f
cmp edx, 3
mov cl, byte [ecx + 0x630777]
mov byte [eax + 2], cl
je 0x511439
movzx ecx, byte [ebp + 2]
mov ebp, dword [esp + 0x14]
and ecx, 0x3f
mov cl, byte [ecx + 0x630777]
mov byte [eax + 3], cl
mov ecx, ebx
mov ebx, dword [esp + 0x18]
jmp 0x511195
cmp ebx, 1
je 0x511311
mov esi, dword [esp + 0xc]
cmp ebx, 2
mov ebx, edi
jne 0x511363
cmp ebx, dword [esp + 4]
jae 0x511618
mov eax, dword [esp + 8]
mov ecx, dword [esp]
mov edi, ebx
movzx ebx, byte [eax + ecx]
inc ecx
mov dword [esp], ecx
mov eax, ebx
shr eax, 2
cmp ecx, ebp
mov al, byte [eax + 0x630777]
mov byte [esi + edi], al
jae 0x51162e
mov edx, dword [esp + 4]
lea ecx, [edi + 1]
cmp ecx, edx
jae 0x51163a
mov eax, dword [esp + 8]
mov ecx, dword [esp]
shl bl, 4
mov al, byte [eax + ecx]
mov ecx, eax
shr cl, 4
or bl, cl
movzx ecx, bl
and ecx, 0x3f
mov cl, byte [ecx + 0x630777]
mov byte [esi + edi + 1], cl
lea ecx, [edi + 2]
cmp ecx, edx
jae 0x51164c
shl al, 2
mov ebx, edi
and al, 0x3c
push 3
pop edx
mov edi, dword [esp + 0x10]
jmp 0x511353
mov edx, dword [esp + 4]
mov ebx, edi
mov esi, dword [esp + 0xc]
cmp edi, edx
mov edi, dword [esp + 0x10]
jae 0x511625
mov eax, dword [esp + 8]
mov ecx, dword [esp]
movzx eax, byte [eax + ecx]
mov ecx, eax
shr ecx, 2
mov cl, byte [ecx + 0x630777]
mov byte [esi + ebx], cl
lea ecx, [ebx + 1]
cmp ecx, edx
jae 0x511641
shl al, 4
and al, 0x30
push 2
pop edx
movzx eax, al
add ebx, edx
mov al, byte [eax + 0x630777]
mov byte [esi + ecx], al
jmp 0x511367
mov edi, dword [esp + 0x10]
mov ecx, ebx
mov edx, esi
push 0x62f7dc
push dword [esp + 8]
call fcn.0051ca7d
pop ecx
pop ecx
mov ecx, ebx
xor esi, esi
neg ecx
and ecx, 3
cmp ecx, esi
je 0x511397
cmp edx, esi
je 0x511448
mov byte [eax + esi], 0x3d
inc esi
jmp 0x511384
add ebx, ecx
jb 0x511666
lea esi, [esp + 0x3c]
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.00505af8
cmp byte [esi + 0x10], 2
jne 0x51167a
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x1c]
movsd xmm0, qword [esp + 0x3c]
mov edx, dword [edi + 4]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov ecx, dword [esp + 8]
call fcn.0044c034
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
xor edx, edx
push 0x58b39c
jmp 0x511610
xor ecx, ecx
xor edx, edx
push 0x58b3ac
jmp 0x511610
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x58b3bc
jmp 0x511610
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x58b3cc
jmp 0x511610
push 2
pop ecx
mov edx, ecx
push 0x58b3dc
jmp 0x511610
push 2
pop ecx
mov edx, ecx
push 0x58b3ec
jmp 0x511610
push 3
pop ecx
mov edx, ecx
push 0x58b3fc
jmp 0x511610
mov ecx, edx
push 0x58b68c
jmp 0x511610
xor ecx, ecx
xor edx, edx
push 0x58b43c
jmp 0x511610
xor ecx, ecx
inc ecx
mov edx, ecx
push 0x58b44c
jmp 0x511610
push 2
pop ecx
mov edx, ecx
push 0x58b45c
jmp 0x511610
push 3
pop ecx
mov edx, ecx
push 0x58b46c
jmp 0x511610
push 4
pop ecx
mov edx, ecx
push 0x58b47c
jmp 0x511610
push 5
pop ecx
mov edx, ecx
push 0x58b48c
jmp 0x511610
push 6
pop ecx
mov edx, ecx
push 0x58b49c
jmp 0x511610
push 7
pop ecx
mov edx, ecx
push 0x58b4ac
jmp 0x511610
push 8
pop ecx
mov edx, ecx
push 0x58b4cc
jmp 0x511610
push 9
pop ecx
mov edx, ecx
push 0x58b4dc
jmp 0x511610
push 0xa
pop ecx
mov edx, ecx
push 0x58b4ec
jmp 0x511610
push 0xb
pop ecx
mov edx, ecx
push 0x58b4fc
jmp 0x511610
push 0xc
pop ecx
mov edx, ecx
push 0x58b50c
jmp 0x511610
push 0xd
pop ecx
mov edx, ecx
push 0x58b51c
jmp 0x511610
push 0xe
pop ecx
mov edx, ecx
push 0x58b52c
jmp 0x511610
push 0xf
pop ecx
mov edx, ecx
push 0x58b53c
jmp 0x511610
push 0x10
pop ecx
mov edx, ecx
push 0x58b55c
jmp 0x511610
push 0x11
pop ecx
mov edx, ecx
push 0x58b56c
jmp 0x511610
push 0x12
pop ecx
mov edx, ecx
push 0x58b57c
jmp 0x511610
push 0x13
pop ecx
mov edx, ecx
push 0x58b58c
jmp 0x511610
push 0x14
pop ecx
mov edx, ecx
push 0x58b59c
jmp 0x511610
push 0x15
pop ecx
mov edx, ecx
push 0x58b5ac
jmp 0x511610
push 0x16
pop ecx
mov edx, ecx
push 0x58b5bc
jmp 0x511610
push 0x17
pop ecx
mov edx, ecx
push 0x58b5cc
jmp 0x511610
push 0x18
pop ecx
mov edx, ecx
push 0x58b5ec
jmp 0x511610
push 0x19
pop ecx
mov edx, ecx
push 0x58b5fc
jmp 0x511610
push 0x1a
pop ecx
mov edx, ecx
push 0x58b60c
jmp 0x511610
push 0x1b
pop ecx
mov edx, ecx
push 0x58b61c
jmp 0x511610
push 0x1c
pop ecx
mov edx, ecx
push 0x58b62c
jmp 0x511610
push 0x1d
pop ecx
mov edx, ecx
push 0x58b63c
jmp 0x511610
push 0x1e
pop ecx
mov edx, ecx
push 0x58b64c
jmp 0x511610
push 0x1f
pop ecx
mov edx, ecx
push 0x58b65c
call fcn.00580e40
pop eax
ud2
mov edx, dword [esp + 4]
mov ecx, ebx
push 0x58b31c
jmp 0x511610
mov ecx, ebx
push 0x58b35c
jmp 0x511610
mov ecx, dword [esp]
mov edx, ebp
push 0x58b32c
jmp 0x511610
push 0x58b33c
jmp 0x511610
mov edx, dword [esp + 4]
push 0x58b36c
jmp 0x511610
mov edx, dword [esp + 4]
push 0x58b34c
jmp 0x511610
push 0x2d
pop edx
mov ecx, 0x62f828
push 0x62f8c0
jmp 0x511673
push 0x2a
pop edx
mov ecx, 0x62f7ec
push 0x62f818
call fcn.00581290
jmp 0x511615
mov ecx, dword [esp + 0x4c]
movsd xmm0, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x44]
lea eax, [esp + 0x50]
mov dword [eax + 0x10], ecx
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
push 0xc
pop edx
mov ecx, str.Invalid_UTF8U
push 0x62f8dc
push 0x62f4bc
push eax
call fcn.00581210
add esp, 0xc
ud2