Function at 0x40f780
Capabilities:
Encode data using base64

Disassembly:
sub esp, 0x18
push ebx
push edi
mov edi, ecx
mov ebx, edx
mov ecx, dword [0x42b884]
xor ecx, 0xe4b819dd
mov dword [0x42b894], ecx
test bl, 3
je 0x40f7db
mov cl, byte [0x42b88e]
movzx eax, cl
add cl, 0x57
imul eax, eax, 0xa1653865
xor cl, 0x7b
mov byte [0x42b88c], cl
and cl, 0x39
mov byte [0x42b88e], cl
mov dword [0x42b894], eax
add eax, 0x7024
mov word [0x42b890], ax
xor eax, eax
jmp 0x40fa8d
imul eax, ecx, 0x6ee8d5c6
push esi
mov dword [0x42b884], eax
mov eax, ebx
shr eax, 2
imul esi, eax, 3
cmp byte [edi + ebx - 1], 0x3d
jne 0x40f7fc
and cl, 0x62
dec esi
jmp 0x40f802
mov cl, byte [0x42b88e]
sub cl, 0x2c
mov edx, 0xa4
movzx eax, cl
add ax, dx
cmp byte [edi + ebx - 2], 0x3d
mov word [0x42b890], ax
jne 0x40f843
movzx ecx, ax
add ecx, 0xec25f887
mov eax, ecx
mov dword [0x42b884], ecx
or eax, 0x1a8c
dec esi
mov word [0x42b890], ax
movzx eax, cl
imul ecx, eax, 0xa3
movzx eax, cl
imul eax, eax, 0xcc
push ebp
mov byte [0x42b88c], al
movzx eax, al
imul eax, eax, 6
mov byte [0x42b88e], al
lea eax, [esi + 1]
push eax
call fcn.0040570b
pop ecx
mov ecx, dword [0x42b884]
mov ebp, eax
mov edx, ecx
xor edx, 0x31d1fa32
test ebp, ebp
jne 0x40f8a1
imul eax, edx, 0x3a4f
mov word [0x42b890], ax
mov eax, ecx
xor eax, 0x994d3c21
and cl, 0xf4
mov dword [0x42b894], eax
mov byte [0x42b88c], cl
jmp 0x40fac0
and dword [esp + 0x24], 0
imul eax, edx, 0x33450870
lea ecx, [eax - 0x57]
add eax, 0xffffcfb2
movzx eax, ax
test ebx, ebx
je 0x40fa32
lea eax, [edi + 3]
mov dword [esp + 0x14], eax
lea edi, [ebp + 2]
mov al, cl
movzx eax, al
imul eax, eax, 0xf2
movzx edx, cl
mov ecx, 0xff1c
xor dx, cx
xor ecx, ecx
and dword [esp + 0x18], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
shl ecx, 6
mov dword [esp + 0x1c], 0xf9bc
and dx, word [esp + 0x1c]
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x20]
add cl, 9
mov word [0x42b890], dx
mov byte [esp + 0x12], cl
mov byte [0x42b88e], cl
mov ecx, dword [esp + 0x18]
mov cl, byte [eax + ecx - 3]
mov byte [esp + 0x13], cl
cmp cl, 0x3d
mov ecx, dword [esp + 0x1c]
je 0x40f99e
mov ecx, dword [esp + 0x20]
movzx eax, byte [esp + 0x12]
add cl, 0x58
xor eax, 0x475cfd21
mov byte [0x42b88c], cl
mov dword [0x42b884], eax
movzx eax, cl
sub eax, 0x52cbc0de
mov dword [0x42b894], eax
movzx eax, byte [esp + 0x13]
push eax
push 0x428ee0
call fcn.00401c40
mov edx, dword [0x42b884]
pop ecx
pop ecx
lea ecx, [edx - 0x3b]
mov dword [esp + 0x20], ecx
mov byte [0x42b88c], cl
test eax, eax
je 0x40fa93
mov ecx, dword [esp + 0x1c]
sub eax, 0x428ee0
mov dx, word [0x42b890]
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ecx
inc dword [esp + 0x18]
cmp dword [esp + 0x18], 4
jl 0x40f8ed
mov eax, ecx
shr eax, 0x10
mov byte [edi - 2], al
movzx eax, dx
imul eax, eax, 0x3e0101f4
mov dword [esp + 0x20], eax
mov dword [0x42b884], eax
mov eax, dword [esp + 0x14]
cmp byte [eax - 1], 0x3d
je 0x40f9d9
mov eax, ecx
shr eax, 8
mov byte [edi - 1], al
mov eax, dword [esp + 0x14]
mov cl, dl
or cl, 0x56
movzx edx, dx
cmp byte [eax], 0x3d
je 0x40fa14
mov edx, dword [esp + 0x20]
and edx, 0x5590
movzx eax, dx
add eax, 0x4e1f107
mov dword [0x42b884], eax
mov eax, dword [esp + 0x1c]
mov byte [edi], al
movzx eax, dl
imul ecx, eax, 0x3f
mov eax, dword [esp + 0x14]
movzx edx, dx
add dword [esp + 0x24], 4
add eax, 4
add edi, 3
mov dword [esp + 0x14], eax
mov al, cl
cmp dword [esp + 0x24], ebx
jb 0x40f8cb
movzx eax, dx
mov ecx, dword [esp + 0x2c]
lea edx, [eax - 0x29]
mov byte [0x42b88e], dl
movzx eax, ax
movzx edi, dl
test ecx, ecx
je 0x40fa65
mov eax, edi
mov dword [ecx], esi
and eax, 0x9d6d9409
movzx ecx, dl
mov dword [0x42b884], eax
mov eax, 0x502
imul ecx, eax
movzx eax, cx
imul eax, eax, 0x99a
and dl, 0x99
mov byte [esi + ebp], 0
mov byte [0x42b88c], dl
mov word [0x42b890], ax
lea eax, [edi + 0x7ced4906]
mov dword [0x42b894], eax
mov eax, ebp
pop ebp
pop esi
pop edi
pop ebx
add esp, 0x18
ret
imul eax, edx, 0x1c8b8892
push ebp
mov dword [0x42b884], eax
movzx eax, word [0x42b890]
and eax, 0x9d58f11a
mov dword [0x42b894], eax
call fcn.004056f0
or dword [0x42b884], 0x36c17729
pop ecx
xor eax, eax
jmp 0x40fa8b