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

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
push ebp
push esi
mov ebp, ebx
push edi
mov edi, dword [esp + 0x14]
mov esi, dword [edi + 4]
and ebx, 0xf
mov eax, dword [edi + ebx*4 + 0x98]
and ebp, 0xf0
cmp ebp, 0xb0
mov dword [esp + 0x14], eax
jne 0x21120401
cmp dword [esp + 0x24], 0
je 0x21120411
mov eax, dword [edi + ebx*4 + 0x358]
cmp eax, 0xffffffff
je 0x21120411
mov dword [esp + 0x20], eax
mov dword [edi + ebx*4 + 0x358], 0xffffffff
jmp 0x21120411
cmp ebp, 0xc0
je 0x21120411
cmp ebp, 0xe0
jne 0x21120431
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov eax, ebx
or eax, ebp
lea ecx, [edi + 0xd8]
call fcn.21120170
mov eax, dword [esp + 0x1c]
add esp, 8
cmp ebp, 0xb0
jne case.0x2112044c.8
mov ecx, dword [esp + 0x1c]
add ecx, 0xfffffff9
cmp ecx, 0x70
ja case.0x2112044c.8
movzx edx, byte [ecx + 0x21120748]
jmp dword [edx*4 + 0x21120718]
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je case.0x2112044c.8
mov edx, dword [esp + 0x20]
movzx ecx, byte [ecx + edx]
mov dword [edi + ebx*4 + 0x358], ecx
jmp case.0x2112044c.8
mov ecx, dword [edi + 0x20]
test ecx, ecx
je case.0x2112044c.8
mov edx, dword [esp + 0x20]
push edx
push ebx
push edi
call ecx
mov dword [edi + ebx*4 + 0x358], eax
mov eax, dword [esp + 0x14]
cmp dword [esi + eax*4 + 0x18], 1
jne 0x21120497
cmp dword [esi + eax*4 + 0x58], edi
jne 0x21120712
cmp ebp, 0x90
jne 0x211206af
add dword [esi + eax*4 + 0x158], 1
jmp 0x211206bf
push 0
push 0
mov eax, ebx
or eax, 0xb0
push 0x64
push eax
push edi
mov dword [esp + 0x2c], eax
call fcn.211203b0
mov eax, dword [esp + 0x2c]
push 0
push 0
push 0x65
push eax
push edi
call fcn.211203b0
mov ecx, dword [esp + 0x40]
push 0
push 0
push 0x26
push ecx
push edi
call fcn.211203b0
add esp, 0x3c
jmp 0x21120482
mov ecx, dword [esi + 0x1a0]
imul ecx, dword [edi + 0x3c]
imul ecx, dword [esp + 0x20]
mov eax, 0x82061029
imul ecx
add edx, ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x7f
mov dword [esp + 0x20], eax
jle 0x21120527
mov dword [esp + 0x20], 0x7f
jmp 0x21120482
test eax, eax
jge 0x21120482
mov dword [esp + 0x20], 0
jmp 0x21120482
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 0x21120712
push ecx
push ecx
push edi
push esi
call eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, dword [edi + 0x24]
test eax, eax
je 0x21120712
mov ecx, dword [esp + 0x20]
push ecx
push ebx
push edi
call eax
pop edi
pop esi
pop ebp
pop ebx
ret
xor eax, eax
lea ecx, [edi + 0x88]
cmp dword [ecx], 0xffffffff
je 0x21120593
add eax, 1
add ecx, 4
cmp eax, 4
jl 0x21120583
cmp eax, 4
je 0x21120712
mov edx, dword [esp + 0x20]
mov dword [edi + eax*4 + 0x88], edx
mov ecx, dword [edi + 0x18]
mov dword [edi + eax*4 + 0x78], ecx
pop edi
pop esi
pop ebp
pop ebx
ret
mov eax, 3
lea ecx, [edi + 0x94]
mov edi, edi
cmp dword [ecx], 0xffffffff
jne 0x211205cf
sub eax, 1
sub ecx, 4
test eax, eax
jge 0x211205c0
cmp dword [esp + 0x20], 0x40
jge 0x211205e6
mov dword [edi + eax*4 + 0x88], 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
ret
cmp eax, 0xffffffff
je 0x21120712
mov ecx, dword [edi + eax*4 + 0x88]
test ecx, ecx
jne 0x21120606
mov edx, dword [edi + eax*4 + 0x78]
mov dword [edi + 0x18], edx
pop edi
pop esi
pop ebp
pop ebx
ret
add ecx, 0xffffffff
mov dword [edi + eax*4 + 0x88], ecx
je 0x211205d6
mov eax, dword [edi + eax*4 + 0x78]
mov dword [edi + 0x18], eax
pop edi
pop esi
pop ebp
pop ebx
ret
mov ecx, dword [esp + 0x20]
push ecx
push edi
call sym.mss32.dll__AIL_branch_index_8
pop edi
pop esi
pop ebp
pop ebx
ret
cmp dword [esi + eax*4 + 0x18], 1
je 0x21120712
xor edx, edx
cmp dword [esp + 0x20], 0x40
pop edi
setl dl
sub edx, 1
and edx, 2
mov dword [esi + eax*4 + 0x18], edx
pop esi
pop ebp
pop ebx
ret
cmp dword [esp + 0x20], 0x40
jl 0x2112067d
push esi
call sym.mss32.dll__AIL_lock_channel_4
mov ebp, eax
test ebp, ebp
je 0x21120712
push ebp
add ebx, 1
push ebx
push edi
call sym.mss32.dll__AIL_map_sequence_channel_12
mov dword [esi + ebp*4 + 0x54], edi
pop edi
pop esi
pop ebp
pop ebx
ret
cmp dword [esi + eax*4 + 0x18], 1
jne 0x21120712
push ebx
call fcn.21120820
mov eax, dword [esp + 0x18]
add esp, 4
add eax, 1
push eax
push esi
call sym.mss32.dll__AIL_release_channel_8
lea eax, [ebx + 1]
push eax
push eax
push edi
call sym.mss32.dll__AIL_map_sequence_channel_12
pop edi
pop esi
pop ebp
pop ebx
ret
cmp ebp, 0x80
jne 0x211206bf
add dword [esi + eax*4 + 0x158], 0xffffffff
cmp ebp, 0x90
mov dword [esi + eax*4 + 0xd8], edi
jne 0x211206d8
cmp dword [edi + ebx*4 + 0x218], 0x40
jge 0x21120712
mov ecx, dword [esi + 0x198]
test ecx, ecx
je 0x211206fb
mov edx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x20]
push edx
or eax, ebp
push eax
push edi
push esi
call ecx
test eax, eax
jne 0x21120712
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x1c]
push ecx
or ebx, ebp
mov edi, esi
call fcn.2111fe60
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
ret