Function at 0x211222a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, dword [esp + 0x18]
mov ecx, esi
push edi
mov edi, dword [esp + 0x18]
mov ebp, dword [edi + 4]
and esi, 0xf
mov eax, dword [edi + esi*4 + 0x98]
and ecx, 0xf0
cmp ecx, 0xb0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
jne 0x211222f3
mov eax, dword [esp + 0x28]
test eax, eax
je 0x21122303
mov ebx, dword [edi + esi*4 + 0x358]
cmp ebx, 0xffffffff
je 0x21122303
mov dword [edi + esi*4 + 0x358], 0xffffffff
jmp 0x21122307
cmp ecx, 0xc0
je 0x21122303
cmp ecx, 0xe0
jne 0x21122329
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ebx
push eax
mov eax, esi
or eax, ecx
lea ecx, [edi + 0xd8]
call fcn.21122060
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
add esp, 8
jmp 0x2112232d
mov ebx, dword [esp + 0x24]
cmp ecx, 0xb0
jne case.0x21122348.8
mov edx, dword [esp + 0x20]
add edx, 0xfffffff9
cmp edx, 0x70
ja case.0x21122348.8
movzx edx, byte [edx + 0x21122628]
jmp dword [edx*4 + 0x211225f8]
mov edx, dword [edi + 0x1c]
test edx, edx
je case.0x21122348.8
movzx edx, byte [edx + ebx]
mov dword [edi + esi*4 + 0x358], edx
jmp case.0x21122348.8
mov edx, dword [edi + 0x20]
test edx, edx
je case.0x21122348.8
push ebx
push esi
push edi
call edx
mov dword [edi + esi*4 + 0x358], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
cmp dword [ebp + eax*4 + 0x18], 1
jne 0x2112238f
cmp dword [ebp + eax*4 + 0x58], edi
jne 0x211225f0
cmp ecx, 0x90
jne 0x2112258a
mov edx, dword [ebp + eax*4 + 0x158]
inc edx
jmp 0x2112259a
push 0
push 0
mov eax, esi
or eax, 0xb0
push 0x64
push eax
push edi
mov dword [esp + 0x24], eax
call fcn.211222a0
mov eax, dword [esp + 0x24]
push 0
push 0
push 0x65
push eax
push edi
call fcn.211222a0
mov ecx, dword [esp + 0x38]
push 0
push 0
push 0x26
push ecx
push edi
call fcn.211222a0
add esp, 0x3c
jmp 0x21122376
mov ecx, dword [ebp + 0x1a0]
imul ecx, dword [edi + 0x3c]
imul ecx, ebx
mov eax, 0x82061029
imul ecx
add edx, ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebx, edx
cmp ebx, 0x7f
jle 0x21122418
mov ebx, 0x7f
jmp 0x21122376
test ebx, ebx
jge 0x21122376
xor ebx, ebx
jmp 0x21122376
mov edx, dword [edi + 0x6c]
mov eax, dword [edi + 0x28]
xor ecx, ecx
neg edx
cmp eax, ecx
mov dword [edi + 0x60], ecx
mov dword [edi + 0x64], ecx
mov dword [edi + 0x70], edx
je 0x211225f0
push ecx
push ecx
push edi
push ebp
call eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov eax, dword [edi + 0x24]
test eax, eax
je 0x211225f0
push ebx
push esi
push edi
call eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
xor eax, eax
lea ecx, [edi + 0x88]
lea esp, [esp]
cmp dword [ecx], 0xffffffff
je 0x2112247e
inc eax
add ecx, 4
cmp eax, 4
jl 0x21122470
cmp eax, 4
je 0x211225f0
mov dword [edi + eax*4 + 0x88], ebx
mov ecx, dword [edi + 0x18]
mov dword [edi + eax*4 + 0x78], ecx
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov eax, 3
lea ecx, [edi + 0x94]
cmp dword [ecx], 0xffffffff
jne 0x211224b3
dec eax
sub ecx, 4
test eax, eax
jge 0x211224a6
cmp ebx, 0x40
jl 0x211224f2
cmp eax, 0xffffffff
je 0x211225f0
mov ecx, dword [edi + eax*4 + 0x88]
test ecx, ecx
jne 0x211224d9
mov edx, dword [edi + eax*4 + 0x78]
mov dword [edi + 0x18], edx
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
dec ecx
test ecx, ecx
mov dword [edi + eax*4 + 0x88], ecx
je 0x211224f2
mov eax, dword [edi + eax*4 + 0x78]
mov dword [edi + 0x18], eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov dword [edi + eax*4 + 0x88], 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
push ebx
push edi
call sym.mss32.dll__AIL_branch_index_8
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp dword [ebp + eax*4 + 0x18], 1
je 0x211225f0
xor ecx, ecx
cmp ebx, 0x40
setl cl
pop edi
pop esi
dec ecx
and ecx, 2
mov dword [ebp + eax*4 + 0x18], ecx
pop ebp
pop ebx
pop ecx
ret
cmp ebx, 0x40
jl 0x21122559
push ebp
call sym.mss32.dll__AIL_lock_channel_4
mov ebx, eax
test ebx, ebx
je 0x211225f0
push ebx
inc esi
push esi
push edi
call sym.mss32.dll__AIL_map_sequence_channel_12
mov dword [ebp + ebx*4 + 0x54], edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp dword [ebp + eax*4 + 0x18], 1
jne 0x211225f0
push esi
call fcn.21122700
mov edx, dword [esp + 0x1c]
add esp, 4
inc edx
push edx
push ebp
call sym.mss32.dll__AIL_release_channel_8
lea eax, [esi + 1]
push eax
push eax
push edi
call sym.mss32.dll__AIL_map_sequence_channel_12
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
cmp ecx, 0x80
jne 0x211225a1
mov edx, dword [ebp + eax*4 + 0x158]
dec edx
mov dword [ebp + eax*4 + 0x158], edx
cmp ecx, 0x90
mov dword [ebp + eax*4 + 0xd8], edi
jne 0x211225ba
cmp dword [edi + esi*4 + 0x218], 0x40
jge 0x211225f0
mov edx, dword [ebp + 0x198]
test edx, edx
je 0x211225d9
mov esi, dword [esp + 0x20]
push ebx
push esi
or eax, ecx
push eax
push edi
push ebp
call edx
test eax, eax
jne 0x211225f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
push ebx
mov ebx, eax
mov eax, dword [esp + 0x24]
or ebx, ecx
mov edi, ebp
call fcn.21121d30
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret