Function at 0x180057080
Capabilities:
Create thread
Get common file path

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3f0]
sub rsp, 0x4f0
mov rax, qword [0x1800a2078]
xor rax, rsp
mov qword [rbp + 0x3e0], rax
mov qword [rbp - 0x80], r9
mov esi, r8d
mov dword [rsp + 0x50], r8d
mov rbx, rdx
mov qword [rsp + 0x60], rdx
mov r13, rcx
mov rax, qword [rbp + 0x450]
mov qword [rbp - 0x70], rax
movdqa xmm0, xmmword [0x180097c50]
movdqa xmmword [rbp + 0x1d0], xmm0
mov byte [rbp + 0x1c0], 0
movdqa xmm1, xmm0
movdqa xmmword [rbp + 0x1f0], xmm0
mov byte [rbp + 0x1e0], 0
movdqa xmmword [rbp + 0x210], xmm0
mov byte [rbp + 0x200], 0
movdqa xmmword [rbp + 0x240], xmm0
mov byte [rbp + 0x230], 0
movdqa xmmword [rbp + 0x260], xmm0
mov byte [rbp + 0x250], 0
xor ecx, ecx
mov qword [rbp + 0x58], rcx
mov word [rbp + 0x60], cx
movdqu xmmword [rbp + 0x72], xmm0
mov byte [rbp + 0x62], cl
mov qword [rbp + 0x28], rcx
mov word [rbp + 0x30], cx
movdqu xmmword [rbp + 0x42], xmm0
mov byte [rbp + 0x32], cl
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rcx
movdqa xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], rcx
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x98], rcx
mov qword [rbp + 0xa0], rcx
mov ecx, 0x30
call fcn.1800840a8
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp + 0x98], rax
xor r10d, r10d
mov qword [rbp + 0xa8], r10
xorps xmm2, xmm2
movsd qword [rbp + 0xb0], xmm2
mov qword [rbp + 0xb8], r10
mov edx, 1
mov dword [rbp + 0xc0], edx
mov qword [rbp + 0xc8], r10
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0xe0], xmm1
movdqa xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x100], r10
mov qword [rbp + 0x108], 0xffffffffffffffff
mov dword [rbp + 0x110], r10d
xor eax, eax
movups xmmword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x128], xmm0
movups xmmword [rbp + 0x138], xmm0
movups xmmword [rbp + 0x148], xmm0
mov qword [rbp + 0x158], rax
movdqa xmm0, xmmword [0x180097c50]
movdqa xmmword [rbp + 0x170], xmm0
mov byte [rbp + 0x160], al
mov word [rbp + 0x180], r10w
mov dword [rbp + 0x184], r10d
mov qword [rbp + 0x188], r10
xorps xmm0, xmm0
movaps xmmword [rbp + 0x190], xmm0
movsd qword [rbp + 0x1a0], xmm2
mov byte [rbp + 0x1a8], al
mov qword [rbp + 0x1ac], r10
mov edi, esi
imul eax, esi, 0x60c
mov dword [rsp + 0x58], eax
movzx r8d, byte [rsp + 0x48]
movzx r9d, byte [rsp + 0x48]
mov byte [rsp + 0x40], r8b
mov byte [rsp + 0x41], r9b
cmp esi, eax
ja 0x1800575b1
lea ecx, [rdx + 0x2d]
lea r10d, [rdx + 0x68]
lea r11d, [rdx + 0x64]
mov rsi, qword [rsp + 0x60]
mov r14d, dword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov r12d, dword [rsp + 0x58]
mov eax, 0x74
cmp edi, 0x150ea
ja 0x180057501
je 0x1800574e8
cmp edi, 0x9559
ja 0x18005745f
je 0x1800574ab
mov eax, edi
sub eax, 0x98
je 0x18005741d
sub eax, 0x62
je 0x18005740e
sub eax, 0x4a21
je 0x180057321
cmp eax, 0x9db
jne 0x18005759d
mov dword [rbp + 0x2b3], 0x74756b
jmp 0x18005759d
lea rax, [0x18000b6c0]
mov qword [rbp - 0x78], rax
mov rax, qword [rbp - 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea r9, [rbp + 0x270]
mov r8d, 0xec
mov rdx, qword [0x1800a2420]
xor ecx, ecx
call fcn.180064880
test eax, eax
jne 0x18005757d
nop word [rax + rax]
mov byte [rsp + 0x5c], 0
mov esi, dword [rsp + 0x5c]
lea rcx, [rbp + 0x108]
call fcn.18000d8a0
mov rbx, qword [rbp + 0xf0]
test rbx, rbx
je 0x180057b93
mov rdi, qword [rbp + 0xf8]
cmp rbx, rdi
je 0x1800573b9
mov rcx, rbx
call fcn.1800347b0
add rbx, 0x20
cmp rbx, rdi
jne 0x1800573a1
mov rbx, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0x100]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x1800573ec
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180057bd1
mov rcx, rbx
call fcn.1800840e4
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xf0], xmm0
xor r14d, r14d
mov qword [rbp + 0x100], r14
jmp 0x180057b96
mov dword [rbp + 0x2b0], 0x6c6f70
jmp 0x18005759d
mov eax, dword [r13]
mov dword [rsp + 0x78], eax
mov byte [rsp + 0x48], 1
mov dword [rsp + 0x70], 0x488b21e
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
mov r9d, 0xde
lea r8, [rsp + 0x78]
mov rdx, qword [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.180016ee0
jmp 0x18005757d
cmp edi, 0xa8f2
je 0x1800574d9
cmp edi, 0xdf97
je 0x18005748f
cmp edi, 0xfcee
jne 0x18005759d
mov word [rbp + 0x2b9], ax
mov word [rbp + 0x2ba], r10w
jmp 0x18005759d
mov eax, 0x10b
cmp eax, 0x10b
je 0x1800577ae
add eax, 0xba
cmp eax, 0x1c5
jb 0x180057494
mov qword [rsp + 0x20], r13
mov r9, qword [rbp - 0x70]
lea r8, [rbp + 0x270]
mov rdx, qword [0x1800a2420]
mov ecx, 0x15
call fcn.180010ae0
test eax, eax
jne 0x180057370
jmp 0x18005757d
mov dword [rbp + 0x2b6], 0x696c69
jmp 0x18005759d
mov word [rbp + 0x2bb], r11w
mov eax, 0x73
mov word [rbp + 0x2bc], ax
jmp 0x18005759d
cmp edi, 0x2f4d6
ja 0x18005770b
je 0x1800576f5
cmp edi, 0x1a4e6
je 0x1800576e9
cmp edi, 0x1f8e2
je 0x1800576da
cmp edi, 0x24cde
je 0x18005760b
cmp edi, 0x2a0da
jne 0x18005759d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
lea rax, [rbp + 0x2b0]
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180057560
lea rdx, [rbp + 0x2b0]
lea rcx, [rbp + 0x1c0]
call fcn.18003c040
mov edx, 1
movzx r8d, byte [rsp + 0x40]
movzx r9d, byte [rsp + 0x41]
mov ecx, PathMakeUniqueName
lea r11d, [rcx + 0x37]
mov r10d, 0x69
imul eax, dword [rsp + 0x50], 0x56
add edi, eax
cmp edi, dword [rsp + 0x58]
jbe 0x1800572c1
xor r10d, r10d
mov ebx, dword [rsp + 0x50]
lea r12d, [rbx - 0x11]
mov dword [rsp + 0x70], r12d
cmp ebx, r12d
jbe case.0x180057609.0
lea r14d, [rbx - 0xea]
mov dword [rsp + 0x48], r14d
lea rdx, [0x180000000]
lea r11, [0x1800134e0]
movzx r15d, byte [rsp + 0x48]
mov edi, dword [rsp + 0x58]
mov esi, dword [rsp + 0x58]
mov r13, qword [rsp + 0x60]
cmp r14d, 0x10
ja case.default.0x180057609
mov ecx, dword [rdx + r14*4 + 0x57d9c]
add rcx, rdx
jmp rcx
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
mov r9d, 0xef
xor r8d, r8d
lea rdx, [0x18009d188]
xor ecx, ecx
call fcn.180016ee0
test al, al
jne 0x18005757d
mov ebx, 0x6e
nop dword [rax + rax]
mov eax, ebx
sub eax, 0x6e
je 0x1800576b9
sub eax, 1
je 0x1800576b0
sub eax, 1
je 0x180057676
sub eax, 1
je 0x180057661
cmp eax, 1
je case.0x180057609.0
jmp 0x1800576c0
lea rcx, [rbp]
call qword [sym.imp.ADVAPI32.dll_GetSecurityDescriptorLength]
mov edx, 1
mov dword [rsp + 0x5c], edx
jmp 0x1800576c5
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x20], rax
lea rax, [rbp + 0x2d0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
mov r9d, r14d
mov r8, rsi
mov edx, r12d
mov rcx, r15
call qword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirA]
jmp 0x1800576c0
xor eax, eax
mov esi, eax
mov r14d, eax
jmp 0x1800576c0
xor r15d, r15d
lea r12d, [r15 + 0x36]
mov edx, 1
inc ebx
cmp ebx, 0x73
jb 0x180057640
mov rbx, qword [rsp + 0x60]
jmp 0x180057582
mov dword [rbp + 0x2be], 0x74656e
jmp 0x180057597
mov word [rbp + 0x2bd], cx
jmp 0x18005759d
mov r8, rdx
lea rdx, [0x180089d8c]
lea rcx, [rbp + 0x1e0]
jmp 0x180057578
cmp edi, 0x348d2
je 0x180057798
cmp edi, 0x39cce
je 0x180057774
cmp edi, 0x3f0ca
jne 0x18005759d
mov dword [rsp + 0x20], 0xa6
lea r9, [rbp + 0x1c0]
lea r8, [rbp + 0x230]
xor edx, edx
xor ecx, ecx
call fcn.180040320
mov eax, 0x1bb
mov word [rsp + 0x48], ax
lea r9, [rsp + 0x48]
mov r8d, 0xc6
lea rdx, [rbp + 0x58]
lea rcx, [0x18009d1e8]
call fcn.18006b430
jmp 0x18005757d
mov eax, 0x1bb
mov word [rbp + 0x220], ax
lea r8, [rbp + 0x200]
mov edx, 0xd2
xor ecx, ecx
call fcn.180021630
jmp 0x18005757d
mov r8b, 1
mov byte [rsp + 0x40], r8b
movzx r9d, r8b
mov byte [rsp + 0x41], r8b
jmp 0x18005759d
mov byte [rsp + 0x5c], 1
jmp case.0x180057609.0
mov qword [rsp + 0x28], r10
mov dword [rsp + 0x20], r10d
lea r9, [rbp - 0x10]
lea r8, [0x180020e40]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rbp - 0x70], rax
jmp 0x180057b5a
mov rax, qword [rbp - 0x70]
test rax, rax
jne 0x180057939
mov r12d, 0x7d
cmp r12d, 0x2c0
ja 0x180057839
je 0x18005790d
cmp r12d, 0x7d
je 0x18005790d
cmp r12d, 0x13e
je 0x180057831
cmp r12d, 0x1ff
jne 0x18005790d
call qword [sym.imp.WINMM.dll_midiInGetNumDevs]
mov dword [rsp + 0x78], eax
jmp 0x18005790d
mov r15b, 1
jmp 0x18005790d
cmp r12d, 0x381
je 0x180057900
cmp r12d, 0x442
je 0x180057866
cmp r12d, 0x503
jne 0x18005790d
mov esi, 1
jmp 0x180057379
test r15b, r15b
je 0x18005790d
mov r14d, 0x122
mov eax, r14d
sub eax, 0x122
je 0x1800578df
sub eax, 0x16
je 0x1800578c6
cmp eax, 0x16
jne 0x1800578e7
test r15b, r15b
je 0x1800578e7
mov ebx, 0x12c
mov eax, ebx
sub eax, 0x12b
je 0x1800578a8
cmp eax, 1
jne 0x1800578ba
mov edi, 0x104
jmp 0x1800578ba
mov r8d, edi
lea rdx, [rbp + 0x2d0]
mov ecx, esi
call qword [sym.imp.WINMM.dll_midiInGetErrorTextA]
dec ebx
cmp ebx, 0x12a
ja 0x180057893
jmp 0x1800578e7
lea rdx, [rsp + 0x58]
mov rcx, r13
call qword [sym.imp.WINMM.dll_midiInGetID]
mov esi, eax
test eax, eax
jne 0x1800578e7
xor r15b, r15b
jmp 0x1800578e7
mov r13, r10
mov dword [rsp + 0x58], r10d
add r14d, 0x16
cmp r14d, 0x164
mov r10d, 0
jb 0x180057875
jmp 0x18005790d
movzx r15d, r15b
cmp dword [rsp + 0x78], 0
cmove r15d, r10d
add r12d, 0xc1
cmp r12d, 0x5c4
mov r10d, 0
jb 0x1800577f3
mov r14d, dword [rsp + 0x48]
mov r12d, dword [rsp + 0x70]
mov rax, qword [rbp - 0x70]
mov ebx, dword [rsp + 0x50]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180057b5a
mov ecx, r10d
movzx eax, r8b
cmp qword [rbp - 0x78], 0
cmovne ecx, eax
movzx r8d, cl
mov byte [rsp + 0x40], cl
jmp case.default.0x180057609
test r8b, r8b
je case.default.0x180057609
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.SHELL32.dll_ILFree]
jmp 0x180057b5a
mov r8d, 0x8d
lea rdx, [rbp + 0x90]
xor ecx, ecx
call fcn.18006eb10
jmp 0x180057b5a
lea r9, [0x18009d180]
lea r8, [rbp - 0x60]
lea rdx, [rbp + 0x90]
mov ecx, 0xde
call fcn.180010960
jmp 0x180057b5a
test r9b, r9b
je case.default.0x180057609
mov ebx, 0x59
mov eax, ebx
sub eax, 0x59
je 0x1800579db
cmp eax, 1
jne 0x1800579e5
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x1800579e5
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_LocalLock]
inc ebx
cmp ebx, 0x5b
jb 0x1800579c3
mov ebx, dword [rsp + 0x50]
jmp 0x180057b5a
mov edx, 0x104
mov ecx, 0x40
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov qword [rbp - 0x80], rax
jmp 0x180057b5a
lea rcx, [rsp + 0x68]
call qword [sym.imp.SHELL32.dll_ILClone]
mov qword [rbp - 0x78], rax
jmp 0x180057b5a
mov qword [rsp + 0x60], r11
mov edx, 0x55
lea rcx, [rsp + 0x60]
call fcn.18000e030
xor r10d, r10d
mov ecx, r10d
movzx eax, byte [rsp + 0x41]
cmp qword [rbp - 0x80], rcx
cmovne ecx, eax
movzx r9d, cl
mov byte [rsp + 0x41], cl
jmp 0x180057b63
lea rax, [rbp + 0x28]
mov qword [rsp + 0x60], rax
mov rax, qword [rbp - 0x58]
cmp rax, qword [rbp - 0x50]
je 0x180057a76
lea rcx, [rbp + 0x28]
mov qword [rax], rcx
add qword [rbp - 0x58], 8
jmp 0x180057a88
lea r8, [rsp + 0x60]
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp - 0x60]
call fcn.18000b820
mov eax, dword [0x18009d230]
mov dword [rsp + 0x50], eax
lea r9, [rbp - 0x60]
xor r8d, r8d
lea edx, [r8 + 9]
lea rcx, [rsp + 0x50]
call fcn.180019650
jmp 0x180057b5a
mov dword [rsp + 0x5c], r10d
jmp case.default.0x180057609
xor eax, eax
mov word [rsp + 0x68], ax
mov byte [rsp + 0x6a], al
jmp case.default.0x180057609
mov eax, 0x1bb
mov word [rsp + 0x48], ax
lea r9, [rsp + 0x48]
lea r8, [0x18009d208]
mov edx, 0xd9
lea rcx, [rbp + 0x28]
call fcn.18004a430
jmp 0x180057b5a
lea rax, [rbp - 0x60]
mov qword [rbp + 0x2b0], rax
mov eax, dword [0x18009d230]
mov dword [rbp + 0x2b8], eax
mov eax, dword [0x18009d234]
mov dword [rbp + 0x2bc], eax
movaps xmm0, xmmword [rbp + 0x2b0]
movdqa xmmword [rbp - 0x10], xmm0
jmp case.default.0x180057609
lea rdx, [rbp - 0x60]
mov ecx, 0xb7
call fcn.18001eb00
lea rax, [rbp + 0x58]
mov qword [rsp + 0x60], rax
mov rdx, qword [rbp - 0x58]
cmp rdx, qword [rbp - 0x50]
je 0x180057b4c
lea rax, [rbp + 0x58]
mov qword [rdx], rax
add qword [rbp - 0x58], 8
jmp 0x180057b5a
lea r8, [rsp + 0x60]
lea rcx, [rbp - 0x60]
call fcn.18000b820
xor r10d, r10d
movzx r9d, byte [rsp + 0x41]
movzx r8d, byte [rsp + 0x40]
lea rdx, [0x180000000]
lea r11, [0x1800134e0]
dec ebx
mov dword [rsp + 0x50], ebx
dec r14d
mov dword [rsp + 0x48], r14d
cmp ebx, r12d
jbe case.0x180057609.0
jmp 0x1800575f4
xor r14d, r14d
mov rcx, qword [rbp + 0xd8]
test rcx, rcx
je 0x180057bef
mov rdx, qword [rbp + 0xe8]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057bd8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180057bd8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800840e4
mov qword [rbp + 0xd8], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xe0], xmm0
lea rcx, [rbp + 0x98]
call fcn.18000d7d0
nop
mov rbx, qword [rbp - 0x48]
test rbx, rbx
je 0x180057c8d
mov rdi, qword [rbp - 0x40]
cmp rbx, rdi
je 0x180057c27
mov rcx, rbx
call fcn.18000d0e0
add rbx, 0x28
cmp rbx, rdi
jne 0x180057c12
mov rbx, qword [rbp - 0x48]
mov rcx, qword [rbp - 0x38]
sub rcx, rbx
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
mov rax, rbx
cmp rdx, 0x1000
jb 0x180057c79
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180057c79
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.1800840e4
mov qword [rbp - 0x48], r14
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x40], xmm0
mov rdx, qword [rbp - 0x60]
test rdx, rdx
je 0x180057cb6
mov r8, qword [rbp - 0x50]
sub r8, rdx
sar r8, 3
lea rcx, [rbp - 0x60]
call fcn.18004aa00
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], r14
mov rdx, qword [rbp + 0x4a]
cmp rdx, 0x10
jb 0x180057cf4
inc rdx
mov rcx, qword [rbp + 0x32]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057cef
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180057cef
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800840e4
movdqa xmm0, xmmword [0x180097c50]
movdqu xmmword [rbp + 0x42], xmm0
mov byte [rbp + 0x32], 0
mov rdx, qword [rbp + 0x7a]
cmp rdx, 0x10
jb 0x180057d43
inc rdx
mov rcx, qword [rbp + 0x62]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180057d3e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180057d3e
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800840e4
movdqa xmm0, xmmword [0x180097c50]
movdqu xmmword [rbp + 0x72], xmm0
mov byte [rbp + 0x62], 0
lea rcx, [rbp + 0x230]
call fcn.18000d440
nop
lea rcx, [rbp + 0x1c0]
call fcn.18000d4f0
mov eax, esi
mov rcx, qword [rbp + 0x3e0]
xor rcx, rsp
call fcn.180084890
mov rbx, qword [rsp + 0x540]
add rsp, 0x4f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret