Function at 0x412ad0
Capabilities:
Encode data using base64

Disassembly:
sub esp, 8
mov edx, dword [esp + 0x10]
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
push edi
mov dword [ebx], 0
mov ax, word [ecx + 0x39c]
cmp ax, 2
mov ebp, edx
mov byte [esp + 0x20], 0
jne 0x412b9d
mov esi, dword [esp + 0x1c]
mov al, byte [esi]
test al, al
je 0x412b69
cmp al, 0x3d
jne 0x412b55
mov al, byte [esi + 1]
inc esi
test al, al
je 0x412b69
cmp al, 0xd
je 0x412b69
cmp al, 0xa
je 0x412b69
cmp al, 0x30
jl 0x412b27
cmp al, 0x39
jg 0x412b27
sub al, 0x30
jmp 0x412b29
sub al, 0x37
shl al, 4
inc esi
mov cl, al
mov al, byte [esi]
test al, al
je 0x412b69
cmp al, 0x30
jl 0x412b49
cmp al, 0x39
jg 0x412b49
movsx eax, al
sub eax, 0x30
add cl, al
mov byte [edx], cl
jmp 0x412b60
movsx eax, al
sub eax, 0x37
add cl, al
mov byte [edx], cl
jmp 0x412b60
cmp al, 0x5f
jne 0x412b5e
mov byte [edx], 0x20
jmp 0x412b60
mov byte [edx], al
mov al, byte [esi + 1]
inc edx
inc esi
test al, al
jne 0x412b07
mov edi, 0x42d760
or ecx, 0xffffffff
xor eax, eax
mov byte [edx], 0
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edx, ecx
mov edi, ebp
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebp
jmp 0x412d1f
cmp ax, 1
jne 0x412cd2
mov edi, dword [esp + 0x1c]
mov cl, byte [esp + 0x11]
xor esi, esi
mov al, byte [edi]
test al, al
je 0x412c6b
inc edi
cmp al, 0x41
jl 0x412bc8
cmp al, 0x5a
jg 0x412bc8
add al, 0xbf
jmp 0x412c01
cmp al, 0x61
jl 0x412bd4
cmp al, 0x7a
jg 0x412bd4
add al, 0xb9
jmp 0x412c01
cmp al, 0x30
jl 0x412be0
cmp al, 0x39
jg 0x412be0
add al, 4
jmp 0x412c01
cmp al, 0x2f
jne 0x412be8
mov al, 0x3f
jmp 0x412c01
cmp al, 0x2b
jne 0x412bf0
mov al, 0x3e
jmp 0x412c01
cmp al, 0x3d
jne 0x412bf8
or al, 0xff
jmp 0x412c01
cmp al, 0x2d
jne 0x412c01
mov byte [esp + 0x20], 1
test al, al
jl 0x412c61
mov byte [esp + esi + 0x10], al
inc esi
cmp esi, 4
jne 0x412c5d
mov cl, byte [esp + 0x11]
mov al, byte [esp + 0x10]
mov bl, cl
sar bl, 4
shl al, 2
and bl, 3
or al, bl
mov bl, byte [esp + 0x12]
mov byte [edx], al
mov al, cl
sar bl, 2
shl al, 4
and bl, 0xf
inc edx
or al, bl
mov bl, byte [esp + 0x13]
mov byte [edx], al
mov al, byte [esp + 0x12]
shl al, 6
and bl, 0x3f
inc edx
or al, bl
mov byte [edx], al
mov eax, dword [esp + 0x24]
inc edx
mov esi, dword [eax]
add esi, 3
mov dword [eax], esi
xor esi, esi
jmp 0x412c61
mov cl, byte [esp + 0x11]
mov al, byte [edi]
test al, al
jne 0x412bbb
cmp esi, 2
jne 0x412c8f
mov al, byte [esp + 0x10]
mov bl, cl
sar bl, 4
shl al, 2
and bl, 3
or al, bl
mov byte [edx], al
mov eax, dword [esp + 0x24]
inc edx
add eax, 4
mov dword [esp + 0x24], eax
cmp esi, 3
jne 0x412cc0
mov al, byte [esp + 0x10]
mov bl, cl
sar bl, 4
shl al, 2
and bl, 3
or al, bl
mov byte [edx], al
mov al, byte [esp + 0x12]
sar al, 2
shl cl, 4
and al, 0xf
inc edx
or cl, al
mov eax, dword [esp + 0x24]
mov byte [edx], cl
inc edx
add dword [eax], 2
mov byte [edx], 0
movsx eax, byte [esp + 0x20]
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0xc
mov edi, dword [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x42d760
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
pop edi
pop esi
mov dword [ebx], ecx
pop ebp
pop ebx
add esp, 8
ret 0xc