Function at 0x511100
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
mov dword [ebp - 0x88], ecx
mov al, byte [0x51b208]
mov byte [ebp - 0x8c], al
cmp byte [ebp - 0x8c], 0x62
je 0x511125
jmp 0x511191
mov dword [ebp - 0x88], 0x628a
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x70]
push edx
call dword [sym.imp.ole32.dll_CoRevokeInitializeSpy]
mov dword [ebp - 0x40], eax
push 0x76
push 0x3f
push 0xde
push 0xbf
push 0x7b
call fcn.004025e0
mov dword [ebp - 0x88], 0x7488
push 0x81
push 0xfb
mov eax, dword [ebp - 0x88]
push eax
push 0xcc
call fcn.00402c00
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x20]
push edx
lea eax, [ebp - 0x7c]
push eax
call dword [sym.imp.ole32.dll_CoGetInterfaceAndReleaseStream]
mov dword [ebp - 0x7c], eax
jmp 0x5111d4
cmp dword [ebp - 0x88], 0x4f24
jg 0x5111d4
movsx ecx, byte [0x51b208]
cmp ecx, 0x60
jg 0x5111d4
mov dword [ebp - 0x38], 0x86b7
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x60], edx
mov byte [ebp - 0x75], 6
mov eax, 0x2a1
mov word [ebp - 0x24], ax
mov cx, word [ebp - 0x24]
mov word [ebp - 0x44], cx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x64], edx
movsx eax, word [ebp - 0x24]
sub eax, 0x224
movsx ecx, word [ebp - 0x44]
cmp eax, ecx
jl 0x511258
mov dl, byte [ebp - 0x75]
mov byte [ebp - 0x90], dl
cmp byte [ebp - 0x90], 0xef
je 0x511202
cmp byte [ebp - 0x90], 0xf6
je 0x511220
jmp 0x511258
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x64]
add ecx, dword [ebp - 0x88]
cmp ecx, dword [ebp - 0x60]
jle 0x51121e
call fcn.00510d10
jmp 0x511258
mov edx, dword [ebp - 0x60]
and edx, dword [ebp - 0x88]
mov dword [ebp - 0x64], edx
movzx eax, byte [0x51b208]
push eax
call fcn.005107d0
mov ecx, dword [ebp - 0x38]
shr ecx, 0x17
mov dword [ebp - 0x38], ecx
lea edx, [ebp - 0x20]
push edx
push 0x99
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.ole32.dll_CoGetStdMarshalEx]
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x38], 0x9c6a
jbe 0x51131b
push 0x24
mov ecx, dword [ebp - 0x38]
push ecx
movzx edx, byte [ebp - 0x75]
push edx
movzx eax, word [ebp - 0x24]
push eax
call fcn.00402fe0
movzx ecx, byte [ebp - 0x75]
cmp ecx, 0x88
jne 0x5112a7
mov edx, dword [ebp - 0x38]
sub edx, 0xdb32
mov dword [ebp - 0x38], edx
lea eax, [ebp - 0x20]
push eax
lea ecx, [ebp - 0x3c]
push ecx
lea edx, [ebp - 0x54]
push edx
call dword [sym.imp.ole32.dll_CoMarshalInterThreadInterfaceInStream]
mov dword [ebp - 0x40], eax
mov al, byte [0x51b208]
mov byte [ebp - 0x94], al
cmp byte [ebp - 0x94], 0x5f
je 0x5112bd
jmp 0x5112d8
movzx ecx, byte [0x51b208]
push ecx
call fcn.005107d0
mov edx, dword [ebp - 0x38]
add edx, 0x1f58
mov dword [ebp - 0x38], edx
jmp 0x511316
mov eax, dword [ebp - 0x60]
and eax, dword [ebp - 0x88]
mov dword [ebp - 0x64], eax
lea ecx, [ebp - 0x38]
push ecx
lea edx, [ebp - 0x75]
push edx
lea eax, [ebp - 0x75]
push eax
push 0x74
lea ecx, [ebp - 0x38]
push ecx
call dword [sym.imp.ole32.dll_CoInstall]
mov dword [ebp - 0xc], eax
movzx edx, byte [0x51b208]
push edx
call fcn.005107d0
movzx eax, byte [ebp - 0x75]
sub eax, 0x3d
mov byte [ebp - 0x75], al
jmp 0x5113ed
mov cx, word [ebp - 0x24]
mov word [ebp - 0x84], cx
mov dl, byte [0x51b208]
mov byte [ebp - 0x7d], dl
lea eax, [ebp - 0x38]
mov dword [ebp - 0x5c], eax
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x10], ecx
mov dl, byte [ebp - 0x75]
mov byte [ebp - 0x98], dl
cmp byte [ebp - 0x98], 6
je 0x51134f
jmp 0x51137b
mov eax, dword [ebp - 0x38]
add eax, 0x716c
mov ecx, dword [ebp - 0x5c]
cmp eax, dword [ecx]
jbe 0x511373
mov edx, 0x9ca
mov word [ebp - 0x74], dx
mov al, byte [ebp - 0x75]
mov byte [ebp - 1], al
lea ecx, [ebp - 0x38]
mov dword [ebp - 8], ecx
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x58], edx
jmp 0x5113e4
mov eax, dword [ebp - 0x88]
add eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
sub eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x64]
or ecx, dword [ebp - 0x60]
cmp eax, ecx
jl 0x5113a6
call dword [sym.imp.ole32.dll_CoRevertToSelf]
mov dword [ebp - 0x40], eax
jmp 0x5113e4
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x9c], edx
cmp dword [ebp - 0x9c], 0x6312
je 0x5113c0
jmp 0x5113d5
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x88], eax
movzx ecx, byte [ebp - 0x75]
sar ecx, 3
mov byte [ebp - 1], cl
jmp 0x5113e4
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x64]
shl eax, cl
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov edx, dword [ebp - 0x60]
xor edx, dword [ebp - 0x64]
mov dword [ebp - 0x58], edx
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xa0], eax
cmp dword [ebp - 0xa0], 0x8192
je 0x511404
jmp 0x511436
cmp dword [ebp - 0x38], 0x2ca2
jne 0x511434
mov ecx, dword [ebp - 0x64]
call fcn.00511100
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x88], ecx
call dword [sym.imp.ole32.dll_CoRevertToSelf]
mov dword [ebp - 0x3c], eax
movzx edx, byte [ebp - 0x75]
or edx, 0xdc
mov byte [ebp - 0x75], dl
jmp 0x511491
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x38]
push ecx
mov edx, dword [ebp - 0x88]
push edx
mov eax, dword [ebp - 0x38]
push eax
call fcn.00402c00
movsx ecx, word [ebp - 0x44]
xor ecx, 0x6c0
mov word [ebp - 0x24], cx
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x38]
push edx
call fcn.00402c00
mov eax, dword [ebp - 0x38]
shl eax, 5
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x20]
push ecx
lea edx, [ebp - 0x34]
push edx
push 0x75
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.ole32.dll_BindMoniker]
mov dword [ebp - 0xc], eax
movsx eax, byte [0x51b208]
mov esp, ebp
pop ebp
ret