Function at 0x4020e0
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
mov eax, ecx
mov dword [ebp - 4], ecx
mov edx, dword [eax + 0x10]
lea ecx, [eax + 0x10]
mov dword [ebp - 0x14], ecx
mov ecx, edx
push ebx
xor ecx, 0x14d
cmp dword [eax + 0x14], 0x10
push esi
push edi
mov dword [ebp - 8], ecx
jb 0x40210d
mov eax, dword [eax]
mov dword [ebp - 4], eax
shr edx, 2
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], 0
test edx, edx
je 0x40240b
or eax, 0x140
shl ecx, 0xef
rcl eax, 0xce
imul dx
movzx eax, al
sub ax, 0x2a3
imul cx
shl ebx, 0x20
ror eax, 0x94
rcl di, 0x31
dec cx
dec dx
shl ax, 0x3f
dec edx
shr esi, 0xa0
sub edx, 0x2be
movzx ebx, dh
rcl di, 0xb9
shr ebx, 0x6e
shl si, 0x80
xor ecx, 0xf6
mul edx
jb 0x402185
or edx, ecx
or dx, 0x301
xor ebx, edx
xor dx, 0x359
shr edi, 0x68
shl cx, 0x18
jmp 0x4021a5
mov bx, dx
rcl esi, 0xf6
dec ebx
mov dx, 0xe
imul cx
dec bx
xor ax, bx
rol dx, 0x3a
add si, 0x31a
or ax, 0x9d
inc dx
sub esi, esi
jne 0x4021d1
test ecx, 3
ja 0x40221e
mov ebx, ecx
ror ecx, 0x32
shr bx, 0x4f
dec ebx
mul edi
mul si
rcr edx, 0xe4
movsx esi, dh
ror di, 0x85
mul ax
jmp 0x4021ef
movzx edx, dh
mul edi
shl edi, 0xff
dec cx
shr esi, 0x82
mul eax
sub dx, 0x3d
add esi, 0x329
inc bx
rcl ebx, 0x82
mov eax, esi
xor edx, 0x85
or ecx, 0xfd
jb 0x40221e
cmp ebx, 0x4e
je 0x402240
shl si, 0x67
and ebx, 0x196
xor edi, esi
rcr ebx, 0x37
and eax, 0x118
shl cx, 0x9a
jmp 0x402224
rcl si, 0x9e
mov edx, eax
mov di, bx
rol dx, 0xb0
movsx edx, di
mul si
shl ax, 0xb9
inc dx
jb 0x402240
inc ebx
rol ax, 0x61
jmp 0x402255
imul bx
inc cx
shl esi, 0x8a
sub dx, 0x343
dec edi
rcl dx, 3
movsx eax, bl
mul ebx
rcr ecx, 0xea
jb 0x40226a
or ax, 0x3a3
inc edi
inc esi
mul esi
mul edx
imul ecx
jmp 0x402272
xor bx, cx
sub eax, 0x31c
and ecx, esi
or eax, 0x3a7
shl dx, 0x55
shr esi, 0xb9
add ax, 0x288
mul di
and ecx, 0x165
jae 0x4022ac
test edx, 0x27
ja 0x4022da
shr cx, 0xef
movsx eax, dh
movzx eax, bl
mul di
rcr ecx, 0x7e
shl ebx, 0x94
jmp 0x4022c5
rcr esi, 0x49
and edi, ecx
inc cx
imul edi
add edx, esi
shr esi, 0x38
shl ebx, 0xf1
and di, 0xbe
imul cx
rcl esi, 8
dec edx
jb 0x4022da
xor ax, bx
dec di
dec di
rol edx, 0x64
imul cx
jmp 0x4022db
inc edi
add eax, 0x274
or ecx, 0x108
mul di
mul ecx
rcl di, 0x7d
shr dx, 0x25
and eax, 0x334
dec ecx
shr cx, 0xf0
inc esi
ja 0x402305
add si, cx
jmp 0x40231c
imul di
and cx, si
inc si
imul si
rcl bx, 0x35
mul edx
and edx, 0x15b
inc cx
rol ecx, 0xa4
movsx edx, bh
rcr ecx, 0xe0
jb 0x40234c
rcr cx, 0xd3
dec esi
rol ax, 0xbe
mul cx
rol cx, 0x5e
or ebx, esi
sub dx, 0x75
shr esi, 0xa
sub esi, 0x1b0
add ecx, esi
jmp 0x40235d
mul ecx
rol esi, 0x92
shl cx, 5
dec bx
dec esi
ror ecx, 0xe5
add ebx, edi
rol edi, 0x63
inc si
inc si
add eax, edx
dec cx
and bx, 0x2e7
mov edx, str.Z81xbyuAua
mov ecx, 0x435180
call fcn.00404760
mov edi, eax
mov ecx, dword [edi]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + edi + 0x30]
mov esi, dword [ecx + 4]
mov ecx, esi
mov dword [ebp - 0x18], esi
mov edx, dword [esi]
call dword [edx + 4]
lea eax, [ebp - 0x1c]
push eax
call fcn.00404f20
add esp, 4
mov ecx, eax
mov edx, dword [eax]
push 0xa
call dword [edx + 0x30]
movzx ebx, ax
test esi, esi
je 0x4023c3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
test eax, eax
je 0x4023c3
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
push ebx
mov ecx, edi
call fcn.00405770
mov ecx, edi
call fcn.004043f0
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
imul ecx, dword [eax + edx*4], 0x5bd1e991
inc edx
mov dword [ebp - 0xc], edx
mov eax, ecx
shr eax, 0x18
xor eax, ecx
imul ecx, eax, 0x5bd1e991
imul eax, dword [ebp - 8], 0x5bd1e991
xor ecx, eax
mov dword [ebp - 8], ecx
cmp edx, dword [ebp - 0x10]
jl 0x402122
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
lea esi, [eax + edx*4]
mov eax, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [eax]
and eax, 3
sub eax, 1
je 0x402437
sub eax, 1
je 0x40242e
sub eax, 1
jne 0x402444
movsx edx, byte [esi + 2]
shl edx, 0x10
movsx eax, byte [esi + 1]
shl eax, 8
xor edx, eax
movsx eax, byte [esi]
xor eax, edx
imul eax, eax, 0x5bd1e991
xor ecx, eax
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0x5bd1e991
pop edi
pop esi
pop ebx
mov eax, ecx
shr eax, 0xf
xor eax, ecx
mov esp, ebp
pop ebp
ret