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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x74
mov ebx, ecx
mov al, byte [esp + 0x84]
cmp al, byte [ebx + 0x190]
je 0x8500ca
test al, al
je 0x850009
push 0x10b0
call fcn.00898760
push 0x10b0
mov dword [ebx + 0x168], eax
call fcn.00898760
add esp, 8
mov dword [ebx + 0x16c], eax
xor esi, esi
mov al, 1
jmp 0x84ff9a
mov al, 0
lea edx, [esi + esi]
add edx, edx
sub edx, esi
add edx, edx
add edx, edx
sub edx, esi
lea edi, [esi + edx*8]
lea edx, [edi + edi]
add edx, edx
sub edx, edi
mov edi, dword [ebx + 0x168]
mov byte [edi + edx + 1], al
cmp esi, 2
jge 0x84ffc4
mov al, 1
jmp 0x84ffc6
mov al, 0
mov edi, dword [ebx + 0x168]
mov byte [edi + edx], al
mov edi, dword [ebx + 0x184]
test edi, edi
je 0x850577
push edi
push 0x9f5b18
mov eax, dword [ebx + 0x168]
lea edx, [edx + eax + 2]
push edx
call fcn.0089882d
add esp, 0xc
add esi, 1
cmp esi, 0x10
jge 0x8500d5
cmp esi, 2
jl 0x84ff94
jmp 0x84ff98
push 0
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x10]
lea esi, [ebx + 0x17c]
mov ecx, esi
call fcn.0041cbec
push dword [ebx + 0x168]
call fcn.00888fb0
push dword [ebx + 0x16c]
call fcn.00888fb0
add esp, 8
mov eax, dword [ebx + 0x120]
mov byte [ebx + 0x190], 0
xor edi, edi
test eax, eax
jle 0x850064
mov eax, dword [ebx + 0x78]
push dword [eax + edi*4]
call fcn.00888fb0
pop ecx
mov eax, dword [ebx + 0x120]
add edi, 1
cmp edi, eax
jl 0x85004b
mov edx, dword [ebx + 0x11c]
xor edi, edi
test edx, edx
jle 0x85008f
mov eax, dword [ebx + 0x30]
push dword [eax + edi*4]
call fcn.00888fb0
pop ecx
mov edx, dword [ebx + 0x11c]
add edi, 1
cmp edi, edx
jl 0x850070
mov eax, dword [ebx + 0x120]
test eax, eax
je 0x8500ac
push dword [ebx + 0x7c]
call fcn.00888fb0
push dword [ebx + 0x78]
call fcn.00888fb0
add esp, 8
mov edx, dword [ebx + 0x11c]
test edx, edx
je 0x8500c3
push dword [ebx + 0x34]
call fcn.00888fb0
push dword [ebx + 0x30]
call fcn.00888fb0
add esp, 8
mov ecx, esi
call fcn.0041cbe0
xor eax, eax
add esp, 0x74
pop ebx
pop esi
pop edi
ret 4
xor esi, esi
mov edx, dword [ebx + 0x16c]
mov al, 0
mov byte [edx + esi + 1], al
mov edi, dword [ebx + 0x16c]
mov byte [edi + esi], al
mov edx, dword [ebx + 0x184]
test edx, edx
je 0x85056d
push edx
push 0x9f5b18
mov eax, dword [ebx + 0x16c]
lea edi, [esi + eax + 2]
push edi
call fcn.0089882d
add esp, 0xc
add esi, 0x10b
cmp esi, 0x10b0
jl 0x8500d7
push 0
lea eax, [ebx + 0xd8]
push eax
push dword [ebx + 0xd4]
call sub.DSOUND.dll_DirectSoundCreate
push eax
mov ecx, ebx
call fcn.00851db8
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x8502be
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push 2
push eax
mov esi, dword [ebx + 0xd8]
mov edx, dword [esi]
push esi
call dword [edx + 0x18]
push eax
mov ecx, ebx
call fcn.00851db8
lea eax, [esp]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], edx
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], edx
mov dword [eax + 0x38], edx
mov dword [eax + 0x3c], edx
mov dword [eax + 0x40], edx
mov dword [eax + 0x44], edx
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], edx
mov dword [eax + 0x50], edx
mov dword [eax + 0x54], edx
mov dword [eax + 0x58], edx
mov dword [eax + 0x5c], edx
mov edx, dword [ebx + 0xd8]
mov dword [esp], 0x60
mov eax, dword [edx]
lea esi, [esp]
push esi
push edx
call dword [eax + 0x10]
push eax
mov ecx, ebx
call fcn.00851db8
mov eax, dword [esp + 4]
test eax, 0x800
je 0x85055f
test eax, 0x200
je 0x85055f
test al, 0x20
jne 0x8501fa
mov eax, dword [esp + 0x34]
cmp eax, 4
jae 0x85020b
mov dword [ebx + 0x120], 2
mov esi, 2
jmp 0x85021a
mov dword [ebx + 0x120], 4
mov esi, 4
mov edi, dword [ebx + 0x198]
test edi, edi
je 0x850547
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x85023e
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x850232
cmp eax, 4
jbe 0x850287
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x850259
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x85024d
mov al, byte [eax + edi - 1]
cmp al, 0x64
je 0x8504e0
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x85027b
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x85026f
mov al, byte [eax + edi - 1]
cmp al, 0x44
je 0x850466
lea edx, [esp + 0x60]
push esi
push edx
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x54]
test eax, eax
jne 0x8502b4
xor edx, edx
mov dword [ebx + 0x120], edx
mov dword [ebx + 0x11c], edx
mov eax, 0xffffdb69
add esp, 0x74
pop ebx
pop esi
pop edi
ret 4
mov edx, dword [esp + 0x60]
push edx
mov eax, dword [edx]
call dword [eax + 8]
mov eax, dword [ebx + 0xd0]
test eax, eax
je 0x8502df
push 0
lea edx, [ebx + 0xdc]
push edx
push eax
call sub.DSOUND.dll_DirectSoundCaptureCreate
push eax
mov ecx, ebx
call fcn.00851db8
mov eax, dword [ebx + 0xdc]
test eax, eax
je 0x85033c
lea eax, [esp + 0x64]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 0xdc]
mov dword [esp + 0x64], 0x10
mov eax, dword [edx]
lea esi, [esp + 0x64]
push esi
push edx
call dword [eax + 0x10]
push eax
mov ecx, ebx
call fcn.00851db8
mov eax, dword [esp + 0x68]
test eax, 0x800
jne 0x850332
mov dword [ebx + 0x11c], 2
jmp 0x85033c
mov dword [ebx + 0x11c], 2
mov eax, dword [ebx + 0xd8]
test eax, eax
je 0x850551
mov esi, dword [ebx + 0x104]
mov edx, dword [ebx + 0x118]
mov dword [ebx + 0x70], esi
xor eax, eax
mov dword [ebx + 0x74], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x34], eax
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x7c], eax
mov dword [ebx + 0x78], eax
mov eax, dword [ebx + 0x120]
test eax, eax
je 0x8503e5
add eax, eax
add eax, eax
push eax
call fcn.00898760
mov dword [ebx + 0x7c], eax
mov eax, dword [ebx + 0x120]
add eax, eax
add eax, eax
push eax
call fcn.00898760
add esp, 8
mov dword [ebx + 0x78], eax
mov eax, dword [ebx + 0x120]
xor esi, esi
test eax, eax
jle 0x8503e5
push 0x8000
call fcn.00898760
push 0x8000
push 0
mov edx, dword [ebx + 0x78]
mov dword [edx + esi*4], eax
mov eax, dword [ebx + 0x78]
push dword [eax + esi*4]
call fcn.008a70e8
add esp, 0x10
mov eax, dword [ebx + 0x7c]
mov dword [eax + esi*4], esi
add esi, 1
cmp esi, dword [ebx + 0x120]
jl 0x8503af
mov eax, dword [ebx + 0x11c]
test eax, eax
je 0x850454
add eax, eax
add eax, eax
push eax
call fcn.00898760
mov dword [ebx + 0x34], eax
mov eax, dword [ebx + 0x11c]
add eax, eax
add eax, eax
push eax
call fcn.00898760
add esp, 8
mov dword [ebx + 0x30], eax
mov eax, dword [ebx + 0x11c]
xor esi, esi
test eax, eax
jle 0x850454
push 0x8000
call fcn.00898760
push 0x8000
push 0
mov edx, dword [ebx + 0x30]
mov dword [edx + esi*4], eax
mov eax, dword [ebx + 0x30]
push dword [eax + esi*4]
call fcn.008a70e8
add esp, 0x10
mov eax, dword [ebx + 0x34]
mov dword [eax + esi*4], esi
add esi, 1
cmp esi, dword [ebx + 0x11c]
jl 0x85041e
mov byte [ebx + 0x190], 1
xor eax, eax
add esp, 0x74
pop ebx
pop esi
pop edi
ret 4
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x85047c
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x850470
mov al, byte [eax + edi - 2]
cmp al, 0x58
jne 0x850287
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x85049e
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x850492
mov al, byte [eax + edi - 3]
cmp al, 0x56
jne 0x850287
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x8504c0
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x8504b4
mov al, byte [eax + edi - 4]
cmp al, 0x2e
jne 0x850287
mov dword [ebx + 0x120], 2
mov esi, 2
jmp 0x850287
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x8504f6
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x8504ea
mov al, byte [eax + edi - 2]
cmp al, 0x78
jne 0x850265
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x850518
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x85050c
mov al, byte [eax + edi - 3]
cmp al, 0x76
jne 0x850265
xor eax, eax
mov dh, byte [edi]
mov ecx, edi
test dh, dh
je 0x85053a
add ecx, 1
add eax, 1
mov dl, byte [ecx]
test dl, dl
jne 0x85052e
mov al, byte [eax + edi - 4]
cmp al, 0x2e
je 0x8504cc
jmp 0x850265
mov edi, 0x9eebb8
jmp 0x850228
mov eax, dword [ebx + 0xdc]
test eax, eax
jne 0x85034a
mov eax, 0xffffdb6a
add esp, 0x74
pop ebx
pop esi
pop edi
ret 4
mov edx, 0x9eebb8
jmp 0x8500fa
mov edi, 0x9eebb8
jmp 0x84ffdd