Function at 0x4a70fa
Capabilities:
Allocate or change rwx memory
Capture microphone audio
Create thread
Execute shellcode via indirect call
Spawn thread to rwx shellcode

Disassembly:
push ebp
push ebx
push edi
xor eax, eax
push eax
push eax
call fcn.0052ed00
lea eax, [esp + 4]
push eax
push 0
push 0
lea eax, [0x4e87a8]
push eax
push 0
push 0
call sub.KERNEL32.dll_CreateThread
push eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
pop eax
mov dword [ebp + 9], eax
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push dword [ebp + 9]
call sub.KERNEL32.dll_CloseHandle
push 0x40
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
lea eax, [ebp + 0x1f]
push eax
call fcn.0052ddb0
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov word [ebp + 0xd], 1
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov word [ebp + 0xf], 1
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov dword [ebp + 0x11], 0x2b11
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov word [ebp + 0x1b], 0x10
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
movzx ebx, word [ebp + 0xf]
mov edi, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul edi, edi, 0x5f
add ebp, edi
movzx edi, word [ebp + 0x1b]
mov eax, edi
mov ecx, 8
cdq
idiv ecx
mov edi, eax
imul ebx, edi
push ebx
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
pop eax
mov word [ebp + 0x19], ax
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov ebx, dword [ebp + 0x11]
mov edi, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul edi, edi, 0x5f
add ebp, edi
movzx eax, word [ebp + 0x19]
imul ebx, eax
push ebx
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
pop eax
mov dword [ebp + 0x15], eax
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov word [ebp + 0x1d], 0
push 0x20000
push 0
push dword [esp + 0xc]
mov ebx, dword [esp + 0x24]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
lea eax, [ebp + 0xd]
push eax
push 0xffffffff
mov ebx, dword [esp + 0x2c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
lea eax, [ebp]
push eax
call sub.WINMM.dll_waveInOpen
mov dword [esp], eax
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
mov dword [ebp + 0x23], 0x400
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
mov dword [ebp + 0x43], 0x400
push 4
push 0x1000
mov ebx, dword [esp + 0x20]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
mov ebx, dword [ebp + 0x23]
shl ebx, 2
push ebx
push 0
call sub.KERNEL32.dll_VirtualAlloc
push eax
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
pop eax
mov dword [ebp + 0x1f], eax
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
mov ebx, dword [ebp + 0x1f]
mov edi, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul edi, edi, 0x5f
add ebp, edi
push ebp
pop ebp
mov edi, dword [ebp + 0x23]
add edi, edi
add ebx, edi
push ebx
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
pop eax
mov dword [ebp + 0x3f], eax
push dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
pop eax
mov dword [ebp + 0x2b], eax
push dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
pop eax
mov dword [ebp + 0x4b], eax
push 0x20
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
lea eax, [ebp + 0x1f]
push eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push dword [ebp]
call sub.WINMM.dll_waveInPrepareHeader
push 0x20
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
lea eax, [ebp + 0x3f]
push eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push dword [ebp]
call sub.WINMM.dll_waveInPrepareHeader
push 0x20
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
lea eax, [ebp + 0x1f]
push eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push dword [ebp]
call sub.WINMM.dll_waveInAddBuffer
push 0x20
mov ebx, dword [esp + 0x1c]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push ebp
pop ebp
lea eax, [ebp + 0x3f]
push eax
mov ebx, dword [esp + 0x20]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push dword [ebp]
call sub.WINMM.dll_waveInAddBuffer
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov dword [ebp + 5], 0
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
mov byte [ebp + 4], 1
mov ebx, dword [esp + 0x18]
mov ebp, dword [0x6b00b4]
imul ebx, ebx, 0x5f
add ebp, ebx
push dword [ebp]
call sub.WINMM.dll_waveInStart
xor eax, eax
add esp, 8
pop edi
pop ebx
pop ebp
ret 8