Function at 0x4ad31c
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
push edi
mov ebx, 0x51e870
mov esi, dword [0x4b3568]
mov edi, dword [0x4b3628]
xor eax, eax
push ebp
push 0x4adbbf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
mov edx, 0x4adbd8
call fcn.00466a5c
mov eax, dword [0x4b3660]
cmp byte [eax], 0
je 0x4ad3de
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
mov edx, 0x4adbf4
call fcn.00466a5c
mov eax, dword [0x4b3824]
cmp byte [eax], 0
je 0x4ad38e
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
mov edx, 0x4adc08
call fcn.00466a5c
mov eax, dword [0x4b31d0]
cmp byte [eax], 0
je 0x4ad3c3
mov eax, dword [0x4b360c]
push dword [eax]
lea eax, [ebp - 4]
call fcn.004acaf0
lea eax, [ebp - 4]
mov edx, 0x4adc18
call fcn.00404398
mov edx, dword [ebp - 4]
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
call fcn.00466a5c
mov eax, dword [0x4b339c]
cmp byte [eax], 0
je 0x4ad3de
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
mov edx, 0x4adc2c
call fcn.00466a5c
mov eax, dword [0x4b3478]
cmp byte [eax], 0
jne 0x4ad514
call sub.winmm.dll_waveInGetNumDevs
test eax, eax
jbe 0x4ad514
xor eax, eax
mov dword [edi], eax
jmp 0x4ad401
inc dword [edi]
mov eax, dword [0x4b33ac]
push eax
mov eax, dword [edi]
push eax
call sub.bass.dll_BASS_RecordGetInput
test eax, 0x10000
jne 0x4ad3ff
cmp dword [edi], 0
jne 0x4ad433
mov eax, dword [0x4b33ac]
fld dword [eax]
fcomp dword [0x4adc34]
fnstsw ax
sahf
jae 0x4ad433
mov dword [edi], 0xffffffff
mov eax, dword [0x4b33ac]
push eax
mov eax, dword [edi]
push eax
call sub.bass.dll_BASS_RecordGetInput
push 0x30
mov eax, dword [0x4b35dc]
add eax, 0x30
push eax
push 0
call sub.winmm.dll_waveInGetDevCapsA
mov eax, dword [0x4b3754]
mov edx, dword [0x4b35dc]
add edx, 0x38
mov ecx, 0x20
call fcn.00404340
mov eax, dword [0x4b3690]
mov eax, dword [eax]
mov edx, dword [0x4b3754]
mov edx, dword [edx]
call fcn.004044dc
je 0x4ad4e1
mov eax, dword [0x4b31d0]
cmp byte [eax], 0
jne 0x4ad4e1
mov eax, dword [0x4b3690]
mov edx, dword [0x4b3754]
mov edx, dword [edx]
call fcn.00404124
call fcn.004a4e08
call sub.bass.dll_BASS_RecordFree
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
call fcn.00466d50
call fcn.0049a3e4
call fcn.004a4594
mov eax, dword [0x4b3690]
mov eax, dword [eax]
call fcn.004a4324
push eax
call sub.bass.dll_BASS_RecordSetDevice
mov eax, dword [0x4b3690]
mov eax, dword [eax]
call fcn.004a4324
push eax
call sub.bass.dll_BASS_RecordInit
mov eax, dword [edi]
push eax
call sub.bass.dll_BASS_RecordGetInputName
lea edx, [ebp - 8]
call fcn.00408f20
push dword [ebp - 8]
push 0x4adc40
mov eax, dword [0x4b3754]
push dword [eax]
push 0x4adc4c
mov eax, dword [0x4b32e4]
mov edx, 4
call fcn.00404450
mov eax, dword [0x4b3478]
cmp byte [eax], 0
je 0x4ad63f
call fcn.004a42d8
call sub.winmm.dll_waveInGetNumDevs
test eax, eax
ja 0x4ad55f
call fcn.004a4e08
mov eax, dword [0x4b32e4]
call fcn.004040d0
mov eax, dword [0x4b3754]
call fcn.004040d0
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
call fcn.00466d50
call fcn.0049a304
call fcn.0049a3e4
call sub.winmm.dll_waveInGetNumDevs
test eax, eax
jbe 0x4ad577
mov eax, dword [0x4b3690]
cmp dword [eax], 0
jne 0x4ad577
call fcn.004ac844
call sub.winmm.dll_waveInGetNumDevs
test eax, eax
jbe 0x4ad5a5
mov eax, dword [0x4b3754]
cmp dword [eax], 0
jne 0x4ad5a5
mov eax, dword [0x4b3194]
mov eax, dword [eax]
mov edx, dword [0x4b3690]
mov edx, dword [edx]
call fcn.004044dc
jne 0x4ad5a5
call fcn.004ac844
call sub.winmm.dll_waveInGetNumDevs
test eax, eax
jbe 0x4ad5e3
mov eax, dword [0x4b3194]
mov eax, dword [eax]
mov edx, dword [0x4b3690]
mov edx, dword [edx]
call fcn.004044dc
jne 0x4ad5e3
mov eax, dword [0x4b32e4]
mov edx, dword [0x4b3754]
mov edx, dword [edx]
call fcn.00404124
mov eax, dword [0x4b33ac]
push eax
push 0
call sub.bass.dll_BASS_RecordGetInput
call sub.winmm.dll_waveInGetNumDevs
test eax, eax
jbe 0x4ad63f
mov eax, dword [0x4b3194]
mov eax, dword [eax]
mov edx, dword [0x4b3690]
mov edx, dword [edx]
call fcn.004044dc
je 0x4ad63f
mov eax, dword [0x4b3690]
cmp dword [eax], 0
je 0x4ad63f
mov eax, dword [ebx]
mov eax, dword [eax + 0x300]
xor edx, edx
call fcn.0042c050
mov eax, dword [0x4b30ec]
mov eax, dword [eax]
call fcn.004a7d08
mov eax, dword [0x4b35a4]
mov eax, dword [eax]
call fcn.00466fe8
push 1
push 0x4adc50
call sub.kernel32.dll_WinExec
mov eax, dword [0x4b33ac]
fld dword [eax]
mov eax, dword [0x4b37a8]
fdiv dword [eax]
call fcn.00402ad4
mov edx, dword [0x4b31d4]
add eax, dword [edx]
mov edx, dword [0x4b31d4]
cmp eax, dword [edx]
jge 0x4ad66b
mov eax, dword [0x4b31d4]
mov eax, dword [eax]
mov edx, dword [0x4b3218]
cmp eax, dword [edx]
jle 0x4ad67c
mov eax, dword [0x4b3218]
mov eax, dword [eax]
mov edx, dword [ebx]
mov edx, dword [edx + 0x368]
xchg edx, eax
call fcn.00446924
mov edx, dword [ebx]
mov edx, dword [edx + 0x368]
mov edx, dword [edx + 0x40]
mov eax, dword [ebx]
mov eax, dword [eax + 0x364]
sub edx, dword [eax + 0x40]
call fcn.00446970
mov eax, dword [0x4b36d4]
call fcn.004040d0
mov eax, dword [ebx]
mov eax, dword [eax + 0x318]
mov edx, 0x38
call fcn.00446948
mov eax, dword [ebx]
mov eax, dword [eax + 0x31c]
mov edx, 0x39
call fcn.00446948
mov eax, dword [ebx]
mov eax, dword [eax + 0x3a8]
xor edx, edx
call fcn.004470d4
mov eax, dword [0x4b3530]
cmp byte [eax], 0
je 0x4ad6fd
mov eax, dword [ebx]
mov eax, dword [eax + 0x31c]
mov dl, 1
call fcn.004470d4
jmp 0x4ad70c
mov eax, dword [ebx]
mov eax, dword [eax + 0x31c]
xor edx, edx
call fcn.004470d4
mov eax, dword [0x4b36d4]
mov edx, 0x4adbf4
call fcn.00404124
mov cl, 0xdd
mov dl, 0xdd
mov al, 0xdd
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x318]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov cl, 0xdd
mov dl, 0xdd
mov al, 0xdd
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov eax, dword [0x4b31d0]
cmp byte [eax], 0
je 0x4ad8d7
mov eax, dword [0x4b36d4]
mov edx, 0x4adc68
call fcn.00404124
mov eax, dword [ebx]
mov eax, dword [eax + 0x320]
xor edx, edx
call fcn.004473c0
mov eax, dword [0x4b3290]
cmp byte [eax], 0
je 0x4ad7be
mov eax, dword [ebx]
mov eax, dword [eax + 0x318]
mov edx, 0x3d
call fcn.00446948
mov eax, dword [ebx]
mov eax, dword [eax + 0x31c]
mov edx, 0x3e
call fcn.00446948
mov eax, dword [ebx]
mov eax, dword [eax + 0x3a8]
mov dl, 1
call fcn.004470d4
mov cl, 0x32
mov dl, 0x32
mov al, 0x96
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x304]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov eax, dword [0x4b3530]
cmp byte [eax], 0
je 0x4ad859
mov cl, 0x80
mov dl, 0x80
mov al, 0xff
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x318]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov cl, 0x80
mov dl, 0x80
mov al, 0xff
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3a8]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
xor ecx, ecx
xor edx, edx
mov al, 0xff
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov cl, 0x80
mov dl, 0x80
mov al, 0xff
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov eax, dword [0x4b3530]
cmp byte [eax], 0
jne 0x4ad8d7
mov cl, 0x50
mov dl, 0x50
mov al, 0xc8
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x318]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov cl, 0x50
mov dl, 0x50
mov al, 0xc8
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3a8]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
xor ecx, ecx
xor edx, edx
mov al, 0x9b
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov cl, 0x50
mov dl, 0x50
mov al, 0xc8
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov eax, dword [0x4b339c]
cmp byte [eax], 0
je 0x4ad8fa
mov eax, dword [0x4b3290]
cmp byte [eax], 0
jne 0x4ad8fa
mov eax, dword [0x4b36d4]
mov edx, 0x4adc2c
call fcn.00404124
mov edx, dword [0x4b36d4]
mov edx, dword [edx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x318]
call fcn.004471e4
mov edx, dword [0x4b36d4]
mov edx, dword [edx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x31c]
call fcn.004471e4
mov eax, dword [0x4b31d0]
cmp byte [eax], 0
jne 0x4ada70
mov eax, dword [0x4b3478]
cmp byte [eax], 0
je 0x4ad9a8
mov eax, dword [0x4b30cc]
mov byte [eax], 0
mov eax, dword [0x4b32e4]
mov eax, dword [eax]
call fcn.00404390
cmp eax, 0x1f
jl 0x4ad969
mov eax, dword [0x4b32e4]
mov edx, 0x4adc7c
call fcn.00404398
mov eax, dword [0x4b32e4]
mov eax, dword [0x4b32e4]
cmp dword [eax], 0
je 0x4ad987
mov eax, dword [0x4b32e4]
mov edx, 0x4adc4c
call fcn.00404398
mov eax, dword [0x4b32e4]
mov eax, dword [0x4b32e4]
cmp dword [eax], 0
jne 0x4ad9a8
mov eax, dword [0x4b32e4]
mov edx, 0x4adc88
call fcn.00404124
mov eax, dword [0x4b30cc]
mov byte [eax], 1
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x320]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov ecx, dword [0x4b32e4]
mov ecx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x320]
add eax, 0x80
mov edx, 0x4adcb0
call fcn.004043dc
mov eax, dword [ebx]
mov eax, dword [eax + 0x320]
mov dx, 0xffeb
call fcn.004473c0
mov eax, esi
mov edx, dword [0x4b32e4]
mov edx, dword [edx]
call fcn.00404124
mov cl, 0xdd
mov dl, 0xdd
mov al, 0xdd
call fcn.00406c20
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x308]
mov eax, dword [eax + 0x68]
call fcn.0041d8d0
mov eax, dword [ebx]
mov eax, dword [eax + 0x304]
mov eax, dword [eax + 0x68]
mov edx, 0x808080
call fcn.0041d8d0
jmp 0x4ada4c
push esi
mov eax, dword [esi]
call fcn.00404390
mov ecx, eax
dec ecx
mov eax, dword [esi]
xor edx, edx
call fcn.004045f0
mov eax, dword [ebx]
call fcn.00461088
mov edx, dword [esi]
call fcn.0041e864
cmp eax, 0x96
jg 0x4ada38
mov edx, dword [esi]
mov eax, dword [ebx]
mov eax, dword [eax + 0x320]
call fcn.004471e4
mov eax, esi
mov edx, dword [0x4b32a8]
mov edx, dword [edx]
call fcn.00404124
jmp 0x4ada95
push esi
mov eax, dword [esi]
call fcn.00404390
mov ecx, eax
dec ecx
mov eax, dword [esi]
xor edx, edx
call fcn.004045f0
mov eax, dword [ebx]
call fcn.00461088
mov edx, dword [esi]
call fcn.0041e864
cmp eax, 0xfa
jg 0x4ada81
mov eax, dword [ebx]
call fcn.00461088
mov edx, dword [esi]
call fcn.0041e864
cmp eax, 0xf7
jl 0x4adacb
mov eax, esi
mov edx, 0x4adc7c
call fcn.00404398
mov eax, esi
mov edx, 0x4adcdc
call fcn.00404398
mov edx, dword [esi]
mov eax, dword [ebx]
mov eax, dword [eax + 0x314]
call fcn.004471e4
mov eax, dword [0x4b31d0]
cmp byte [eax], 0
je 0x4adb11
lea edx, [ebp - 0xc]
mov eax, dword [0x4b3720]
mov eax, dword [eax]
call fcn.00408b64
mov edx, dword [ebp - 0xc]
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
call fcn.004471e4
jmp 0x4adb20
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
xor edx, edx
call fcn.004471e4
mov eax, dword [ebx]
call fcn.00461088
mov edx, dword [esi]
call fcn.0041e864
mov edx, eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x314]
add edx, dword [eax + 0x40]
add edx, 2
mov eax, dword [ebx]
mov eax, dword [eax + 0x3b0]
call fcn.00446924
mov ecx, dword [0x4b32a8]
mov ecx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x314]
add eax, 0x80
mov edx, 0x4adce8
call fcn.004043dc
mov ecx, dword [0x4b32a8]
mov ecx, dword [ecx]
mov eax, dword [ebx]
mov eax, dword [eax + 0x35c]
add eax, 0x80
mov edx, 0x4adce8
call fcn.004043dc
mov eax, dword [0x4b339c]
cmp byte [eax], 0
jne 0x4adba4
mov eax, dword [0x4b3530]
mov al, byte [eax]
xor al, 1
mov edx, dword [0x4b3530]
mov byte [edx], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4adbc6
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004040f4
ret