Function at 0x403264
Capabilities:
Hide graphical window

Disassembly:
mov eax, 0x18bc0
call fcn.00404558
nop
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], r9
call sub.RTFIR.dll_Pa_Initialize
cmp eax, 0
je 0x403294
lea rax, str.ERROR:_Could_not_initialize_PortAudio.__n
mov r10, rax
mov rcx, r10
call section..text
call sub.RTFIR.dll_Pa_GetDeviceCount
cmp eax, 0
jg 0x4032b4
lea rax, str.ERROR:_No_Devices_Found.__n
mov r10, rax
mov rcx, r10
call section..text
mov eax, 0xbb80
mov r11, rax
lea rax, str.SAMPLERATE__d__n
mov r10, rax
mov rcx, r10
mov rdx, r11
call section..text
call sub.RTFIR.dll_PaUtil_InitializeClock
call sub.RTFIR.dll_PaUtil_GetTime
movq qword [0x004060d0], xmm0
lea rax, [0x004060d8]
mov qword [rbp - 0x10], rax
lea rax, [0x00406740]
mov qword [rbp - 8], rax
mov eax, 0
mov dword [rbp - 0x14], eax
mov eax, dword [rbp - 0x14]
cmp eax, 2
jge 0x403401
jmp 0x403320
mov eax, dword [rbp - 0x14]
mov rcx, rax
add eax, 1
mov dword [rbp - 0x14], eax
jmp 0x403301
mov eax, dword [rbp - 0x14]
movsxd rax, eax
shl rax, 3
lea rcx, [rbp - 0x10]
add rcx, rax
mov rax, qword [rcx]
mov qword [rbp - 0x20], rax
movabs rax, 0x668
mov r8, rax
mov eax, 0
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
movabs rax, 0x668
mov r8, rax
mov eax, 0
mov r11, rax
mov rax, qword [rbp - 0x20]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
mov rax, qword [rbp - 0x20]
add rax, 0x10
mov ecx, 0xffffffff
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
add rax, 0x14
mov ecx, 0
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
add rax, 0x18
add rax, 0x644
mov ecx, 0
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
add rax, 0x18
add rax, 0x640
mov ecx, 0
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
add rax, 0x18
add rax, 0x648
mov ecx, 0xffffffff
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
add rax, 0x18
add rax, 0x64c
mov ecx, 0xffffffff
mov dword [rax], ecx
jmp 0x403312
mov eax, 0xffffffff
mov dword [0x00406da8], eax
mov eax, 0
mov dword [0x004070d0], eax
mov eax, 0
mov dword [0x004070cc], eax
call fcn.004013d9
movabs rax, 0x50
mov r8, rax
mov eax, 0
mov r11, rax
lea rax, [rbp - 0x70]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
mov eax, 0x50
mov dword [rbp - 0x70], eax
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x58], rax
lea rax, [0x00402b37]
mov qword [rbp - 0x68], rax
lea rax, [0x004056c8]
mov qword [rbp - 0x30], rax
movabs rax, 5
mov qword [rbp - 0x40], rax
movabs rax, 0x7f00
mov r11, rax
movabs rax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_LoadCursorA
mov qword [rbp - 0x48], rax
lea rax, [rbp - 0x70]
mov r10, rax
mov rcx, r10
call sub.user32.dll_RegisterClassExA
movzx eax, ax
cmp eax, 0
je 0x4034cb
jmp 0x403509
mov eax, 0
mov r9, rax
lea rax, str.Error
mov r8, rax
lea rax, str.Failed_to_register_window_class.
mov r11, rax
movabs rax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_MessageBoxA
mov eax, 0
jmp 0x404148
movabs rax, 0
mov qword [rsp + 0x58], rax
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x50], rax
movabs rax, 0
mov qword [rsp + 0x48], rax
movabs rax, 0
mov qword [rsp + 0x40], rax
mov eax, dword [0x00405614]
mov qword [rsp + 0x38], rax
mov eax, dword [0x00405610]
mov qword [rsp + 0x30], rax
mov eax, 0xc8
mov qword [rsp + 0x28], rax
mov eax, 0x12c
mov qword [rsp + 0x20], rax
mov eax, 0x80ca0000
mov r9, rax
lea rax, str.RTFIR
mov r8, rax
lea rax, str.mainwindow
mov r11, rax
mov eax, 0x40000
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov qword [0x00407160], rax
movabs rax, 0x2c
mov r8, rax
mov eax, 0
mov r11, rax
lea rax, [rbp - 0x9c]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
mov eax, 0x2c
mov dword [rbp - 0x9c], eax
mov eax, dword [0x00405618]
mov dword [rbp - 0x98], eax
mov eax, 0
mov ecx, dword [0x0040561c]
sub eax, ecx
mov dword [rbp - 0x94], eax
mov eax, 1
mov word [rbp - 0x90], ax
mov eax, 0x20
mov word [rbp - 0x8e], ax
mov eax, 0
mov dword [rbp - 0x8c], eax
mov rax, qword [0x00407160]
mov r10, rax
mov rcx, r10
call sub.user32.dll_GetDC
mov qword [0x00407168], rax
mov eax, 0
mov qword [rsp + 0x28], rax
movabs rax, 0
mov qword [rsp + 0x20], rax
lea rax, [0x00407180]
mov r9, rax
mov eax, 0
mov r8, rax
lea rax, [rbp - 0x9c]
mov r11, rax
mov rax, qword [0x00407168]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.gdi32.dll_CreateDIBSection
mov qword [0x00407178], rax
mov rax, qword [0x00407168]
mov r10, rax
mov rcx, r10
call sub.gdi32.dll_CreateCompatibleDC
mov qword [0x00407170], rax
mov rax, qword [0x00407178]
mov r11, rax
mov rax, qword [0x00407170]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.gdi32.dll_SelectObject
mov eax, 1
mov r11, rax
mov rax, qword [0x00407170]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.gdi32.dll_SetBkMode
movabs rax, 0
mov qword [rsp + 0x58], rax
movabs rax, 0
mov qword [rsp + 0x50], rax
movabs rax, 0x22b
mov qword [rsp + 0x48], rax
mov rax, qword [0x00407160]
mov qword [rsp + 0x40], rax
mov eax, 0x1f40
mov qword [rsp + 0x38], rax
mov eax, 0x1ea
mov qword [rsp + 0x30], rax
mov eax, 0xa
mov qword [rsp + 0x28], rax
mov eax, 0xa
mov qword [rsp + 0x20], rax
mov eax, 0x50010003
mov r9, rax
movabs rax, 0
mov r8, rax
lea rax, [0x0040570b]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov qword [0x004071c8], rax
movabs rax, 0
mov qword [rsp + 0x58], rax
movabs rax, 0
mov qword [rsp + 0x50], rax
movabs rax, 0x22c
mov qword [rsp + 0x48], rax
mov rax, qword [0x00407160]
mov qword [rsp + 0x40], rax
mov eax, 0x1f40
mov qword [rsp + 0x38], rax
mov eax, 0x1ea
mov qword [rsp + 0x30], rax
mov eax, 0x28
mov qword [rsp + 0x28], rax
mov eax, 0xa
mov qword [rsp + 0x20], rax
mov eax, 0x50010003
mov r9, rax
movabs rax, 0
mov r8, rax
lea rax, [0x00405714]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov qword [0x004071d0], rax
movabs rax, 0
mov qword [rsp + 0x58], rax
movabs rax, 0
mov qword [rsp + 0x50], rax
movabs rax, 0x7b
mov qword [rsp + 0x48], rax
mov rax, qword [0x00407160]
mov qword [rsp + 0x40], rax
mov eax, 0x35
mov qword [rsp + 0x38], rax
mov eax, 0x4d
mov qword [rsp + 0x30], rax
mov eax, 0xa
mov qword [rsp + 0x28], rax
mov eax, 0x1fb
mov qword [rsp + 0x20], rax
mov eax, 0x50010001
mov r9, rax
lea rax, str.Play__
mov r8, rax
lea rax, str.Button
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov qword [0x004071d8], rax
mov eax, 0
mov dword [rbp - 0xa0], eax
mov eax, dword [rbp - 0xa0]
cmp eax, 0xa
jge 0x403e26
jmp 0x4038d3
mov eax, dword [rbp - 0xa0]
mov rcx, rax
add eax, 1
mov dword [rbp - 0xa0], eax
jmp 0x4038ab
mov eax, 0x6f
mov byte [rbp - 0xa7], al
mov eax, 0x75
mov byte [rbp - 0xa6], al
mov eax, 0x74
mov byte [rbp - 0xa5], al
mov eax, 0x20
mov byte [rbp - 0xa4], al
mov eax, 0x6e
mov byte [rbp - 0xa3], al
mov eax, 0x6e
mov byte [rbp - 0xa2], al
mov eax, 0
mov byte [rbp - 0xa1], al
mov eax, dword [rbp - 0xa0]
add eax, 1
cmp eax, 0xa
je 0x403954
mov eax, dword [rbp - 0xa0]
add eax, 0x30
add eax, 1
mov byte [rbp - 0xa3], al
mov eax, 0
mov byte [rbp - 0xa2], al
jmp 0x403975
mov eax, 0x31
mov byte [rbp - 0xa3], al
mov eax, 0x30
mov byte [rbp - 0xa2], al
mov eax, 0
mov byte [rbp - 0xa1], al
mov eax, dword [rbp - 0xa0]
mov ecx, 0x1e
imul eax, ecx
add eax, 0x69
mov ecx, dword [rbp - 0xa0]
add ecx, 0x6e
movsxd rcx, ecx
movabs rdx, 0
mov qword [rsp + 0x58], rdx
movabs rdx, 0
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rcx
mov rcx, qword [0x00407160]
mov qword [rsp + 0x40], rcx
mov ecx, 0x50
mov qword [rsp + 0x38], rcx
mov ecx, 0x32
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov eax, 0x32
mov qword [rsp + 0x20], rax
mov eax, 0x50000000
mov r9, rax
lea rax, [rbp - 0xa7]
mov r8, rax
lea rax, [0x0040572b]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x004071e0]
add rcx, rax
mov eax, dword [rbp - 0xa0]
mov edx, 0x1e
imul eax, edx
add eax, 0x64
mov edx, dword [rbp - 0xa0]
add edx, 0xdc
movsxd rdx, edx
mov qword [rbp - 0xb0], rcx
movabs rcx, 0
mov qword [rsp + 0x58], rcx
movabs rcx, 0
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rdx
mov rcx, qword [0x00407160]
mov qword [rsp + 0x40], rcx
mov ecx, 0x50
mov qword [rsp + 0x38], rcx
mov ecx, 0x5a
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov eax, 0x64
mov qword [rsp + 0x20], rax
mov eax, 0x50010003
mov r9, rax
movabs rax, 0
mov r8, rax
lea rax, [0x00405732]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov rcx, qword [rbp - 0xb0]
mov qword [rcx], rax
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x004071e0]
add rcx, rax
lea rax, str.None
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x143
mov r11, rax
mov rax, qword [rcx]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x004071e0]
add rcx, rax
movabs rax, 0
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x14e
mov r11, rax
mov rax, qword [rcx]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x004071e0]
add rcx, rax
mov eax, 0
mov r11, rax
mov rax, qword [rcx]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_EnableWindow
mov eax, dword [rbp - 0xa0]
mov ecx, 0x1e
imul eax, ecx
add eax, 0x69
mov ecx, dword [rbp - 0xa0]
add ecx, 0x78
movsxd rcx, ecx
movabs rdx, 0
mov qword [rsp + 0x58], rdx
movabs rdx, 0
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rcx
mov rcx, qword [0x00407160]
mov qword [rsp + 0x40], rcx
mov ecx, 0x50
mov qword [rsp + 0x38], rcx
mov ecx, 0x32
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov eax, 0xfa
mov qword [rsp + 0x20], rax
mov eax, 0x50000000
mov r9, rax
lea rax, str.filter
mov r8, rax
lea rax, str.static
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x00407230]
add rcx, rax
mov eax, dword [rbp - 0xa0]
mov edx, 0x1e
imul eax, edx
add eax, 0x64
mov edx, dword [rbp - 0xa0]
add edx, 0x14a
movsxd rdx, edx
mov qword [rbp - 0xb8], rcx
movabs rcx, 0
mov qword [rsp + 0x58], rcx
movabs rcx, 0
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rdx
mov rcx, qword [0x00407160]
mov qword [rsp + 0x40], rcx
mov ecx, 0x50
mov qword [rsp + 0x38], rcx
mov ecx, 0x82
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov eax, 0x12c
mov qword [rsp + 0x20], rax
mov eax, 0x50010003
mov r9, rax
movabs rax, 0
mov r8, rax
lea rax, str.ComboBox
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_CreateWindowExA
mov rcx, qword [rbp - 0xb8]
mov qword [rcx], rax
mov eax, 0
mov dword [rbp - 0xbc], eax
mov eax, dword [rbp - 0xbc]
movsxd rax, eax
shl rax, 3
lea rcx, [0x004070e8]
add rcx, rax
mov rax, qword [rcx]
cmp rax, 0
je 0x403da7
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x00407230]
add rcx, rax
mov eax, dword [rbp - 0xbc]
mov rdx, rax
add eax, 1
mov dword [rbp - 0xbc], eax
movsxd rdx, edx
shl rdx, 3
lea rax, [0x004070e8]
add rax, rdx
mov rdx, qword [rax]
mov rax, qword [rdx]
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x143
mov r11, rax
mov rax, qword [rcx]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
jmp 0x403d15
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x00407230]
add rcx, rax
movabs rax, 0
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x14e
mov r11, rax
mov rax, qword [rcx]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
mov eax, dword [rbp - 0xa0]
movsxd rax, eax
shl rax, 3
lea rcx, [0x00407230]
add rcx, rax
mov eax, 0
mov r11, rax
mov rax, qword [rcx]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_EnableWindow
jmp 0x4038bf
mov eax, 5
mov r11, rax
mov rax, qword [0x00407160]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_ShowWindow
mov eax, 0
mov dword [rbp - 0x18b48], eax
call sub.RTFIR.dll_Pa_GetDeviceCount
mov ecx, dword [rbp - 0x18b48]
cmp ecx, eax
jge 0x40404f
jmp 0x403e7a
mov eax, dword [rbp - 0x18b48]
mov rcx, rax
add eax, 1
mov dword [rbp - 0x18b48], eax
jmp 0x403e4e
mov eax, dword [rbp - 0x18b48]
mov r10, rax
mov rcx, r10
call sub.RTFIR.dll_Pa_GetDeviceInfo
mov qword [rbp - 0x18b50], rax
mov rax, qword [rbp - 0x18b50]
add rax, 0x10
mov ecx, dword [rax]
mov r10, rcx
mov rcx, r10
call sub.RTFIR.dll_Pa_GetHostApiInfo
add rax, 8
mov rcx, qword [rax]
mov r11, rcx
lea rax, [rbp - 0x4a4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_strcpy
lea rax, str.Windows
mov r11, rax
lea rax, [rbp - 0x4a4]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_strstr
cmp rax, 0
je 0x403ef7
jmp 0x403f03
lea rax, [rbp - 0x4a4]
jmp 0x403f0a
lea rax, [rbp - 0x49c]
mov rcx, qword [rbp - 0x18b50]
add rcx, 8
mov rdx, qword [rcx]
mov qword [rsp + 0x20], rdx
mov r9, rax
mov eax, dword [rbp - 0x18b48]
mov r8, rax
lea rax, str.__3d______s______s
mov r11, rax
lea rax, [rbp - 0x18b44]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_sprintf
mov rax, qword [rbp - 0x18b50]
add rax, 0x14
mov ecx, dword [rax]
cmp ecx, 0
je 0x403f92
lea rax, [rbp - 0x18b44]
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x143
mov r11, rax
mov rax, qword [0x004071c8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
mov rax, qword [rbp - 0x18b50]
add rax, 0x18
mov ecx, dword [rax]
cmp ecx, 0
je 0x403fdc
lea rax, [rbp - 0x18b44]
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x143
mov r11, rax
mov rax, qword [0x004071d0]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
movabs rax, 0
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x14e
mov r11, rax
mov rax, qword [0x004071c8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
movabs rax, 0
mov r9, rax
movabs rax, 0
mov r8, rax
mov eax, 0x14e
mov r11, rax
mov rax, qword [0x004071d0]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_SendMessageA
jmp 0x403e66
call sub.RTFIR.dll_PaUtil_GetTime
movq qword [rbp - 0x18b58], xmm0
mov eax, dword [0x00405620]
cmp eax, 0
je 0x404070
jmp 0x404143
mov eax, 1
mov qword [rsp + 0x20], rax
mov eax, 0
mov r9, rax
mov eax, 0
mov r8, rax
movabs rax, 0
mov r11, rax
lea rax, [0x00407198]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_PeekMessageA
cmp eax, 0
je 0x4040fd
mov eax, dword [0x004071a0]
cmp eax, 0x12
jne 0x4040d4
mov eax, 1
mov dword [0x00405620], eax
jmp 0x4040f8
lea rax, [0x00407198]
mov r10, rax
mov rcx, r10
call sub.user32.dll_TranslateMessage
lea rax, [0x00407198]
mov r10, rax
mov rcx, r10
call sub.user32.dll_DispatchMessageA
jmp 0x40413e
call sub.RTFIR.dll_PaUtil_GetTime
subsd xmm0, qword [rbp - 0x18b58]
movq xmm1, qword [0x00405778]
comisd xmm0, xmm1
jp 0x404139
jbe 0x404139
call fcn.00401dbe
call sub.RTFIR.dll_PaUtil_GetTime
movq qword [rbp - 0x18b58], xmm0
jmp 0x40413e
call fcn.00402a38
jmp 0x40405c
mov eax, 0
leave
ret