Function at 0x180015930
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x30
test byte [0x180058af0], 0x40
mov rdi, rdx
mov rbx, rcx
je 0x180015975
mov eax, dword [rdx + 0xc]
lea r9, str.PSR_change:_psr_u___u_n
mov dword [rsp + 0x28], eax
lea rcx, str.C:CodeklcpLAVFilterslibbluray_srclibbluray_bluray.c
mov eax, dword [rdx + 4]
mov r8d, 0x40
mov edx, 0xc15
mov dword [rsp + 0x20], eax
call fcn.180029220
mov rdx, rdi
mov rcx, rbx
call fcn.1800156e0
mov eax, dword [rdi + 4]
cmp eax, 0x16
ja case.0x18001599d.3
lea rdx, [0x180000000]
mov ecx, dword [rdx + rax*4 + 0x15c94]
add rcx, rdx
jmp rcx
mov rbx, qword [rbx + 8]
mov edi, dword [rdi + 0xc]
test rbx, rbx
je case.0x18001599d.3
mov rbx, qword [rbx + 0x20]
test rbx, rbx
je case.0x18001599d.3
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x1800159cc
mov edx, edi
call fcn.180021460
mov rax, qword [rbx + 0x10]
test rax, rax
je case.0x18001599d.3
mov rcx, qword [rax + 8]
test rcx, rcx
je case.0x18001599d.3
mov r10, qword [rax + 0x10]
test r10, r10
je case.0x18001599d.3
xor r9d, r9d
mov r8d, edi
mov edx, pe_nt_image_headers64
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp r10
mov rcx, qword [rbx + 0x19d8]
test rcx, rcx
je 0x180015a25
mov r8d, dword [rdi + 0xc]
mov edx, 6
call fcn.180005650
mov r8d, dword [rdi + 0xc]
cmp r8d, 0xffff
je case.0x18001599d.3
mov edx, 8
mov rcx, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.18000e990
mov r8d, dword [rdi + 0xc]
mov edx, 0xc
mov rcx, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.18000e990
mov rcx, qword [rbx + 0x19d8]
test rcx, rcx
je 0x180015a82
mov r8d, dword [rdi + 0xc]
mov edx, 0xd
call fcn.180005650
mov r8d, dword [rdi + 0xc]
mov edx, 0xb
mov rcx, rbx
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.18000e990
mov rcx, qword [rbx + 0x19d8]
test rcx, rcx
je 0x180015ab7
mov r8d, dword [rdi + 0xc]
mov edx, 0xe
call fcn.180005650
mov r8d, dword [rdi + 0xc]
mov eax, r8d
xor eax, dword [rdi + 8]
test eax, 0x80000fff
je 0x180015af1
shr r8d, 0x1f
mov edx, 0x11
mov rcx, rbx
call fcn.18000e990
mov r8d, dword [rdi + 0xc]
mov edx, 0xd
and r8d, 0xfff
mov rcx, rbx
call fcn.18000e990
mov rcx, qword [rbx]
test rcx, rcx
jne 0x180015b23
test dword [0x180058af0], 0x840
je 0x180015b29
lea edx, [rcx + 0x7b]
mov r8d, 0x840
lea rcx, str.C:CodeklcpLAVFilterslibbluray_srcutilmutex.c
lea r9, str.bd_mutex_lock___failed___n
call fcn.180029220
jmp 0x180015b29
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [rbx + 0x108], 0
je 0x180015b77
mov rcx, rbx
call fcn.18000f300
cmp qword [rbx + 0x168], 0
je 0x180015b77
test dword [0x180058af0], 0x840
je 0x180015b6f
lea r9, str.Changing_TextST_stream_n
mov edx, 0xc3e
mov r8d, 0x840
lea rcx, str.C:CodeklcpLAVFilterslibbluray_srclibbluray_bluray.c
call fcn.180029220
mov rcx, rbx
call fcn.180012fb0
mov rcx, qword [rbx]
test rcx, rcx
jne 0x180015bb7
test dword [0x180058af0], 0x840
je case.0x18001599d.3
lea r9, str.bd_mutex_unlock___failed___n
mov edx, 0x84
mov r8d, 0x840
lea rcx, str.C:CodeklcpLAVFilterslibbluray_srcutilmutex.c
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.180029220
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [rdi + 8]
mov eax, ecx
mov r8d, dword [rdi + 0xc]
xor eax, r8d
test eax, 0x8f00ff00
je 0x180015c1b
shr r8d, 0x1f
mov edx, 0x14
mov rcx, rbx
call fcn.18000e990
movzx r8d, byte [rdi + 0xf]
mov edx, 0x15
and r8d, 0xf
mov rcx, rbx
call fcn.18000e990
movzx r8d, byte [rdi + 0xd]
mov edx, 0x10
mov rcx, rbx
call fcn.18000e990
mov r8d, dword [rdi + 0xc]
mov ecx, dword [rdi + 8]
xor ecx, r8d
test ecx, 0x400000ff
je 0x180015c4d
shr r8d, 0x1e
mov edx, 0x13
and r8d, 1
mov rcx, rbx
call fcn.18000e990
movzx r8d, byte [rdi + 0xc]
mov edx, 0xf
mov rcx, rbx
call fcn.18000e990
mov rcx, qword [rbx + 0x19d8]
test rcx, rcx
je case.0x18001599d.3
mov r8d, dword [rdi + 0xc]
mov edx, 0xf
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
jmp fcn.180005650
mov r8d, dword [rdi + 0xc]
mov edx, 0x1f
and r8d, 1
mov rcx, rbx
call fcn.18000e990
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret