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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88
push ebx
push ebp
push esi
push edi
mov ebp, ecx
cmp byte [ebp + 0xc], 0
jne 0x1008e0ba
cmp byte [ebp + 0xd], 0
jne 0x1008e0ba
push 0
push 0
push ecx
push 0
lea ecx, [esp + 0x40]
call fcn.10091320
mov esi, dword [ebp + 4]
mov bh, 1
lea eax, [esi + 0x30]
mov dword [esp + 0x14], eax
cmp esi, eax
je 0x1008e0ad
mov edi, dword [esp + 0x38]
add esi, 8
mov bl, byte [esp + 0x30]
push 0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x24], 0
call fcn.10086c20
lea eax, [esp + 0x20]
mov dword [esp + 0x54], str.Master_volume
mov dword [esp + 0x5c], eax
lea ecx, [esi - 8]
xor al, al
mov dword [esp + 0x58], ecx
cmp dword [ecx], 0x64
mov ecx, 1
mov byte [esp + 0x61], al
movzx eax, al
cmove eax, ecx
lea ecx, [esp + 0x54]
mov byte [esp + 0x60], al
call fcn.1008a6e0
lea eax, [esp + 0x20]
mov dword [esp + 0x64], str.Headshot_volume
mov dword [esp + 0x6c], eax
lea ecx, [esi - 4]
xor al, al
mov dword [esp + 0x68], ecx
cmp dword [ecx], 0x64
mov ecx, 1
mov byte [esp + 0x71], al
movzx eax, al
cmove eax, ecx
lea ecx, [esp + 0x64]
mov byte [esp + 0x70], al
call fcn.1008a6e0
lea eax, [esp + 0x20]
mov dword [esp + 0x74], str.Weapon_volume
mov dword [esp + 0x7c], eax
mov ecx, 1
xor al, al
mov dword [esp + 0x78], esi
cmp dword [esi], 0x64
mov byte [esp + 0x81], al
movzx eax, al
cmove eax, ecx
lea ecx, [esp + 0x74]
mov byte [esp + 0x80], al
call fcn.1008a6e0
lea eax, [esp + 0x20]
mov dword [esp + 0x84], str.Footstep_volume
mov dword [esp + 0x8c], eax
lea ecx, [esi + 4]
xor al, al
mov dword [esp + 0x88], ecx
cmp dword [ecx], 0x64
mov ecx, 1
mov byte [esp + 0x91], al
movzx eax, al
cmove eax, ecx
lea ecx, [esp + 0x84]
mov byte [esp + 0x90], al
call fcn.1008a6e0
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x44]
call fcn.10084dd0
movzx eax, byte [esp + 0x40]
cmp eax, 9
ja case.0x1008dff9.3
movzx eax, byte [eax + 0x1008e0d8]
jmp dword [eax*4 + 0x1008e0c8]
mov dl, 1
jmp 0x1008e021
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
sete dl
jmp 0x1008e021
mov eax, dword [esp + 0x48]
cmp dword [eax + 4], 0
sete dl
jmp 0x1008e021
xor dl, dl
xor ecx, ecx
movzx eax, bh
test dl, dl
cmovne ecx, eax
mov bh, cl
test bl, bl
je 0x1008e03c
cmp bl, 2
jne 0x1008e0c2
jmp 0x1008e05d
mov bl, 2
lea ecx, [esp + 0x18]
push 2
mov byte [esp + 0x34], bl
call fcn.10086c20
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x40]
mov ecx, edi
push eax
call fcn.10086d80
push dword [esp + 0x40]
lea ecx, [esp + 0x4c]
call fcn.10086290
push dword [esp + 0x20]
lea ecx, [esp + 0x2c]
call fcn.10086290
add esi, 0x10
lea eax, [esi - 8]
cmp eax, dword [esp + 0x14]
jne 0x1008ded5
test bh, bh
jne 0x1008e0ad
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x30]
push eax
push ebp
lea eax, [esp + 0x8c]
push eax
call fcn.1008dcb0
push dword [esp + 0x30]
lea ecx, [esp + 0x3c]
call fcn.10086290
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1010a32a
nop
add al, ah
or byte [eax], dl
adc ah, al
or byte [eax], dl
add al, 0xe0
or byte [eax], dl
pop ds
loopne 269017311
adc byte [eax], al
add dword [edx], eax
add eax, dword [ebx]
add eax, dword [ebx]
add eax, dword [ebx]
add ecx, esp
int3