Function at 0x4037a0
Capabilities:
Encode data using base64

Disassembly:
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
sub esp, 8
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp eax, edi
jne 0x4037cd
mov eax, ecx
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4037c0
sub eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov ebp, ecx
mov ecx, dword [esp + 0x24]
add ecx, 0xfffffffc
cmp ecx, edi
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
jle 0x403a56
dec ecx
shr ecx, 2
inc ecx
lea eax, [ecx*4]
lea edx, [ecx + ecx*2]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], edx
lea ecx, [ecx]
mov ebx, dword [ebp]
or edi, 0xffffffff
cmp bl, 0x41
jl 0x403828
cmp bl, 0x5a
jg 0x403828
movsx edi, bl
sub edi, 0x41
jmp 0x403862
cmp bl, 0x61
jl 0x40383a
cmp bl, 0x7a
jg 0x40383a
movsx edi, bl
sub edi, 0x47
jmp 0x403862
cmp bl, 0x30
jl 0x40384c
cmp bl, 0x39
jg 0x40384c
movsx edi, bl
add edi, 4
jmp 0x403862
cmp bl, 0x2b
jne 0x403858
mov edi, 0x3e
jmp 0x403862
cmp bl, 0x2f
jne 0x403862
mov edi, 0x3f
mov ecx, ebx
shr ecx, 8
or edx, 0xffffffff
cmp cl, 0x41
jl 0x40387c
cmp cl, 0x5a
jg 0x40387c
movsx edx, cl
sub edx, 0x41
jmp 0x4038b6
cmp cl, 0x61
jl 0x40388e
cmp cl, 0x7a
jg 0x40388e
movsx edx, cl
sub edx, 0x47
jmp 0x4038b6
cmp cl, 0x30
jl 0x4038a0
cmp cl, 0x39
jg 0x4038a0
movsx edx, cl
add edx, 4
jmp 0x4038b6
cmp cl, 0x2b
jne 0x4038ac
mov edx, 0x3e
jmp 0x4038b6
cmp cl, 0x2f
jne 0x4038b6
mov edx, 0x3f
lea esi, [edx*4]
sar esi, 6
lea edx, [edi*4]
or esi, edx
and esi, 0xff
or edx, 0xffffffff
cmp cl, 0x41
jl 0x4038e4
cmp cl, 0x5a
jg 0x4038e4
movsx edx, cl
sub edx, 0x41
jmp 0x40391e
cmp cl, 0x61
jl 0x4038f6
cmp cl, 0x7a
jg 0x4038f6
movsx edx, cl
sub edx, 0x47
jmp 0x40391e
cmp cl, 0x30
jl 0x403908
cmp cl, 0x39
jg 0x403908
movsx edx, cl
add edx, 4
jmp 0x40391e
cmp cl, 0x2b
jne 0x403914
mov edx, 0x3e
jmp 0x40391e
cmp cl, 0x2f
jne 0x40391e
mov edx, 0x3f
mov ecx, ebx
shr ecx, 0x10
or edi, 0xffffffff
cmp cl, 0x41
jl 0x403938
cmp cl, 0x5a
jg 0x403938
movsx edi, cl
sub edi, 0x41
jmp 0x403972
cmp cl, 0x61
jl 0x40394a
cmp cl, 0x7a
jg 0x40394a
movsx edi, cl
sub edi, 0x47
jmp 0x403972
cmp cl, 0x30
jl 0x40395c
cmp cl, 0x39
jg 0x40395c
movsx edi, cl
add edi, 4
jmp 0x403972
cmp cl, 0x2b
jne 0x403968
mov edi, 0x3e
jmp 0x403972
cmp cl, 0x2f
jne 0x403972
mov edi, 0x3f
shl edi, 2
sar edi, 4
shl edx, 4
or edi, edx
and edi, 0xff
or edx, 0xffffffff
cmp cl, 0x41
jl 0x403998
cmp cl, 0x5a
jg 0x403998
movsx edx, cl
sub edx, 0x41
jmp 0x4039d2
cmp cl, 0x61
jl 0x4039aa
cmp cl, 0x7a
jg 0x4039aa
movsx edx, cl
sub edx, 0x47
jmp 0x4039d2
cmp cl, 0x30
jl 0x4039bc
cmp cl, 0x39
jg 0x4039bc
movsx edx, cl
add edx, 4
jmp 0x4039d2
cmp cl, 0x2b
jne 0x4039c8
mov edx, 0x3e
jmp 0x4039d2
cmp cl, 0x2f
jne 0x4039d2
mov edx, 0x3f
shr ebx, 0x18
or ecx, 0xffffffff
cmp bl, 0x41
jl 0x4039ea
cmp bl, 0x5a
jg 0x4039ea
movsx ecx, bl
sub ecx, 0x41
jmp 0x403a24
cmp bl, 0x61
jl 0x4039fc
cmp bl, 0x7a
jg 0x4039fc
movsx ecx, bl
sub ecx, 0x47
jmp 0x403a24
cmp bl, 0x30
jl 0x403a0e
cmp bl, 0x39
jg 0x403a0e
movsx ecx, bl
add ecx, 4
jmp 0x403a24
cmp bl, 0x2b
jne 0x403a1a
mov ecx, 0x3e
jmp 0x403a24
cmp bl, 0x2f
jne 0x403a24
mov ecx, 0x3f
shl edx, 6
shl ecx, 2
sar ecx, 2
or ecx, edx
xor edx, edx
mov dh, cl
mov ecx, dword [esp + 0x1c]
add ebp, 4
add eax, 3
or edx, edi
shl edx, 8
or edx, esi
mov dword [eax - 3], edx
dec ecx
mov dword [esp + 0x1c], ecx
jne 0x403810
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jge 0x403cda
sub ecx, eax
xor eax, eax
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x403a8a
mov eax, ecx
shr ecx, 2
mov esi, ebp
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x24]
or ebx, 0xffffffff
cmp al, 0x41
jl 0x403a9d
cmp al, 0x5a
jg 0x403a9d
movsx ebx, al
sub ebx, 0x41
jmp 0x403ad1
cmp al, 0x61
jl 0x403aad
cmp al, 0x7a
jg 0x403aad
movsx ebx, al
sub ebx, 0x47
jmp 0x403ad1
cmp al, 0x30
jl 0x403abd
cmp al, 0x39
jg 0x403abd
movsx ebx, al
add ebx, 4
jmp 0x403ad1
cmp al, 0x2b
jne 0x403ac8
mov ebx, 0x3e
jmp 0x403ad1
cmp al, 0x2f
jne 0x403ad1
mov ebx, 0x3f
mov ecx, eax
shr ecx, 8
or edx, 0xffffffff
cmp cl, 0x41
jl 0x403aeb
cmp cl, 0x5a
jg 0x403aeb
movsx edx, cl
sub edx, 0x41
jmp 0x403b25
cmp cl, 0x61
jl 0x403afd
cmp cl, 0x7a
jg 0x403afd
movsx edx, cl
sub edx, 0x47
jmp 0x403b25
cmp cl, 0x30
jl 0x403b0f
cmp cl, 0x39
jg 0x403b0f
movsx edx, cl
add edx, 4
jmp 0x403b25
cmp cl, 0x2b
jne 0x403b1b
mov edx, 0x3e
jmp 0x403b25
cmp cl, 0x2f
jne 0x403b25
mov edx, 0x3f
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
shl edx, 2
sar edx, 6
shl bl, 2
or dl, bl
mov byte [esi], dl
inc esi
inc edi
cmp cl, 0x3d
je 0x403c00
mov ebx, eax
shr ebx, 0x10
cmp bl, 0x3d
je 0x403c00
or edx, 0xffffffff
cmp cl, 0x41
jl 0x403b68
cmp cl, 0x5a
jg 0x403b68
movsx edx, cl
sub edx, 0x41
jmp 0x403ba2
cmp cl, 0x61
jl 0x403b7a
cmp cl, 0x7a
jg 0x403b7a
movsx edx, cl
sub edx, 0x47
jmp 0x403ba2
cmp cl, 0x30
jl 0x403b8c
cmp cl, 0x39
jg 0x403b8c
movsx edx, cl
add edx, 4
jmp 0x403ba2
cmp cl, 0x2b
jne 0x403b98
mov edx, 0x3e
jmp 0x403ba2
cmp cl, 0x2f
jne 0x403ba2
mov edx, 0x3f
or ecx, 0xffffffff
cmp bl, 0x41
jl 0x403bb7
cmp bl, 0x5a
jg 0x403bb7
movsx ecx, bl
sub ecx, 0x41
jmp 0x403bf1
cmp bl, 0x61
jl 0x403bc9
cmp bl, 0x7a
jg 0x403bc9
movsx ecx, bl
sub ecx, 0x47
jmp 0x403bf1
cmp bl, 0x30
jl 0x403bdb
cmp bl, 0x39
jg 0x403bdb
movsx ecx, bl
add ecx, 4
jmp 0x403bf1
cmp bl, 0x2b
jne 0x403be7
mov ecx, 0x3e
jmp 0x403bf1
cmp bl, 0x2f
jne 0x403bf1
mov ecx, 0x3f
shl ecx, 2
sar ecx, 4
shl dl, 4
or cl, dl
mov byte [esi], cl
inc esi
inc edi
mov ecx, eax
shr ecx, 0x10
cmp cl, 0x3d
je 0x403ccd
mov ebx, eax
shr ebx, 0x18
cmp ebx, 0x3d
je 0x403ccd
or edx, 0xffffffff
cmp cl, 0x41
jl 0x403c31
cmp cl, 0x5a
jg 0x403c31
movsx edx, cl
sub edx, 0x41
jmp 0x403c6b
cmp cl, 0x61
jl 0x403c43
cmp cl, 0x7a
jg 0x403c43
movsx edx, cl
sub edx, 0x47
jmp 0x403c6b
cmp cl, 0x30
jl 0x403c55
cmp cl, 0x39
jg 0x403c55
movsx edx, cl
add edx, 4
jmp 0x403c6b
cmp cl, 0x2b
jne 0x403c61
mov edx, 0x3e
jmp 0x403c6b
cmp cl, 0x2f
jne 0x403c6b
mov edx, 0x3f
or ecx, 0xffffffff
cmp bl, 0x41
jl 0x403c80
cmp bl, 0x5a
jg 0x403c80
movsx ecx, bl
sub ecx, 0x41
jmp 0x403cba
cmp bl, 0x61
jl 0x403c92
cmp bl, 0x7a
jg 0x403c92
movsx ecx, bl
sub ecx, 0x47
jmp 0x403cba
cmp bl, 0x30
jl 0x403ca4
cmp bl, 0x39
jg 0x403ca4
movsx ecx, bl
add ecx, 4
jmp 0x403cba
cmp bl, 0x2b
jne 0x403cb0
mov ecx, 0x3e
jmp 0x403cba
cmp bl, 0x2f
jne 0x403cba
mov ecx, 0x3f
lea eax, [ecx*4]
sar eax, 2
shl dl, 6
or al, dl
mov byte [esi], al
inc esi
inc edi
mov eax, edi
pop edi
mov byte [esi], 0
pop esi
pop ebp
pop ebx
add esp, 8
ret
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov byte [ecx], 0
pop ebx
add esp, 8
ret