Function at 0x21108860
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1f4
push ebx
push ebp
mov ebp, dword [esp + 0x200]
push esi
push edi
push ebp
push str.Input_file_types
push str.ASI_codec
mov ebx, eax
call sym.mss32.dll_RIB_find_file_provider
mov edi, eax
xor esi, esi
cmp edi, esi
jne 0x211088a6
push ebp
push str.DLSFILE:_No_ASI_provider_available_for_file_type__s_n
call sym.mss32.dll_AIL_debug_printf
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1f4
ret
lea eax, [esp + 0x14]
mov dword [esp + 0x28], eax
lea edx, [esp + 0x1c]
mov dword [esp + 0x48], edx
lea eax, [esp + 0x1f8]
mov dword [esp + 0x58], eax
lea edx, [esp + 0x10]
mov dword [esp + 0x78], edx
lea eax, [esp + 0x200]
mov dword [esp + 0x88], eax
lea edx, [esp + 0x1dc]
mov dword [esp + 0x98], edx
lea eax, [esp + 0x1bc]
lea edx, [esp + 0x1fc]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb8], edx
lea ecx, [esp + 0x1f4]
lea eax, [esp + 0x1c4]
lea edx, [esp + 0x1e4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xd8], edx
lea ecx, [esp + 0x18]
lea eax, [esp + 0x1cc]
lea edx, [esp + 0x1b0]
mov dword [esp + 0x68], ecx
mov ecx, 1
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf8], edx
lea eax, [esp + 0x1d4]
lea edx, [esp + 0x1ec]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], str.ASI_error
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], str.ASI_stream_attribute
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], str.ASI_stream_open
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], str.ASI_stream_seek
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], str.ASI_stream_close
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], str.ASI_stream_process
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], str.ASI_stream_set_preference
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], str.Input_bit_rate
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], str.Input_sample_rate
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], str.Input_sample_width
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], str.Input_channels
mov dword [esp + 0xcc], esi
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], str.Output_bit_rate
mov dword [esp + 0xdc], esi
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xe4], str.Output_sample_rate
mov dword [esp + 0xec], esi
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], str.Output_sample_width
mov dword [esp + 0xfc], esi
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], str.Output_channels
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], str.Position
mov dword [esp + 0x118], edx
mov dword [esp + 0x11c], esi
lea edx, [esp + 0x1b8]
mov dword [esp + 0x138], edx
lea edx, [esp + 0x1c0]
mov dword [esp + 0x148], edx
lea edx, [esp + 0x1c8]
mov dword [esp + 0x158], edx
lea edx, [esp + 0x1d0]
mov dword [esp + 0x168], edx
lea edx, [esp + 0x1d8]
mov dword [esp + 0x178], edx
lea edx, [esp + 0x1e0]
mov dword [esp + 0x188], edx
lea edx, [esp + 0x1e8]
mov dword [esp + 0x198], edx
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1b8]
mov dword [esp + 0x12c], eax
mov eax, 2
push ecx
mov dword [esp + 0x148], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x168], eax
mov dword [esp + 0x178], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x1a8], eax
push str.ASI_codec
lea eax, [esp + 0x1fc]
push edi
mov dword [esp + 0x130], ecx
mov dword [esp + 0x134], str.Percent_done
mov dword [esp + 0x13c], esi
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], str.Minimum_input_block_size
mov dword [esp + 0x14c], esi
mov dword [esp + 0x154], str.Raw_source_sample_rate
mov dword [esp + 0x15c], esi
mov dword [esp + 0x164], str.Raw_source_sample_width
mov dword [esp + 0x16c], esi
mov dword [esp + 0x174], str.Raw_source_channels
mov dword [esp + 0x17c], esi
mov dword [esp + 0x184], str.Requested_bit_rate
mov dword [esp + 0x18c], esi
mov dword [esp + 0x194], str.Requested_sample_rate
mov dword [esp + 0x19c], esi
mov dword [esp + 0x1a4], str.Requested_sample_width
mov dword [esp + 0x1ac], esi
mov dword [esp + 0x1b4], str.Requested_channels
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x1bc], esi
call sym.mss32.dll_RIB_request_interface
lea eax, [esp + 0x30]
push eax
push 0x18
push str.ASI_stream
push edi
call sym.mss32.dll_RIB_request_interface
mov ecx, dword [esp + 0x20c]
push ebx
push 0x211099a0
push esi
mov dword [0x21157104], ebx
mov dword [0x21157100], ecx
mov dword [0x21157108], esi
call dword [esp + 0x28]
mov ebx, eax
cmp ebx, esi
jne 0x21108c97
call dword [esp + 0x14]
push eax
push str.DLSFILE:_Could_not_open_stream___s__n
call sym.mss32.dll_AIL_debug_printf
add esp, 8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1f4
ret
cmp dword [esp + 0x218], 0x10
mov eax, dword [esp + 0x214]
mov edi, dword [esp + 0x210]
mov ebp, eax
jne 0x21108cea
cmp eax, esi
je 0x21108d53
lea esp, [esp]
cmp ebp, 0x400
mov eax, 0x400
jg 0x21108ccf
mov eax, ebp
push eax
push edi
push ebx
call dword [esp + 0x1c]
cmp eax, esi
je 0x21108ce2
add edi, eax
sub ebp, eax
jne 0x21108cc0
jmp 0x21108d53
cmp ebp, esi
je 0x21108d53
xor eax, eax
jmp 0x21108d43
cmp eax, esi
je 0x21108d53
mov edi, edi
lea eax, [ebp + ebp]
cmp eax, 0x800
jbe 0x21108d00
mov eax, 0x800
push eax
push 0x21159450
push ebx
call dword [esp + 0x1c]
sar eax, 1
cmp eax, esi
je 0x21108d3a
xor ecx, ecx
cmp eax, esi
jle 0x21108d32
jmp 0x21108d20
mov dl, byte [ecx*2 + 0x21159451]
xor dl, 0x80
mov byte [ecx + edi], dl
inc ecx
cmp ecx, eax
jl 0x21108d20
add edi, eax
sub ebp, eax
jne 0x21108cf0
jmp 0x21108d53
cmp ebp, esi
je 0x21108d53
mov eax, 0x80808080
mov ecx, ebp
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
push ebx
call dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1f4
ret