Function at 0x211084c0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x200
push ebx
push ebp
mov ebp, dword [esp + 0x20c]
push esi
mov ebx, eax
push edi
mov eax, ebp
mov ecx, str.Input_file_types
call fcn.21123f50
mov edi, eax
xor esi, esi
cmp edi, esi
jne 0x21108502
push ebp
push str.DLSFILE:_No_ASI_provider_available_for_file_type__s_n
call sym.mss32.dll_AIL_debug_printf
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret
lea eax, [esp + 0x20]
mov dword [esp + 0x30], eax
lea ecx, [esp + 0x208]
mov dword [esp + 0x80], ecx
lea edx, [esp + 0x1c]
mov dword [esp + 0x90], edx
lea eax, [esp + 0x1d4]
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x24]
lea edx, [esp + 0x18]
lea eax, [esp + 0x1dc]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x50], edx
mov ebp, 1
mov dword [esp + 0x60], eax
lea ecx, [esp + 0x1e4]
lea edx, [esp + 0x1ec]
lea eax, [esp + 0x1f4]
mov dword [esp + 0x70], ecx
mov dword [esp + 0xc0], edx
mov dword [esp + 0xd0], eax
lea ecx, [esp + 0x1fc]
lea edx, [esp + 0x204]
lea eax, [esp + 0x20c]
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xf0], edx
mov dword [esp + 0x100], eax
lea ecx, [esp + 0x1e8]
lea edx, [esp + 0x1c8]
lea eax, [esp + 0x1bc]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], str.ASI_error
mov dword [esp + 0x34], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], str.ASI_stream_property
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], str.ASI_stream_open
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], str.ASI_stream_seek
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], str.ASI_stream_close
mov dword [esp + 0xb4], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], str.ASI_stream_process
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], str.Input_bit_rate
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], str.Input_sample_rate
mov dword [esp + 0x74], esi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], str.Input_sample_width
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc8], ebp
mov dword [esp + 0xcc], str.Input_channels
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd8], ebp
mov dword [esp + 0xdc], str.Output_bit_rate
mov dword [esp + 0xe4], esi
mov dword [esp + 0xe8], ebp
mov dword [esp + 0xec], str.Output_sample_rate
mov dword [esp + 0xf4], esi
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xfc], str.Output_sample_width
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], ebp
mov dword [esp + 0x10c], str.Output_channels
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], esi
mov dword [esp + 0x118], ebp
mov dword [esp + 0x11c], str.Output_reservoir
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], esi
mov dword [esp + 0x128], ebp
mov dword [esp + 0x12c], str.Position
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], esi
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x180], ecx
lea ecx, [esp + 0x200]
mov dword [esp + 0x1b0], ecx
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x160], ecx
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x1f4]
lea eax, [esp + 0x1dc]
mov dword [esp + 0x194], edx
mov dword [esp + 0x1a4], eax
push ebp
lea edx, [esp + 0x1e8]
lea eax, [esp + 0x200]
mov dword [esp + 0x148], edx
mov dword [esp + 0x158], eax
push str.ASI_codec
lea edx, [esp + 0x1d0]
lea eax, [esp + 0x1d8]
push edi
mov dword [esp + 0x188], ebp
mov dword [esp + 0x18c], str.Percent_done
mov dword [esp + 0x194], esi
mov dword [esp + 0x198], ebp
mov dword [esp + 0x19c], str.Minimum_input_block_size
mov dword [esp + 0x1a4], esi
mov dword [esp + 0x1a8], ebp
mov dword [esp + 0x1ac], str.Raw_source_sample_rate
mov dword [esp + 0x1b4], esi
mov dword [esp + 0x1b8], ebp
mov dword [esp + 0x1bc], str.Raw_source_sample_width
mov dword [esp + 0x1c4], esi
mov dword [esp + 0x148], ebp
mov dword [esp + 0x14c], str.Raw_source_channels
mov dword [esp + 0x154], esi
mov dword [esp + 0x158], ebp
mov dword [esp + 0x15c], str.Requested_bit_rate
mov dword [esp + 0x164], esi
mov dword [esp + 0x168], ebp
mov dword [esp + 0x16c], str.Requested_sample_rate
mov dword [esp + 0x174], esi
mov dword [esp + 0x178], ebp
mov dword [esp + 0x17c], str.Requested_sample_width
mov dword [esp + 0x180], edx
mov dword [esp + 0x184], esi
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], str.Requested_channels
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], esi
call sym.mss32.dll_RIB_request_interface
lea edx, [esp + 0x78]
push edx
push 4
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
lea eax, [esp + 0x48]
push eax
push 3
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
lea ecx, [esp + 0xb8]
push ecx
push 4
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
lea edx, [esp + 0xf8]
push edx
push 4
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
lea eax, [esp + 0x178]
push eax
push 4
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
lea ecx, [esp + 0x138]
push ecx
push 4
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
lea edx, [esp + 0x38]
push edx
push ebp
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
mov eax, dword [esp + 0x218]
push ebx
push 0x21109840
push esi
mov dword [0x21188db0], ebx
mov dword [0x21188dac], eax
mov dword [0x21188db4], esi
call dword [esp + 0x28]
cmp eax, esi
mov dword [esp + 0x14], eax
jne 0x2110896c
call dword [esp + 0x20]
push eax
push str.DLSFILE:_Could_not_open_stream___s__n
call sym.mss32.dll_AIL_debug_printf
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret
cmp dword [esp + 0x224], 0x10
mov eax, dword [esp + 0x220]
mov edi, dword [esp + 0x21c]
mov ebx, eax
jne 0x211089d0
cmp eax, esi
je 0x21108a42
cmp ebx, 0x400
mov eax, 0x400
jg 0x2110899d
mov eax, ebx
mov ecx, dword [esp + 0x14]
push eax
push edi
push ecx
call dword [esp + 0x24]
cmp eax, esi
je 0x211089c8
add edi, eax
sub ebx, eax
jne 0x2110898e
mov eax, dword [esp + 0x14]
push eax
call dword [esp + 0x28]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret
cmp ebx, esi
je 0x21108a42
push ebx
push esi
jmp 0x21108a39
cmp eax, esi
je 0x21108a42
lea eax, [ebx + ebx]
cmp eax, 0x800
jle 0x211089e3
mov eax, 0x800
mov edx, dword [esp + 0x14]
push eax
push 0x2118b4d8
push edx
call dword [esp + 0x24]
sar eax, 1
je 0x21108a2f
xor ecx, ecx
cmp eax, esi
jle 0x21108a13
lea esp, [esp]
mov dl, byte [ecx*2 + 0x2118b4d9]
xor dl, 0x80
mov byte [ecx + edi], dl
add ecx, ebp
cmp ecx, eax
jl 0x21108a00
add edi, eax
sub ebx, eax
jne 0x211089d4
mov eax, dword [esp + 0x14]
push eax
call dword [esp + 0x28]
mov eax, ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret
cmp ebx, esi
je 0x21108a42
push ebx
push 0x80
push edi
call fcn.21136810
add esp, 0xc
mov eax, dword [esp + 0x14]
push eax
call dword [esp + 0x28]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x200
ret