Function at 0x431680
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x120
mov eax, dword [0x641030]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
mov ebx, dword [esp + 0x128]
push ebp
mov ebp, dword [esp + 0x130]
push esi
mov esi, dword [ecx + 4]
mov dword [esp + 0x1c], ecx
lea ecx, [ebp*4 + 8]
mov eax, 0xaaaaaaab
mul ecx
mov ecx, edx
push edi
mov edi, dword [esp + 0x13c]
shr ecx, 1
mov dword [esp + 0x10], edi
test esi, esi
je 0x4316db
lea eax, [ecx + ecx]
xor edx, edx
div esi
lea ecx, [ecx + eax + 3]
jmp 0x4316de
add ecx, 3
push ecx
mov ecx, edi
call fcn.0042cc20
test al, al
jne 0x4316f1
xor al, al
jmp 0x4318f6
test ebp, ebp
je 0x4318f4
test ebx, ebx
je 0x4318f4
mov eax, 0xaaaaaaab
mul ebp
xor ecx, ecx
xor esi, esi
shr edx, 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
je 0x431813
movzx eax, byte [ebx + esi]
movzx edi, byte [ebx + esi + 1]
mov edx, eax
sar edx, 2
and edx, 0x3f
movzx edx, byte [edx + 0x590208]
mov byte [esp + ecx + 0x24], dl
inc esi
movzx ebp, byte [ebx + esi + 1]
mov edx, edi
sar edx, 4
and edx, 0xf
and eax, 3
shl eax, 4
or edx, eax
movzx eax, byte [edx + 0x590208]
inc esi
and edi, 0xf
mov edx, ebp
sar edx, 6
mov byte [esp + ecx + 0x25], al
inc ecx
and edx, 3
add edi, edi
add edi, edi
or edx, edi
movzx eax, byte [edx + 0x590208]
inc ecx
mov byte [esp + ecx + 0x24], al
mov eax, dword [esp + 0x18]
and ebp, 0x3f
movzx edx, byte [ebp + 0x590208]
inc ecx
mov byte [esp + ecx + 0x24], dl
mov edx, dword [esp + 0x20]
add eax, 4
inc esi
inc ecx
mov dword [esp + 0x18], eax
cmp eax, dword [edx + 4]
jb 0x4317b5
mov byte [esp + ecx + 0x24], 0xd
inc ecx
mov byte [esp + ecx + 0x24], 0xa
inc ecx
mov dword [esp + 0x18], 0
cmp ecx, 0x100
jl 0x4317d6
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x28]
push eax
call fcn.0042cf80
test al, al
je 0x4316ea
xor ecx, ecx
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x14]
jb 0x431720
test ecx, ecx
je 0x431804
push ecx
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x18]
call fcn.0042cf80
test al, al
je 0x4316ea
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x138]
lea edx, [edx + edx*2]
sub ebp, edx
sub ebp, 0
mov al, 1
je 0x4318dc
sub ebp, 1
je 0x43188a
sub ebp, 1
jne 0x4318f6
movzx ebp, byte [ebx + esi]
movzx esi, byte [ebx + esi + 1]
mov eax, ebp
sar eax, 2
and eax, 0x3f
movzx ecx, byte [eax + 0x590208]
push ecx
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
mov edx, esi
sar edx, 4
and ebp, 3
and edx, 0xf
shl ebp, 4
or edx, ebp
movzx eax, byte [edx + 0x590208]
push eax
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
and esi, 0xf
movzx ecx, byte [esi*4 + 0x590208]
push ecx
jmp 0x4318c4
movzx esi, byte [ebx + esi]
mov edx, esi
sar edx, 2
and edx, 0x3f
movzx eax, byte [edx + 0x590208]
push eax
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
and esi, 3
shl esi, 4
movzx ecx, byte [esi + 0x590208]
push ecx
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
push 0x3d
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
push 0x3d
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
push 0xd
mov ecx, edi
call fcn.0042f880
test al, al
je 0x4318f6
push 0xa
mov ecx, edi
call fcn.0042f880
jmp 0x4318f6
mov al, 1
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005550b0
add esp, 0x120
ret 0xc