Function at 0x415d48
Capabilities:
Encode data using base64

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
movsx eax, word [0x446b5a]
shl eax, 5
mov ecx, dword [0x4513f4]
dec ecx
mov dword [0x4513f4], ecx
or ecx, eax
mov eax, dword [0x4589dc]
lea edx, [eax + 1]
mov dword [0x4589dc], edx
mov edx, 0x9bc2cbf5
sub edx, eax
cmp ecx, edx
jle 0x415d87
mov ax, word [0x449b86]
mov eax, dword [0x450524]
add dword [0x44d3f0], 0xbbdd0db6
mov eax, dword [0x454c60]
movsx ecx, word [0x44b068]
imul ecx, eax
and ecx, 0xd123643e
cmp ecx, 0x9ce02e1a
jl 0x415dbd
or dword [0x454dd4], 0xde9d965e
and dword [0x4578a0], 0x87712d92
mov eax, dword [0x44d274]
shl eax, 5
mov ecx, dword [0x44ca68]
not ecx
add ecx, eax
and ecx, 0x12e35b25
sub dword [0x454b00], ecx
mov eax, dword [0x44f4c0]
sar eax, 5
imul eax, dword [0x451b44]
mov dword [0x451b44], eax
push 0x41
push 0x3faf
call fcn.0040a2b7
add esp, 8
mov esi, eax
add word [0x4473e6], 0xef7d
push 4
push 0x16ef
call fcn.0040a2b7
add esp, 8
mov ebx, eax
imul eax, dword [0x452e30], 0x814b2fbf
mov dword [0x452e30], eax
lea eax, [esp + 0xd]
push ebx
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
mov eax, dword [0x44f0ec]
dec eax
mov dword [0x44f0ec], eax
and dword [0x44d9a0], eax
push 4
push 0x1022
call fcn.0040a2b7
add esp, 8
mov edi, eax
mov eax, dword [0x450eb8]
cmp eax, 0x6aab6017
jne 0x415e79
mov dword [0x454060], 0xedddffe5
push ebx
push 4
call fcn.0040342e
add esp, 8
or dword [0x455650], 0x150192ac
lea eax, [esp + 9]
push edi
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
movzx eax, word [0x44aef0]
inc eax
mov word [0x44aef0], ax
imul eax, eax, 0xe6a105b9
add eax, dword [0x4505a8]
mov word [0x44951a], ax
push 4
push 0x396
call fcn.0040a2b7
add esp, 8
mov ebx, eax
and dword [0x44d760], 0xd75c25b3
push edi
push 4
call fcn.0040342e
add esp, 8
mov eax, 0x4eb11c22
add eax, dword [0x4579c4]
and dword [0x44d3bc], eax
lea eax, [esp + 5]
push ebx
push eax
call sub.msvcrt.dll_strcpy
add esp, 8
xor dword [0x459228], 0x9b599660
push ebx
push 4
call fcn.0040342e
add esp, 8
mov eax, dword [0x44c3f4]
lea ecx, [eax - 1]
mov dword [0x44c3f4], ecx
xor eax, 0xe9867deb
movzx ecx, word [0x44ac38]
inc ecx
mov word [0x44ac38], cx
movsx ecx, cx
imul ecx, ecx, 0xf8b25f48
and ecx, 0xadd10848
cmp eax, ecx
jle 0x415f5a
imul eax, dword [0x456c6c], 0x1cc71ba2
mov dword [0x456c6c], eax
mov edi, dword [esp + 0x38]
xor ebp, ebp
mov eax, dword [esp + 0x30]
test eax, eax
mov edx, eax
je 0x41628e
mov ebx, dword [esp + 0x2c]
xor ebp, ebp
or dword [0x44bb3c], 0xaacf1634
and dword [0x451bcc], 0x1864a85
mov al, byte [ebx]
mov byte [esp + ebp + 0x15], al
mov word [0x44865c], 0xac6a
mov eax, dword [0x44b760]
inc eax
mov dword [0x44b760], eax
cmp eax, 0x5196f5e8
jg 0x415fb3
and dword [0x457354], 0xedffef7d
inc ebp
imul eax, dword [0x456090], 0x9c444af8
cmp eax, 0x4817f28
jne 0x415fdf
mov eax, dword [0x4516f8]
add eax, 0x361e
movzx ecx, word [0x448f80]
and ecx, eax
mov word [0x448f80], cx
dec edx
cmp ebp, 3
jne 0x416271
mov dword [0x44c1c0], 0x2e74b3c
mov al, byte [esp + 0x15]
shr al, 2
mov byte [esp + 0x11], al
and word [0x444b7a], 0xad34
mov al, byte [esp + 0x15]
shl al, 4
and al, 0x30
mov byte [esp + 0x12], al
and dword [0x458158], 0xe6151b40
mov al, byte [esp + 0x16]
shr al, 4
add byte [esp + 0x12], al
mov eax, dword [0x44f7a8]
dec eax
mov dword [0x44f7a8], eax
imul eax, eax, 0xa254e087
and eax, 0x8914e5d0
cmp eax, 0xbfdfbfd0
jl 0x416069
mov eax, dword [0x44fc2c]
cmp eax, 0x56d35515
jl 0x41605a
mov ax, word [0x449fa2]
jmp 0x416069
imul eax, dword [0x451b84], 0x1a4dfd2c
mov dword [0x451b84], eax
mov al, byte [esp + 0x16]
shl al, 2
and al, 0x3c
mov byte [esp + 0x13], al
imul eax, dword [0x44cf14], 0xc9018ee7
mov dword [0x44cf14], eax
mov al, byte [esp + 0x17]
shr al, 6
add byte [esp + 0x13], al
mov eax, dword [0x44f9e8]
dec eax
mov dword [0x44f9e8], eax
imul eax, eax, 0x306f55e5
cmp eax, 0xc7ca3823
jl 0x4160b2
and dword [0x44f3b4], 0xeab531c8
mov dword [esp], edx
mov al, byte [esp + 0x17]
and al, 0x3f
mov byte [esp + 0x14], al
mov eax, dword [0x45768c]
mov ecx, 0xe438b482
sub ecx, eax
and ecx, 0x78078d79
movsx eax, word [0x449432]
shl eax, 4
cmp ecx, eax
jl 0x4160e5
dec dword [0x44e824]
mov eax, dword [0x44eb3c]
movsx ecx, word [0x447744]
movsx edx, word [0x449fae]
sar edx, 4
add edx, ecx
or edx, eax
add dword [0x45238c], edx
xor ebp, ebp
and word [0x447008], 0xbee0
cmp byte [esp + 0x34], 0
je 0x41616a
movzx eax, byte [esp + ebp + 0x11]
cmp eax, 0x3e
jb 0x41616a
mov eax, dword [0x44ff4c]
add dword [0x4549a0], eax
movzx eax, byte [esp + ebp + 0x11]
cmp eax, 0x3e
jne 0x4161af
xor dword [0x45835c], 0xa2545873
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.00434c7e
mov eax, dword [0x45684c]
lea ecx, [eax + 1]
mov dword [0x45684c], ecx
xor eax, 0x519f74e8
sub dword [0x451e38], eax
jmp 0x416212
add dword [0x458778], 0xefa7d3fd
movzx eax, byte [esp + ebp + 0x11]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
push 1
call fcn.00425c6c
mov eax, dword [0x458ce0]
cmp eax, 0x2881a422
jl 0x416222
inc word [0x448dbe]
imul eax, dword [0x44d9c0], 0xa00087e7
mov dword [0x44d9c0], eax
jmp 0x416222
mov ax, word [0x44acc0]
mov eax, dword [0x44bdc4]
dec eax
mov dword [0x44bdc4], eax
and eax, 0x39c3d3f5
mov ecx, dword [0x44ec30]
inc ecx
mov dword [0x44ec30], ecx
cmp eax, ecx
jge 0x4161f3
movzx eax, word [0x4481ec]
dec eax
mov word [0x4481ec], ax
cwde
imul eax, eax, 0xbeb42ff7
add dword [0x454058], eax
jmp 0x4161fc
and word [0x4491f8], 0xb37e
mov ecx, edi
lea eax, [esp + 9]
push eax
call fcn.00434c7e
xor dword [0x451718], 0xb09b7f77
mov ax, word [0x4471c4]
add dword [0x454d7c], 0x408c8040
or dword [0x450fd8], 0x964c14c0
inc ebp
movsx eax, word [0x44b056]
not eax
imul eax, dword [0x4568a4]
imul eax, eax, 0xdaa8c293
mov dword [0x4568a4], eax
cmp ebp, 4
jne 0x416107
and dword [0x452858], 0x6fb2b1cc
mov eax, dword [0x450e3c]
inc eax
mov dword [0x450e3c], eax
sub dword [0x457fb8], eax
xor ebp, ebp
mov edx, dword [esp]
inc ebx
mov eax, dword [0x4507f0]
lea ecx, [eax + 1]
mov dword [0x4507f0], ecx
xor dword [0x44c044], eax
test edx, edx
jne 0x415f74
mov eax, dword [0x4578fc]
dec eax
mov dword [0x4578fc], eax
imul eax, eax, 0xc75f439d
cmp eax, 0x3e1d9943
jg 0x4162b0
mov dword [0x4554f4], 0x41650306
test ebp, ebp
je 0x41667e
imul eax, dword [0x4590d8], 0x23c02732
mov dword [0x4590d8], eax
xor word [0x44435a], 0x6d51
cmp ebp, 2
jg 0x416302
mov eax, ebp
mov cx, word [0x445054]
mov ecx, dword [0x44f174]
mov byte [esp + eax + 0x15], 0
mov dword [0x45394c], 0x2dacd871
inc eax
add word [0x44afea], 0x13ce
cmp eax, 3
jne 0x4162d7
mov dword [0x455348], 0xc193f54a
mov al, byte [esp + 0x15]
shr al, 2
mov byte [esp + 0x11], al
imul eax, dword [0x458f2c], 0x971fedef
mov dword [0x458f2c], eax
mov al, byte [esp + 0x15]
shl al, 4
and al, 0x30
mov byte [esp + 0x12], al
mov eax, dword [0x4517a8]
movzx ecx, word [0x44a0b4]
sub ecx, eax
mov word [0x44a0b4], cx
mov al, byte [esp + 0x16]
shr al, 4
add byte [esp + 0x12], al
xor dword [0x453d98], 0xff6cbff6
mov al, byte [esp + 0x16]
shl al, 2
and al, 0x3c
mov byte [esp + 0x13], al
mov eax, dword [0x452b78]
inc eax
mov dword [0x452b78], eax
add dword [0x4535c0], eax
mov al, byte [esp + 0x17]
shr al, 6
add byte [esp + 0x13], al
mov word [0x44a5c2], 0x9e0a
mov al, byte [esp + 0x17]
and al, 0x3f
mov byte [esp + 0x14], al
movsx eax, word [0x444782]
sar eax, 0xa
imul eax, eax, 0xafc4af05
cmp eax, 0xbe1d1c98
jl 0x4163c0
movsx eax, word [0x445d2a]
sar eax, 2
sub dword [0x456464], eax
and dword [0x453b38], 0xdaf65d45
xor ebx, ebx
jmp 0x4163d9
inc ebx
add dword [0x4511ac], 0x82b2ced
imul eax, dword [0x4502cc], 0xe92ef1f4
or eax, 0x36f9c075
mov ecx, dword [0x456a60]
mov edx, 0x1741186f
and ecx, edx
cmp eax, ecx
jg 0x41640d
mov eax, dword [0x44c694]
lea ecx, [eax - 1]
mov dword [0x44c694], ecx
xor dword [0x44c680], eax
cmp ebx, ebp
jg 0x4165aa
mov eax, dword [0x453ca0]
lea ecx, [eax - 1]
mov dword [0x453ca0], ecx
add eax, 0xfae911ee
cmp eax, 0x5821d62b
jg 0x416457
movzx eax, word [0x4455d0]
mov ecx, eax
dec ecx
mov word [0x4455d0], cx
mov cx, word [0x447668]
xor cx, ax
movsx eax, cx
xor eax, 0x74604ca7
mov dword [0x44db44], eax
cmp byte [esp + 0x34], 0
je 0x4164dd
movzx eax, byte [esp + ebx + 0x11]
cmp eax, 0x3e
jb 0x4164dd
add word [0x4467dc], 0x7d38
movzx eax, byte [esp + ebx + 0x11]
cmp eax, 0x3e
jne 0x41653a
movsx eax, word [0x44a8e0]
lea ecx, [eax + 1]
mov word [0x44a8e0], cx
imul eax, dword [0x4515d4]
imul eax, eax, 0x517bd5fc
and dword [0x452154], eax
mov ecx, edi
lea eax, [esp + 0xd]
push eax
call fcn.00434c7e
mov eax, dword [0x452e84]
imul eax, eax, 0xfc899b9c
mov ecx, dword [0x451a88]
inc ecx
mov dword [0x451a88], ecx
and ecx, eax
movzx eax, word [0x4442fc]
sub eax, ecx
mov word [0x4442fc], ax
jmp 0x416581
mov dword [0x456d50], 0x370a51a0
movzx eax, byte [esp + ebx + 0x11]
movsx eax, byte [esi + eax]
mov ecx, edi
push eax
push 1
call fcn.00425c6c
add dword [0x455540], 0x44ce3c36
imul eax, dword [0x454108], 0xff81caa3
cmp eax, 0xed80352c
jne 0x4163ce
mov eax, dword [0x459380]
inc eax
mov dword [0x459380], eax
or eax, 0x472d65ca
imul eax, dword [0x450484]
mov dword [0x450484], eax
jmp 0x4163ce
add dword [0x4518a8], 0x7f7c68ba
mov ecx, edi
lea eax, [esp + 9]
push eax
call fcn.00434c7e
mov eax, dword [0x44c090]
lea ecx, [eax + 1]
mov dword [0x44c090], ecx
imul eax, dword [0x450c58]
shl eax, 5
mov ecx, dword [0x44be84]
lea edx, [ecx - 1]
mov dword [0x44be84], edx
lea eax, [eax + ecx - 1]
mov word [0x4482b4], ax
movsx eax, word [0x444742]
mov ecx, 0xe3c20cbd
sub ecx, eax
cmp ecx, 0xc1ffbcbf
jg 0x416504
and dword [0x44d988], 0x98c75736
jmp 0x416504
add word [0x44a778], 0x3ee1
cmp ebp, 2
jg 0x41666f
mov ebx, 3
sub ebx, ebp
movsx eax, word [0x445222]
lea ecx, [eax - 1]
mov word [0x445222], cx
xor eax, 0x62a7cf9a
mov dword [0x45346c], eax
mov eax, dword [0x44ccf0]
lea ecx, [eax + 1]
mov dword [0x44ccf0], ecx
or eax, 0xa5b8ec27
and dword [0x44db00], eax
cmp byte [esp + 0x34], 0
je 0x41662f
mov word [0x4447b6], 0x2bdf
mov ecx, edi
lea eax, [esp + 5]
push eax
call fcn.00434c7e
movzx eax, word [0x44800a]
and eax, 0x58e0
imul ax, word [0x446924]
mov word [0x446924], ax
jmp 0x41665e
mov eax, dword [0x4534c4]
and dword [0x44cd14], eax
mov ecx, edi
push 0x3d
push 1
call fcn.00425c6c
mov eax, dword [0x453268]
add eax, 0xa41fb1d6
movsx ecx, word [0x449df6]
xor ecx, eax
sub dword [0x44cc74], ecx
add dword [0x456d60], 0xd4bdfb06
dec ebx
jne 0x4165c3
imul ax, word [0x4462ca], 0x1d7c
mov word [0x4462ca], ax
or dword [0x455f68], 0xc23bc4b9
push esi
push 0x41
call fcn.0040342e
add esp, 8
add dword [0x44c6c8], 0x8e11044
push 4
lea eax, [esp + 0x11]
push eax
call fcn.00402c24
add esp, 8
add word [0x44a53a], 0xb391
push 4
lea eax, [esp + 0xd]
push eax
call fcn.00402c24
add esp, 8
xor dword [0x4519c4], 0x8b54a47c
push 4
lea eax, [esp + 9]
push eax
call fcn.00402c24
add esp, 8
movsx eax, word [0x4497e8]
not eax
and eax, 0x94468fb7
sub dword [0x453148], eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret