Function at 0x5c3f8c
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x7d], 3
je 0x602672
mov eax, dword [eax + 0x80]
test eax, 0x400
jne 0x5c6800
mov ebx, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
test dword [edx + 4], 0x100
mov ecx, dword [ebx + 4]
jne 0x5e3282
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x1c]
push edx
push 0
push eax
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0xc], ecx
jmp 0x5c3ff8
mov esi, dword [ebp + 0xc]
jmp 0x5c4085
mov ecx, dword [ebx + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [eax + 8]
mov edx, dword [ecx + 0x44]
mov dword [ebp - 0x10], edx
jmp 0x5c4229
mov ecx, dword [edi + 0x4c]
mov eax, dword [ebp + 0x10]
and ecx, 0xffffffc1
or ecx, 1
mov dword [edi + 0x4c], ecx
movzx eax, byte [eax + 0x7d]
sub eax, 1
jne 0x5e0c69
mov eax, 0x78
mov ecx, dword [edx + 4]
and ecx, 0xffffff
push ecx
or eax, 0x2500
push eax
push ebx
mov ebx, edi
call fcn.005c1292
mov edx, dword [ebp + 0x10]
movzx eax, byte [edx + 0x7d]
mov ebx, 1
sub eax, ebx
jne 0x5e0c80
mov eax, 0x78
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
and ecx, 0xffffff
push ecx
call fcn.005c130c
shl eax, 0xc
xor eax, dword [edi]
and eax, 0xf000
xor dword [edi], eax
test byte [edi + 0x26], bl
jne 0x5e32a9
mov eax, dword [ebp + 0xc]
test dword [eax + 4], 0x400
je 0x5c4359
jmp 0x602c7e
or eax, 0x10000
mov dword [edi + 0x24], eax
jmp 0x5c40fe
or dword [edi + 0x54], 0xc
jmp 0x5c42da
cmp al, 0x2e
je 0x5c3fe4
cmp al, 1
je 0x5e10c6
cmp al, 0x47
je 0x5e10c6
cmp al, 0x5c
je 0x5e10c6
cmp al, 0x22
jne 0x6027a0
mov ecx, dword [ebx + 0x18]
test ecx, ecx
je 0x5c3892
mov al, byte [ecx]
cmp al, 0x3e
jne 0x6027a5
mov edx, dword [ebp + 0x10]
mov al, byte [edx + 0x7d]
mov dword [ebp - 0x14], ecx
cmp al, 1
jne 0x6027ca
mov dword [ebp - 0xc], 0
jmp 0x5c3ff5
or dword [edi + 0x24], esi
jmp 0x5c42ae
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x6c
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x14], 0
mov byte [ebp - 2], 0
test esi, esi
je 0x5c3fc3
mov al, byte [esi]
cmp al, 0x1d
je 0x5c373e
cmp al, 0x23
je 0x5e0c96
cmp al, 0x3d
jne 0x602719
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x80]
mov ebx, dword [esi + 0x44]
test eax, 0x400
jne 0x5c671d
mov al, byte [ebx]
cmp al, 0x3e
jne 0x5c3859
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0xc], ecx
cmp al, 0x3e
jne 0x5e2cb3
mov dword [ebp - 0x14], ebx
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xc8]
push 8
call fcn.0051faea
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov ecx, dword [ebp + 0xc]
test eax, eax
je 0x5e10d3
mov dword [eax], 0x402388
mov dword [eax + 4], ecx
mov edi, eax
test dword [ecx + 4], 0x4000
jne 0x602813
mov ecx, dword [ebx + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [eax + 0xc4]
mov eax, dword [ebp - 0xc]
push 0xa
call fcn.0052073a
test eax, eax
je 0x5c406a
cmp byte [eax], 0xa
jne 0x60289f
mov dword [eax + 0x48], edi
mov dword [ebp - 8], eax
mov edi, eax
cmp dword [ebp - 0x14], 0
mov edx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x14]
mov dword [eax + 0x44], edx
je 0x5c3795
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
call edx
test eax, eax
jne 0x60288e
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x5c40a6
cmp byte [eax], 0x2e
je 0x5e2cc0
xor ecx, ecx
push edi
push ebx
call fcn.005c3f43
mov esi, dword [ebp + 0xc]
cmp byte [esi], 0x3d
jne 0x5c40c4
mov eax, dword [esi + 0x48]
push 1
push edi
push eax
push ebx
call fcn.005c36a5
test dword [esi + 4], 0x2000
jne 0x5e11d5
mov ecx, dword [edi + 0x44]
test byte [ecx + 0x28], 1
jne 0x5e11d5
xor eax, eax
shl eax, 0x12
xor eax, dword [edi + 0x24]
and eax, 0x40000
xor dword [edi + 0x24], eax
test dword [esi + 4], 0x100
mov eax, dword [edi + 0x24]
jne 0x5c3843
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x5e10da
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
test dword [eax], 0x1000
jne 0x6028a4
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x5e10e1
mov edx, dword [ecx]
mov eax, dword [edx]
call eax
mov ecx, dword [eax]
mov eax, dword [edi + 0x24]
shr ecx, 0xd
and cl, 1
shr eax, 0x12
and al, 1
mov byte [ebp - 1], cl
lea edx, [ebp - 1]
push edx
mov edx, dword [ebx]
movzx ecx, al
mov eax, dword [ebp + 0xc]
lea esi, [edi + 0x40]
push esi
push ecx
mov ecx, dword [eax + 0x2c]
push edi
push edx
mov dword [ebp - 0x14], esi
call fcn.0058a68e
movzx ecx, byte [ebp - 1]
shl ecx, 0x15
xor ecx, dword [edi + 0x24]
and ecx, 0x200000
xor dword [edi + 0x24], ecx
test dword [edi + 0x54], 0x100
jne 0x602916
mov edx, dword [edi + 0x4c]
shr edx, 6
test dl, 1
jne 0x60294e
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x24]
test eax, eax
je 0x5c379d
mov ecx, dword [ebx]
test dword [eax + 4], 0x20000
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
jne 0x602ab1
call edx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x24]
mov eax, dword [eax + 0x10]
mov esi, dword [ebx]
push 0
push 0
push ecx
push eax
push 0
mov eax, edi
call fcn.0052e2f9
mov dword [ebp - 0x10], eax
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov ecx, dword [edi + 0x24]
mov esi, dword [ebp - 0x10]
shr ecx, 0x12
and cl, 1
movzx edx, cl
mov ecx, dword [ebp + 0xc]
push edx
mov edx, dword [ecx + 0x24]
push edx
push eax
mov eax, esi
call fcn.005c4640
call fcn.0052d5ff
test al, al
jne 0x602b02
mov ecx, dword [ebx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov eax, dword [eax + 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x24]
push edx
push 1
push eax
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [edi + 4]
cmp ecx, dword [ebp - 0x24]
je 0x602b58
cmp dword [ebp - 0xc], 0
je 0x5c425a
mov edx, dword [ebp + 0x10]
cmp byte [edx + 0x7d], 4
je 0x5e0c49
mov eax, dword [edi + 0x58]
mov ecx, dword [ebp + 0xc]
push 0
push edi
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov ecx, dword [eax]
push ecx
mov ecx, dword [ebp - 0xc]
push 0xa
call fcn.005c1633
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp + 0xc]
mov dword [edi + 0x3c], eax
mov al, byte [edx]
mov byte [ebp - 2], 0
cmp al, 0x1d
je 0x5c37b5
cmp al, 0x23
je 0x5e0cdd
cmp dword [ebp - 0xc], 0
je 0x5e0a7c
test byte [edx + 4], 1
mov ecx, 0x10
jne 0x5c672d
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x7d], 3
je 0x5c672d
test byte [edx + 4], 4
mov esi, 0x20000
jne 0x5c38af
test dword [edx + 4], 0x400
jne 0x5e0d80
test dword [edx + 4], 0x200
jne 0x5c3850
test dword [edi + 0x24], esi
jne 0x5c3850
test byte [edi + 0x54], cl
jne 0x5c3850
test byte [edx + 4], 0x80
jne 0x602c94
mov eax, dword [ebp + 0x10]
movzx ecx, byte [eax + 0x7d]
mov eax, ecx
sub eax, 1
jne 0x5c67dc
mov esi, 0x78
mov eax, ecx
sub eax, 1
jne 0x5c67ec
or esi, 0x2787
mov ecx, dword [edx + 4]
and ecx, 0xffffff
push ecx
push esi
push ebx
mov ebx, edi
call fcn.005c1292
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 4]
mov edx, dword [ebp + 0x10]
and eax, 0xffffff
push eax
mov eax, esi
call fcn.005c130c
shl eax, 0xc
xor eax, dword [edi]
and eax, 0xf000
xor dword [edi], eax
test byte [edi + 0x54], 4
mov eax, dword [edi]
je 0x5c4359
and eax, 0xf000
cmp eax, 0x1000
je 0x602cdf
mov ebx, dword [ebp + 8]
push ebx
mov eax, edi
call fcn.005c1547
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebx + 4]
push 0x29
mov eax, edi
call fcn.005c3518
test dword [edi + 0x54], 0x100
mov edx, dword [ebp - 0x14]
mov eax, dword [edx]
mov eax, dword [eax + 8]
jne 0x602d27
test eax, eax
jle 0x5c43c2
mov dword [ebp - 0xc], 0xc
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 8]
mov esi, dword [edx + eax]
mov ebx, dword [ecx + 4]
push edi
push esi
mov ecx, ebx
call fcn.005c343f
test al, al
je 0x602d2d
add dword [ebp - 0xc], 4
sub dword [ebp - 0x18], 1
jne 0x5c4396
mov eax, dword [edi + 0x58]
cmp dword [eax + 8], 0
jg 0x5e2fb6
mov eax, dword [edi + 0x4c]
and eax, 0x3f
cmp eax, 0x13
je 0x602d91
cmp eax, 0x14
je 0x602d91
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
test eax, 0x800
je 0x5c3fda
jmp 0x60271e
or dword [edi + 0x54], ecx
jmp 0x5c429f
sub eax, 2
jne 0x5e0d5e
xor esi, esi
jmp 0x5c42fb
sub eax, 2
jne 0x5e0d6c
or esi, 0x2002
jmp 0x5c430c
test eax, 0x800
je 0x5c375c
jmp 0x60269b
mov ecx, dword [edx + 4]
and ecx, 0xffffff
push ecx
push 0x2400
push ebx
mov ebx, edi
mov byte [ebp - 2], 1
call fcn.005c1292
mov edx, dword [edi]
or dword [edi + 0x54], 8
mov ecx, dword [ebp + 0xc]
mov eax, dword [edi + 0x54]
and edx, 0xffff1fff
or edx, 0x1000
mov dword [edi], edx
test dword [ecx + 4], 0x400
je 0x5c4359
jmp 0x602d1c
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x1d
jne 0x5c423c
mov ecx, dword [ebp - 0x14]
mov eax, dword [ecx]
cmp dword [eax + 8], 0
jne 0x5c423c
jmp 0x602ba6
sub eax, 2
je 0x5e10e8
sub eax, 1
je 0x5c37d1
jmp 0x5e10e8
sub eax, 2
je 0x5e10ef
sub eax, ebx
je 0x5c3802
jmp 0x5e10ef
mov eax, dword [ebp + 0x10]
cmp byte [eax + 0x7d], 1
jne 0x6026cd
mov eax, dword [eax + 0x80]
test eax, 0x400
jne 0x5e10b6
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
mov eax, dword [eax + 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push 1
push eax
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0xc], ecx
jmp 0x5c3ff5
mov ecx, dword [edx + 4]
and ecx, 0xffffff
push ecx
push 0x2400
push ebx
mov ebx, edi
call fcn.005c1292
mov edx, dword [edi]
mov eax, dword [edi + 0x4c]
mov ecx, dword [edi + 8]
or dword [edi + 0x54], 0xc
and edx, 0xffff3fff
and eax, 0xffffffc2
or edx, 0x3000
or eax, 2
mov dword [edi], edx
mov dword [edi + 0x4c], eax
test ecx, ecx
je 0x5e0d24
cmp byte [ecx], 3
jne 0x602c86
call fcn.0052b780
mov edx, 0xf
call fcn.0052b980
mov edx, dword [ebp + 0xc]
push ebp
or al, 0x33
leave
test al, al
sete cl
shl ecx, 0x11
xor ecx, dword [edi + 0x24]
and ecx, 0x20000
xor dword [edi + 0x24], ecx
test dword [edx + 4], 0x400
je 0x5c4359
jmp 0x602c8b
sub eax, 1
je 0x5c42f6
jmp 0x5c67e5
sub eax, 1
jne 0x5c430c
or esi, 0x2506
jmp 0x5c430c
mov eax, dword [edi + 0x54]
test cl, al
jne 0x5c42bb
or eax, 1
mov dword [edi + 0x54], eax
jmp 0x5c42bb
test eax, 0x800
je 0x5e0cb4
jmp 0x6026f6
cmp al, 0x2e
jne 0x602766
jmp 0x5c3fe4
xor edi, edi
jmp 0x5c402f
xor eax, eax
jmp 0x5c410f
xor eax, eax
jmp 0x5c412c
xor eax, eax
jmp 0x5c37d6
xor eax, eax
jmp 0x5c3807
mov eax, 1
jmp 0x5c40e0
cmp al, 0x2e
je 0x5c3ff2
jmp 0x602783
mov ecx, dword [eax + 0x1c]
jmp 0x5c40a8
push eax
mov eax, dword [ebp + 8]
push eax
mov ebx, edi
call 0x5e2fc7
jmp 0x5c43cf
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
mov eax, dword [eax + 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x18]
push edx
push 2
push eax
mov eax, dword [ecx + 0x24]
call eax
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0xc], ecx
mov byte [ebp - 2], 1
jmp 0x5c3ff8
test dword [esi], 0x300
jne 0x602bd6
mov ecx, dword [ebp + 0xc]
test byte [ecx + 4], 0x78
jne 0x602c0f
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
cmp dword [edx + 8], 0
je 0x5c382e
jmp 0x602c48