Function at 0x412560
Capabilities:
Encode data using base64

Disassembly:
push edi
push esi
sub esp, 0xc
mov edi, edx
mov esi, eax
call fcn.00412890
test eax, eax
je 0x412741
push eax
push 0
push edi
call fcn.004256d0
add esp, 0xc
movsx eax, byte [esi]
test eax, eax
je 0x412741
mov dword [esp + 8], edi
mov dword [esp + 4], ebx
xor edx, edx
xor eax, eax
movsx ecx, byte [edx + esi]
cmp ecx, 0x3d
je 0x41273d
mov ebx, edx
and ebx, 0x80000003
jge 0x4125b7
sub ebx, 1
or ebx, 0xfffffffc
inc ebx
test ebx, ebx
je 0x412828
cmp ebx, 1
je 0x4126aa
cmp ebx, 2
jne 0x41265c
movzx ecx, cl
cmp ecx, 0x41
jge 0x412774
cmp ecx, 0x30
jl 0x4125ef
cmp ecx, 0x39
jg 0x4125ef
add ecx, 4
movzx ecx, cl
jmp 0x412606
cmp ecx, 0x2b
jne 0x4125fb
mov ecx, 0x3e
jmp 0x412606
mov ebx, 0x3f
cmp ecx, 0x2f
cmove ecx, ebx
mov ebx, dword [esp + 8]
and ecx, 0x3c
shr ecx, 2
or byte [eax + ebx], cl
movzx ecx, byte [edx + esi]
inc eax
cmp ecx, 0x41
jge 0x412747
cmp ecx, 0x30
jl 0x412633
cmp ecx, 0x39
jg 0x412633
add ecx, 4
movzx ecx, cl
jmp 0x41264a
cmp ecx, 0x2b
jne 0x41263f
mov ecx, 0x3e
jmp 0x41264a
mov ebx, 0x3f
cmp ecx, 0x2f
cmove ecx, ebx
mov ebx, dword [esp + 8]
and ecx, 3
shl ecx, 6
or byte [eax + ebx], cl
jmp 0x412730
cmp ebx, 3
jne 0x412730
movzx ecx, cl
cmp ecx, 0x41
jge 0x4127a1
cmp ecx, 0x30
jl 0x412683
cmp ecx, 0x39
jg 0x412683
add ecx, 4
movzx ecx, cl
jmp 0x41269a
cmp ecx, 0x2b
jne 0x41268f
mov ecx, 0x3e
jmp 0x41269a
mov ebx, 0x3f
cmp ecx, 0x2f
cmove ecx, ebx
mov ebx, dword [esp + 8]
and ecx, 0x3f
or byte [eax + ebx], cl
inc eax
jmp 0x412730
movzx ecx, cl
cmp ecx, 0x41
jge 0x4127fb
cmp ecx, 0x30
jl 0x4126c8
cmp ecx, 0x39
jg 0x4126c8
add ecx, 4
movzx ecx, cl
jmp 0x4126df
cmp ecx, 0x2b
jne 0x4126d4
mov ecx, 0x3e
jmp 0x4126df
mov ebx, 0x3f
cmp ecx, 0x2f
cmove ecx, ebx
mov ebx, dword [esp + 8]
and ecx, 0x30
shr ecx, 4
or byte [eax + ebx], cl
movzx ecx, byte [edx + esi]
inc eax
cmp ecx, 0x41
jge 0x4127ce
cmp ecx, 0x30
jl 0x41270c
cmp ecx, 0x39
jg 0x41270c
add ecx, 4
movzx ecx, cl
jmp 0x412723
cmp ecx, 0x2b
jne 0x412718
mov ecx, 0x3e
jmp 0x412723
mov ebx, 0x3f
cmp ecx, 0x2f
cmove ecx, ebx
mov ebx, dword [esp + 8]
and ecx, 0xf
shl ecx, 4
or byte [eax + ebx], cl
inc edx
movsx ecx, byte [edx + esi]
test ecx, ecx
jne 0x412599
mov ebx, dword [esp + 4]
add esp, 0xc
pop esi
pop edi
ret
cmp ecx, 0x5a
jg 0x412757
add ecx, 0xffffffbf
movzx ecx, cl
jmp 0x41264a
cmp ecx, 0x61
jl 0x412633
cmp ecx, 0x7a
jg 0x412633
add ecx, 0xffffffb9
movzx ecx, cl
jmp 0x41264a
cmp ecx, 0x5a
jg 0x412784
add ecx, 0xffffffbf
movzx ecx, cl
jmp 0x412606
cmp ecx, 0x61
jl 0x4125ef
cmp ecx, 0x7a
jg 0x4125ef
add ecx, 0xffffffb9
movzx ecx, cl
jmp 0x412606
cmp ecx, 0x5a
jg 0x4127b1
add ecx, 0xffffffbf
movzx ecx, cl
jmp 0x41269a
cmp ecx, 0x61
jl 0x412683
cmp ecx, 0x7a
jg 0x412683
add ecx, 0xffffffb9
movzx ecx, cl
jmp 0x41269a
cmp ecx, 0x5a
jg 0x4127de
add ecx, 0xffffffbf
movzx ecx, cl
jmp 0x412723
cmp ecx, 0x61
jl 0x41270c
cmp ecx, 0x7a
jg 0x41270c
add ecx, 0xffffffb9
movzx ecx, cl
jmp 0x412723
cmp ecx, 0x5a
jg 0x41280b
add ecx, 0xffffffbf
movzx ecx, cl
jmp 0x4126df
cmp ecx, 0x61
jl 0x4126c8
cmp ecx, 0x7a
jg 0x4126c8
add ecx, 0xffffffb9
movzx ecx, cl
jmp 0x4126df
movzx ecx, cl
cmp ecx, 0x41
jge 0x412868
cmp ecx, 0x30
jl 0x412842
cmp ecx, 0x39
jg 0x412842
add ecx, 4
movzx ecx, cl
jmp 0x412859
cmp ecx, 0x2b
jne 0x41284e
mov ecx, 0x3e
jmp 0x412859
mov ebx, 0x3f
cmp ecx, 0x2f
cmove ecx, ebx
mov ebx, dword [esp + 8]
shl ecx, 2
or byte [eax + ebx], cl
jmp 0x412730
cmp ecx, 0x5a
jg 0x412875
add ecx, 0xffffffbf
movzx ecx, cl
jmp 0x412859
cmp ecx, 0x61
jl 0x412842
cmp ecx, 0x7a
jg 0x412842
add ecx, 0xffffffb9
movzx ecx, cl
jmp 0x412859