Function at 0x415360
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5329d8
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x5bc684]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov esi, dword [ebp + 8]
mov dword [ebp - 0x5c], esi
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x60], ecx
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x6c], 1
mov dword [ebp - 4], 0
lea edx, [ebp - 0x54]
cmp byte [ebp + 0x18], 0
je 0x4155b7
push eax
push str._binary_name__S_
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x54]
push eax
mov ecx, esi
call fcn.004bfd50
mov dl, byte [ebp + 0x1c]
test dl, dl
jne 0x41540c
mov ecx, dword [ebp - 0x60]
mov edi, ebx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x58], edi
test edi, edi
je 0x415404
mov al, byte [ecx]
cmp al, 0x20
jge 0x415400
cmp al, 0xa
je 0x415400
cmp al, 0xd
je 0x415400
cmp al, 9
jne 0x41540c
inc ecx
dec edi
jmp 0x4153e4
test dl, dl
je 0x4154ed
push str._encoding_base64__
mov ecx, esi
call fcn.004bfd50
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x68], esi
mov edi, ebx
mov dword [ebp - 0x58], edi
mov byte [ebp - 0x50], 0
mov bl, 0x3d
lea esp, [esp]
test edi, edi
je 0x4155a8
movzx ecx, byte [esi]
shr ecx, 2
mov dl, byte [ecx + 0x54fd78]
mov byte [ebp - 0x54], dl
cmp edi, 1
jbe 0x4154bc
movzx eax, byte [esi]
and eax, 3
shl eax, 4
movzx ecx, byte [esi + 1]
shr ecx, 4
or eax, ecx
mov dl, byte [eax + 0x54fd78]
mov byte [ebp - 0x53], dl
inc esi
mov dword [ebp - 0x68], esi
dec edi
mov dword [ebp - 0x58], edi
cmp edi, 1
jbe 0x4154aa
movzx eax, byte [esi]
and eax, 0xf
add eax, eax
add eax, eax
movzx ecx, byte [esi + 1]
shr ecx, 6
or eax, ecx
mov dl, byte [eax + 0x54fd78]
mov byte [ebp - 0x52], dl
movzx eax, byte [esi + 1]
and eax, 0x3f
mov cl, byte [eax + 0x54fd78]
mov byte [ebp - 0x51], cl
inc esi
mov dword [ebp - 0x68], esi
dec edi
mov dword [ebp - 0x58], edi
jmp 0x4154d4
movzx edx, byte [esi]
and edx, 0xf
mov al, byte [edx*4 + 0x54fd78]
mov byte [ebp - 0x52], al
jmp 0x4154d1
movzx ecx, byte [esi]
and ecx, 3
shl ecx, 4
mov dl, byte [ecx + 0x54fd78]
mov byte [ebp - 0x53], dl
mov byte [ebp - 0x52], bl
mov byte [ebp - 0x51], bl
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x5c]
call fcn.004bfd50
inc esi
mov dword [ebp - 0x68], esi
dec edi
mov dword [ebp - 0x58], edi
jmp 0x415430
push 0x5501f0
mov ecx, esi
call fcn.004bfd50
mov edi, dword [ebp - 0x60]
mov eax, edi
mov dword [ebp - 0x64], eax
xor edx, edx
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x58], ebx
test ebx, ebx
je 0x415534
mov cl, byte [eax]
cmp cl, 0x3c
je 0x415519
cmp cl, 0x26
jne 0x41551d
inc edx
mov dword [ebp - 0x70], edx
cmp cl, 0x5d
jne 0x41552d
cmp byte [eax + 1], cl
jne 0x41552d
cmp byte [eax + 2], 0x3e
je 0x415534
inc eax
mov dword [ebp - 0x64], eax
dec ebx
jmp 0x415506
test edx, edx
je 0x415568
test ebx, ebx
jne 0x415568
push str.___CDATA_
mov ecx, esi
call fcn.004bfd50
push edi
mov ecx, esi
call fcn.004bfd50
push 0x5501e0
mov ecx, esi
call fcn.004bfd50
push str.__binary_
mov ecx, esi
jmp 0x41563d
push 0
push 0
push 0
push 0xfde9
push 0xfde9
push edi
call fcn.0048d1e0
add esp, 0x18
mov dword [ebp - 0x5c], eax
mov byte [ebp - 4], 1
push eax
mov ecx, esi
call fcn.004bfd50
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x5c]
call fcn.00415310
push str.__binary_
mov ecx, esi
jmp 0x41563d
mov esi, dword [ebp - 0x5c]
push str.__binary_
mov ecx, esi
jmp 0x41563d
push ebx
mov ecx, dword [edi + 0xc]
push ecx
push eax
push str._binary_name__S__offset__X__size__X____
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
cmp dword [edi + 8], 0
jne 0x4155d9
mov dword [edi + 0xc], 0
mov eax, dword [edi + 0xc]
lea ecx, [eax + ebx + 1]
push ecx
call fcn.004fc6be
add esp, 4
mov esi, eax
mov dword [ebp - 0x64], esi
mov eax, dword [edi + 8]
test eax, eax
je 0x415603
mov edx, dword [edi + 0xc]
push edx
push eax
push esi
call fcn.004fe210
add esp, 0xc
push ebx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [edi + 0xc]
add ecx, esi
push ecx
call fcn.004fe210
add esp, 0xc
mov eax, dword [edi + 8]
test eax, eax
je 0x415626
push eax
call fcn.004fedfc
add esp, 4
mov dword [edi + 8], esi
add dword [edi + 0xc], ebx
mov eax, dword [edi + 0xc]
mov byte [eax + esi], 0
inc dword [edi + 0xc]
lea edx, [ebp - 0x54]
push edx
mov ecx, dword [ebp - 0x5c]
call fcn.004bfd50
mov dword [ebp - 0x6c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004fe1f5
mov esp, ebp
pop ebp
ret 0x18