Function at 0x454a00
Capabilities:
Encode data using base64

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov esi, dword [ebx + 0x24]
test esi, esi
jne 0x454b0d
mov edx, dword [ebx]
test dl, 1
je 0x454ae6
mov eax, dword [ebx + 8]
mov ebp, dword [ebx + 4]
mov dword [esp + 0x18], eax
lea eax, [ebx + 0x18]
cmp ebp, 3
jg 0x454b20
lea edi, [esp + 0x2c]
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_memcpy
test ebp, ebp
mov edx, dword [esp + 0x1c]
jne 0x454dd0
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x454bf3
and edx, 0x20
jne 0x454c90
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x454afc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454c23
mov dword [esp + 4], eax
mov dword [esp], 0x487f8e
call sub.libgpg_error_0.dll_gpgrt_fputs
cmp eax, 0xffffffff
je 0x454c73
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
test eax, eax
je 0x454e13
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.libgpg_error_0.dll_gpgrt_fputs
cmp eax, 0xffffffff
je 0x454c73
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454e50
mov dword [esp + 4], eax
mov dword [esp], 0x487f31
call sub.libgpg_error_0.dll_gpgrt_fputs
cmp eax, 0xffffffff
je 0x454c73
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x454afc
mov dword [esp], eax
call sub.libgcrypt_20.dll_gcry_free
mov dword [ebx + 0x14], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x24], esi
add esp, 0x3c
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 8], 0x141
lea edi, [esp + 0x2c]
mov dword [esp + 4], str._home_wk_b_gnupg_2.2_dist_PLAY_release_gnupg_w32_2.2.19_common_b64enc.c
mov dword [esp], str.idx___4
mov dword [esp + 0x1c], eax
call fcn.00474e00
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], ebp
mov dword [esp], edi
mov dword [esp + 4], eax
call sub.msvcrt.dll_memcpy
movzx edx, byte [esp + 0x2c]
mov eax, edx
shr al, 2
movzx eax, al
movzx eax, byte [eax + 0x4883a0]
mov byte [esp + 0x28], al
movzx eax, byte [esp + 0x2d]
shl edx, 4
mov byte [esp + 0x2b], 0x3d
and edx, 0x30
mov ecx, eax
shl eax, 2
shr cl, 4
and eax, 0x3c
movzx ecx, cl
movzx eax, byte [eax + 0x4883a0]
or edx, ecx
movzx edx, byte [edx + 0x4883a0]
mov byte [esp + 0x2a], al
mov byte [esp + 0x29], dl
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454c40
lea ebp, [esp + 0x28]
mov dword [esp + 4], eax
movsx eax, byte [ebp]
add ebp, 1
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fputc
mov eax, dword [ebx + 0x10]
cmp edi, ebp
jne 0x454bb5
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_ferror
test eax, eax
jne 0x454c73
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
mov edx, dword [ebx]
cmp eax, 0xf
jle 0x454a5b
test dl, 0x10
jne 0x454a67
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454e70
mov dword [esp + 4], eax
mov dword [esp], 0x487f38
call sub.libgpg_error_0.dll_gpgrt_fputs
cmp eax, 0xffffffff
je 0x454c73
mov edx, dword [ebx]
jmp 0x454a67
mov eax, dword [ebx + 0xc]
mov dword [esp], 0x487f8e
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
jmp 0x454a96
lea edx, [esp + 0x28]
mov ebp, edx
mov eax, dword [ebx + 0xc]
add ebp, 1
mov dword [esp + 4], eax
movsx eax, byte [ebp - 1]
mov dword [esp], eax
call sub.msvcrt.dll_putc
cmp edi, ebp
jne 0x454c46
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_ferror
test eax, eax
je 0x454bdf
call sub.libgpg_error_0.dll_gpg_err_code_from_syserror
movzx esi, ax
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x454aed
jmp 0x454afc
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454e30
mov dword [esp + 4], eax
mov dword [esp], 0x487f8c
call sub.libgpg_error_0.dll_gpgrt_fputs
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x1c]
movzx eax, word [ebx + 0x1c]
shr edx, 0x10
shr ecx, 8
mov dword [esp + 0x18], ecx
mov ecx, edx
rol ax, 8
shr cl, 2
mov byte [esp + 0x2c], dl
shl edx, 4
movzx ebp, cl
movzx ecx, byte [esp + 0x18]
mov word [esp + 0x2d], ax
and edx, 0x30
xor eax, eax
mov al, byte [ebp + 0x4883a0]
shr cl, 4
movzx ebp, cl
mov ecx, dword [esp + 0x18]
or edx, ebp
lea ebp, [esp + 0x28]
mov ah, byte [edx + 0x4883a0]
movzx edx, byte [ebx + 0x1c]
shl ecx, 2
and ecx, 0x3c
shr dl, 6
movzx eax, ax
movzx edx, dl
or ecx, edx
mov edx, dword [ebx + 0x1c]
movzx ecx, byte [ecx + 0x4883a0]
and edx, 0x3f
movzx edx, byte [edx + 0x4883a0]
shl ecx, 0x10
or eax, ecx
shl edx, 0x18
or eax, edx
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454da0
mov dword [esp + 4], eax
movsx eax, byte [ebp]
add ebp, 1
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_fputc
mov eax, dword [ebx + 0x10]
cmp ebp, edi
jne 0x454d3b
mov dword [esp], eax
call sub.libgpg_error_0.dll_gpgrt_ferror
test eax, eax
jne 0x454c73
test byte [ebx], 0x10
jne 0x454a70
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x454e88
mov dword [esp + 4], eax
mov dword [esp], 0x487f38
call sub.libgpg_error_0.dll_gpgrt_fputs
cmp eax, 0xffffffff
jne 0x454a70
jmp 0x454c73
mov eax, dword [ebx + 0xc]
add ebp, 1
mov dword [esp + 4], eax
movsx eax, byte [ebp - 1]
mov dword [esp], eax
call sub.msvcrt.dll_putc
cmp edi, ebp
jne 0x454da0
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call sub.msvcrt.dll_ferror
test eax, eax
je 0x454d65
jmp 0x454c73
movzx edx, byte [esp + 0x2c]
mov eax, edx
shr al, 2
movzx eax, al
movzx eax, byte [eax + 0x4883a0]
mov byte [esp + 0x28], al
mov eax, edx
shl eax, 4
and eax, 0x30
cmp ebp, 1
jne 0x454b70
movzx eax, byte [eax + 0x4883a0]
mov ebp, 0x3d3d
mov word [esp + 0x2a], bp
mov byte [esp + 0x29], al
jmp 0x454ba6
mov eax, dword [ebx + 0xc]
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
jmp 0x454ab9
mov eax, dword [ebx + 0xc]
mov dword [esp], 0x3d
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputc
jmp 0x454cab
mov eax, dword [ebx + 0xc]
mov dword [esp], 0x487f31
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
jmp 0x454add
mov eax, dword [ebx + 0xc]
mov dword [esp], 0x487f38
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
jmp 0x454c17
mov eax, dword [ebx + 0xc]
mov dword [esp], 0x487f38
mov dword [esp + 4], eax
call sub.msvcrt.dll_fputs
jmp 0x454d89