Function at 0x40fe50
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
xor dword [0x443b70], 0x40d2022
add dword [0x4472bc], 0x8faab1eb
add dword [0x446b38], 0x8f8a26b7
and word [0x441b24], 0xfbcf
xor dword [0x4475f0], 0x1b69366f
add dword [0x444cf4], 0x812528a3
push 0x41
push 0x18f6
call fcn.004036ba
add esp, 8
mov esi, eax
imul eax, dword [0x446ce0], 0xcbedd0bb
mov dword [0x446ce0], eax
push 4
push 0x10be
call fcn.004036ba
add esp, 8
mov ebx, eax
mov dword [0x4470d8], 0xabb58507
lea eax, [esp + 0x11]
push ebx
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [0x443b80]
cmp eax, 0xd237d59f
jg 0x40fef1
or dword [0x444350], 0xd3cbb792
push 4
push 0x85e
call fcn.004036ba
add esp, 8
mov edi, eax
add dword [0x443fb0], 0x97dcb32
push ebx
push 4
call fcn.004042a2
add esp, 8
dec word [0x4418c8]
mov eax, dword [0x4444d0]
mov ecx, dword [0x4434e8]
sar ecx, 3
xor ecx, eax
cmp ecx, 0x7040491d
jg 0x40ff40
or dword [0x4469bc], 0x3dfdfb66
lea eax, [esp + 0xd]
push edi
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [0x445248]
cmp eax, 0x151f33cc
jl 0x40ff66
add dword [0x444098], 0x5448807a
jmp 0x40ff8b
mov eax, dword [0x4454e4]
shl eax, 7
mov ecx, dword [0x4452fc]
add ecx, eax
or ecx, 0x7216
movzx eax, word [0x4431de]
xor eax, ecx
mov word [0x4431de], ax
mov ebp, dword [esp + 0x34]
push 4
push 0x3ba
call fcn.004036ba
add esp, 8
mov ebx, eax
imul eax, dword [0x446054], 0xb4f242a
mov dword [0x446054], eax
push edi
push 4
call fcn.004042a2
add esp, 8
mov eax, dword [0x4471cc]
not eax
imul eax, eax, 0xb2a38148
add eax, 0x64ea9be5
imul eax, dword [0x447378]
mov dword [0x447378], eax
lea eax, [esp + 9]
push ebx
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [0x444e2c]
shl eax, 4
xor eax, 0xb38cfc9d
cmp eax, 0xb3657f4d
jl 0x410007
mov eax, dword [0x446808]
and dword [0x445808], eax
jmp 0x410011
mov eax, dword [0x447674]
mov dword [0x4441a4], eax
push ebx
push 4
call fcn.004042a2
add esp, 8
add word [0x4431c8], 0xecf8
mov edi, ebp
test edi, edi
je 0x41056e
mov ebp, dword [esp + 0x30]
xor ebx, ebx
mov eax, dword [0x446e80]
lea ecx, [eax - 1]
mov dword [0x446e80], ecx
cmp eax, 0xaefbcfec
jg 0x410074
mov eax, dword [0x4469a4]
mov ecx, dword [0x4475dc]
lea edx, [ecx + 1]
mov dword [0x4475dc], edx
add ecx, 0xe933c342
cmp eax, ecx
je 0x41008e
xor dword [0x446800], 0x43e00203
jmp 0x41008e
mov ax, word [0x443268]
imul ax, word [0x442132]
imul eax, eax, 0x5b74
mov word [0x442132], ax
dec edi
mov word [0x442f82], 0x4da7
mov al, byte [ebp]
mov byte [esp + ebx + 0x19], al
and word [0x4430b8], 0xbf9c
inc ebx
add dword [0x4438d4], 0x59d24571
mov eax, dword [0x44663c]
inc eax
mov dword [0x44663c], eax
movzx ecx, word [0x441fe8]
or ecx, eax
mov word [0x441fe8], cx
cmp ebx, 3
jne 0x410390
mov dword [esp + 4], edi
mov eax, dword [0x446f04]
and eax, dword [0x446468]
mov dword [0x4452d8], eax
mov al, byte [esp + 0x19]
shr al, 2
mov byte [esp + 0x15], al
xor word [0x442d50], 0x1cf4
mov al, byte [esp + 0x19]
shl al, 4
and al, 0x30
mov byte [esp + 0x16], al
and dword [0x4457b8], 0x82149c
mov al, byte [esp + 0x1a]
shr al, 4
add byte [esp + 0x16], al
and word [0x44175e], 0x72ff
mov al, byte [esp + 0x1a]
shl al, 2
and al, 0x3c
mov byte [esp + 0x17], al
mov eax, dword [0x443d60]
movzx ecx, word [0x441c0e]
add ecx, eax
mov word [0x441c0e], cx
mov al, byte [esp + 0x1b]
shr al, 6
add byte [esp + 0x17], al
xor dword [0x445d5c], 0x7c8bab43
mov al, byte [esp + 0x1b]
and al, 0x3f
mov byte [esp + 0x18], al
mov eax, dword [0x446ff4]
mov ecx, dword [0x4437e4]
inc ecx
mov dword [0x4437e4], ecx
movsx edx, word [0x442b12]
sub ecx, edx
or ecx, eax
mov dword [0x44572c], ecx
mov eax, dword [0x44680c]
movzx ecx, word [0x4415d8]
or ecx, eax
or ecx, 0x27ae
mov word [0x4415d8], cx
xor ebx, ebx
mov edi, dword [esp + 0x3c]
jmp 0x41027c
mov eax, dword [0x445bc0]
cmp eax, 0xfe0e9aec
jne 0x4101ca
or dword [0x443b74], 0x50bb2fe5
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.00432346
mov eax, dword [0x446d60]
lea ecx, [eax + 1]
mov dword [0x446d60], ecx
or eax, 0xb8cfbd9f
sub dword [0x446458], eax
mov eax, dword [0x44447c]
lea ecx, [eax + 1]
mov dword [0x44447c], ecx
movsx ecx, word [0x44307a]
sub eax, ecx
and eax, dword [0x447388]
mov ecx, dword [0x446414]
mov edx, 0xe359a94b
add ecx, edx
xor ecx, 0x65a82626
cmp eax, ecx
jge 0x41026d
movsx eax, word [0x442092]
lea ecx, [eax - 1]
mov word [0x442092], cx
imul eax, eax, 0x9370e90d
or eax, 0xe85ea6f6
mov ecx, dword [0x447430]
lea edx, [ecx + 1]
mov dword [0x447430], edx
cmp eax, ecx
jl 0x410355
mov eax, dword [0x4442ec]
mov ecx, 0xb75c7b90
or eax, ecx
add dword [0x445f2c], eax
jmp 0x410355
add dword [0x446620], 0x7eedfbf7
jmp 0x410355
add dword [0x444fd0], 0xd91920a6
cmp byte [esp + 0x38], 0
je 0x4102e9
movzx eax, byte [esp + ebx + 0x15]
cmp eax, 0x3e
jb 0x4102e9
mov word [0x442700], 0x8c86
movzx eax, byte [esp + ebx + 0x15]
cmp eax, 0x3e
jne 0x4101b4
add dword [0x446c30], 0x20001851
mov ecx, edi
lea eax, [esp + 0x11]
push eax
call fcn.00432346
movsx eax, word [0x442570]
shr eax, 7
add eax, 0x91ac23e4
movzx ecx, word [0x442b78]
imul ecx, eax
mov word [0x442b78], cx
jmp 0x4101ef
mov eax, dword [0x44589c]
lea ecx, [eax + 1]
mov dword [0x44589c], ecx
cmp eax, 0x50141a17
jl 0x410338
movzx eax, word [0x441450]
inc eax
mov word [0x441450], ax
cwde
movsx ecx, word [0x441698]
not ecx
imul ecx, eax
mov eax, dword [0x4447e4]
mov edx, 0xc5974221
or eax, edx
cmp ecx, eax
je 0x410338
imul eax, dword [0x443f38], 0x3f33ed38
mov dword [0x443f38], eax
movzx eax, byte [esp + ebx + 0x15]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
push 1
call fcn.00432894
and dword [0x447614], 0x7a17b7f3
add word [0x442002], 0x2d96
inc ebx
add dword [0x446944], 0xbe1a9ead
cmp ebx, 4
jne 0x41027c
xor dword [0x443860], 0x6564506a
mov eax, dword [0x44367c]
add word [0x441744], 0xebe1
xor ebx, ebx
mov edi, dword [esp + 4]
inc ebp
movsx eax, word [0x4429f2]
and eax, 0x44bd7f84
movsx ecx, word [0x442e4a]
xor ecx, eax
sub dword [0x444b80], ecx
test edi, edi
jne 0x410035
xor dword [0x4446d0], 0x39bc8c75
test ebx, ebx
je 0x4107dd
add word [0x44128c], 0xd78
xor word [0x442ab0], 0xeab5
cmp ebx, 2
jg 0x410459
mov eax, ebx
mov ecx, dword [0x444fc8]
lea edx, [ecx + 1]
mov dword [0x444fc8], edx
mov edx, dword [0x445cb8]
shl edx, 2
sub ecx, edx
cmp ecx, 0xc9153c70
jg 0x410426
movsx ecx, word [0x441ed4]
imul ecx, dword [0x446f34]
shl ecx, 3
mov edx, 0xad850209
sub edx, ecx
imul edx, dword [0x4451f0]
mov dword [0x4451f0], edx
mov byte [esp + eax + 0x19], 0
movzx ecx, word [0x441dd2]
dec ecx
mov word [0x441dd2], cx
movsx ecx, cx
or ecx, 0x2fa5592f
sub dword [0x4456d4], ecx
inc eax
add dword [0x4448cc], 0x40200000
cmp eax, 3
jne 0x4103df
mov eax, dword [0x4476e8]
sub eax, dword [0x4457e8]
mov ecx, 0x212e4e94
or ecx, dword [0x444644]
cmp eax, ecx
mov edi, dword [esp + 0x3c]
jne 0x410481
mov dword [0x445cdc], 0x7aef9c70
mov al, byte [esp + 0x19]
shr al, 2
mov byte [esp + 0x15], al
mov eax, dword [0x4444a8]
mov word [0x44231a], ax
mov al, byte [esp + 0x19]
shl al, 4
and al, 0x30
mov byte [esp + 0x16], al
imul ecx, dword [0x444a40], 0xd2276d39
cmp ecx, 0x279d5053
jl 0x4104c4
and dword [0x444bdc], 0x84c93e95
mov al, byte [esp + 0x16]
mov cl, byte [esp + 0x1a]
shr cl, 4
add cl, al
mov byte [esp + 0x16], cl
mov eax, dword [0x446c28]
shl eax, 0xa
xor eax, 0xb8debc63
mov dword [0x444ec8], eax
mov al, byte [esp + 0x1a]
shl al, 2
and al, 0x3c
mov byte [esp + 0x17], al
mov eax, dword [0x443f70]
inc dword [0x444658]
mov eax, dword [0x44670c]
shl eax, 9
mov ecx, dword [0x446128]
sub eax, ecx
mov ecx, dword [0x445bb8]
lea edx, [ecx - 1]
mov dword [0x445bb8], edx
and eax, ecx
or dword [0x443628], eax
mov al, byte [esp + 0x1b]
shr al, 6
add byte [esp + 0x17], al
add word [0x4421f2], 0x52d8
mov al, byte [esp + 0x1b]
and al, 0x3f
mov byte [esp + 0x18], al
dec word [0x4414a0]
mov eax, dword [0x445a5c]
lea ecx, [eax + 1]
mov dword [0x445a5c], ecx
and eax, dword [0x4444ac]
cmp eax, 0xeaa49568
jl 0x41057d
and dword [0x44691c], 0x9c3a9a92
jmp 0x41058e
xor dword [0x4446d0], 0x39bc8c75
jmp 0x4107dd
mov eax, dword [0x444f0c]
inc eax
mov dword [0x444f0c], eax
mov word [0x443356], ax
and word [0x443236], 0x2184
mov eax, dword [0x446280]
sar eax, 2
and eax, 0xdfb3c698
mov dword [0x4434f0], eax
test ebx, ebx
mov dword [esp + 4], ebx
js 0x410732
mov eax, dword [esp + 4]
lea ebx, [eax + 1]
lea ebp, [esp + 0x15]
and word [0x44134e], 0x3c9c
cmp byte [esp + 0x38], 0
je 0x41064b
movzx eax, byte [ebp]
cmp eax, 0x3e
jb 0x41064b
mov ecx, dword [0x446000]
cmp ecx, 0x651346ee
je 0x4105f4
add dword [0x444b54], 0x490142
mov al, byte [ebp]
movzx eax, al
cmp eax, 0x3e
jne 0x41069d
mov dword [0x444d58], 0x13f0e500
mov ecx, edi
lea eax, [esp + 0x11]
push eax
call fcn.00432346
mov eax, dword [0x447020]
mov ecx, dword [0x445e34]
sar ecx, 5
mov edx, 0xdb88f84e
sub edx, ecx
or edx, eax
cmp edx, 0x487a051a
jg 0x4106cb
movsx eax, word [0x442008]
add dword [0x4454cc], eax
jmp 0x4106f5
add dword [0x4462a8], 0x1a268b8
movzx eax, byte [ebp]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
push 1
call fcn.00432894
mov eax, dword [0x447240]
inc dword [0x4467fc]
mov eax, dword [0x4477a4]
inc eax
mov dword [0x4477a4], eax
movzx ecx, word [0x442124]
sub eax, ecx
xor eax, 0x73c2
movzx ecx, word [0x4429f2]
add ecx, eax
mov word [0x4429f2], cx
jmp 0x4106ff
mov eax, dword [0x4477d8]
movsx ecx, word [0x442452]
cmp eax, ecx
jl 0x4106b3
mov ax, word [0x4414dc]
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.00432346
mov dword [0x4466d8], 0xac02e2ea
jmp 0x4106f5
mov eax, dword [0x4470a0]
shl eax, 5
mov ecx, dword [0x444a7c]
sar ecx, 5
or ecx, eax
cmp ecx, 0x33213b77
jl 0x4106f5
imul ax, word [0x442972], 0x7736
mov word [0x442972], ax
xor dword [0x4436d8], 0x82849042
imul ax, word [0x441334], 0x74a2
mov word [0x441334], ax
xor dword [0x444608], 0xd12b2f9e
mov eax, dword [0x446280]
sar eax, 2
and eax, 0xdfb3c698
mov dword [0x4434f0], eax
inc ebp
dec ebx
jne 0x4105c0
imul ax, word [0x442568], 0x8381
mov word [0x442568], ax
mov eax, dword [esp + 4]
cmp eax, 2
lea ebp, [esp + 9]
jg 0x4107d4
mov ebx, 3
sub ebx, eax
imul eax, dword [0x4471e8], 0x512d43ba
mov dword [0x4471e8], eax
add word [0x442c00], 0x67ad
cmp byte [esp + 0x38], 0
je 0x41079e
add dword [0x446860], 0x1a814c89
mov ecx, edi
push ebp
call fcn.00432346
mov eax, dword [0x444844]
sar eax, 3
add eax, 0xedd5dee2
mov dword [0x443da0], eax
jmp 0x4107ba
add dword [0x447798], 0xd69836b5
mov ecx, edi
push 0x3d
push 1
call fcn.00432894
dec word [0x44211a]
movsx eax, word [0x442276]
or eax, 0x1cce7a9d
xor eax, 0x21308060
add dword [0x4461b4], eax
dec ebx
jne 0x410759
or word [0x441640], 0x5673
add dword [0x447138], 0x5d53f810
push esi
push 0x41
call fcn.004042a2
add esp, 8
movsx eax, word [0x44223a]
mov ecx, dword [0x445a18]
shl ecx, 6
add ecx, 0xa196efa2
xor ecx, eax
mov dword [0x44716c], ecx
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 0x11], 0
inc eax
cmp eax, 4
jne 0x41082d
or dword [0x446e6c], 0x6a5fd70d
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 0xd], 0
inc eax
cmp eax, 4
jne 0x41085f
mov ax, word [0x442702]
xor dword [0x444660], 0x6a110214
mov eax, dword [0x443844]
inc eax
mov dword [0x443844], eax
xor dword [0x446aa0], eax
xor eax, eax
mov byte [esp + eax + 9], 0
inc eax
cmp eax, 4
jne 0x41088d
and dword [0x4441c8], 0xf6fbfff7
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret