Function at 0x14005c020
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x20
test rdx, rdx
mov rsi, rdx
mov rbx, rcx
jne 0x14005c042
xor eax, eax
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret
mov qword [rcx + 0x90], rdx
call fcn.14005c870
mov rcx, rbx
mov dword [rbx + 0x420], eax
call fcn.14005d960
mov rcx, rbx
call fcn.14005b0e0
test eax, eax
je 0x14005c035
mov qword [rsp + 0x30], rdi
xor edi, edi
mov ecx, edi
cmp qword [rbx + 0x378], rcx
je 0x14005c0ca
cmp qword [rbx + 0x280], rcx
je 0x14005c0ca
cmp qword [rbx + 0x380], rcx
je 0x14005c0ca
mov edx, dword [rbx + 0x398]
test edx, edx
je 0x14005c0ca
lea rax, [0x1401ec900]
lea r8, str.SonicFocus3Api.cpp:
test dword [rax], edx
je 0x14005c0ab
add ecx, 1
add rax, 0x18
cmp rax, r8
jl 0x14005c0a4
cmp ecx, 1
mov eax, edi
setge al
test eax, eax
je 0x14005c0ca
xor edx, edx
mov rcx, rbx
call fcn.1400d9ca0
cmp dword [rbx + 0x160], edi
je 0x14005c420
cmp dword [rbx + 0x420], edi
je 0x14005c420
mov eax, dword [rbx + 0x30c]
bt eax, 0x18
jae 0x14005c18c
bt dword [rbx + 0x314], 0x12
jae 0x14005c10b
mov edx, 0x1e
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c174
bt eax, 0x1a
jae 0x14005c120
mov edx, SafeArrayDestroy
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c174
mov eax, dword [rbx + 0x310]
test al, 4
je 0x14005c139
mov edx, 0x12
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c174
bt eax, 0x1c
jae 0x14005c148
cmp dword [rbx + 0x1d0], 1
je 0x14005c158
mov rax, qword [rbx + 0x90]
cmp byte [rax + 0x1d0], 1
jne 0x14005c167
mov edx, 0x1c
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c174
mov edx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
mov rcx, rbx
call fcn.1400d9ca0
test byte [rbx + 0x310], 2
je 0x14005c1e7
mov edx, 0x11
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c1e7
bt dword [rbx + 0x318], 0x17
jb 0x14005c1da
mov eax, dword [rbx + 0x31c]
test al, al
js 0x14005c1da
bt eax, 0x11
jb 0x14005c1da
mov eax, dword [rbx + 0x308]
bt eax, 9
jb 0x14005c1da
bt eax, 0xa
jb 0x14005c1da
mov rax, qword [rbx + 0x90]
test byte [rax + 0x1c0], 0x20
jne 0x14005c1da
mov eax, dword [rbx + 0x320]
bt eax, 0x18
jb 0x14005c1da
bt eax, 0x19
jae 0x14005c1e7
mov edx, 0x1c
mov rcx, rbx
call fcn.1400d9ca0
mov eax, dword [rbx + 0x300]
test al, 1
jne 0x14005c206
test al, 8
jne 0x14005c206
test al, 4
jne 0x14005c206
test al, 2
jne 0x14005c206
test byte [rbx + 0x308], 8
je 0x14005c213
mov edx, 1
mov rcx, rbx
call fcn.1400d9ca0
test byte [rbx + 0x300], 0x40
je 0x14005c232
test byte [rbx + 0x398], 0x70
je 0x14005c232
mov edx, 4
mov rcx, rbx
call fcn.1400d9ca0
mov eax, dword [rbx + 0x30c]
bt eax, 0x1b
jb 0x14005c261
test al, 0x20
jne 0x14005c254
test al, 0x40
jne 0x14005c254
test al, al
js 0x14005c254
bt dword [rbx + 0x310], 0x12
jae 0x14005c261
mov edx, 3
mov rcx, rbx
call fcn.1400d9ca0
test byte [rbx + 0x310], 0x20
je 0x14005c277
mov edx, 9
mov rcx, rbx
call fcn.1400d9ca0
mov ecx, dword [rbx + 0x310]
bt ecx, 0x1d
jb 0x14005c2d4
mov eax, dword [rbx + 0x314]
test al, 1
je 0x14005c297
bt dword [rbx + 0x30c], 0xb
jb 0x14005c2d4
test al, 0x10
jne 0x14005c2d4
test cl, 0x40
jne 0x14005c2d4
bt dword [rbx + 0x30c], 0xc
jae 0x14005c2e1
mov eax, dword [rbx + 0x1d0]
cmp eax, 8
je 0x14005c2c5
cmp eax, 9
je 0x14005c2c5
mov eax, dword [rbx + 0x398]
xor eax, 2
je 0x14005c2e1
mov edx, 8
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c2e1
mov edx, 0x19
mov rcx, rbx
call fcn.1400d9ca0
mov eax, dword [rbx + 0x30c]
bt eax, 0x10
jb 0x14005c2ff
bt eax, 0x11
jb 0x14005c2ff
bt eax, 0x16
jb 0x14005c2ff
bt eax, 0x17
jae 0x14005c30c
mov edx, 0xa
mov rcx, rbx
call fcn.1400d9ca0
mov eax, dword [rbx + 0x310]
bt eax, 8
jb 0x14005c334
bt eax, 9
jb 0x14005c334
bt eax, 0xa
jb 0x14005c334
bt eax, 0xc
jb 0x14005c334
bt dword [rbx + 0x31c], 9
jae 0x14005c341
mov edx, 0x13
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x30c], 0x12
jae 0x14005c370
test byte [rbx + 0x314], 0x80
je 0x14005c363
mov edx, 0x1d
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c370
mov edx, 0x14
mov rcx, rbx
call fcn.1400d9ca0
test byte [rbx + 0x324], 4
je 0x14005c388
mov edx, 0x29
mov rcx, rbx
call fcn.1400d9ca0
jmp 0x14005c39f
bt dword [rbx + 0x308], 0xc
jae 0x14005c39f
mov edx, 0x25
mov rcx, rbx
call fcn.1400d9ca0
test byte [rbx + 0x310], 1
je 0x14005c3bc
bt dword [rsi + 0x30], 0x16
jb 0x14005c3bc
mov edx, 0x10
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x318], 0xb
jae 0x14005c3d3
mov edx, 0x20
mov rcx, rbx
call fcn.1400d9ca0
mov eax, dword [rbx + 0x320]
bt eax, 0xe
jb 0x14005c3e5
bt eax, 0x13
jae 0x14005c3f2
mov edx, 0x24
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x31c], 0xb
jb 0x14005c406
bt dword [rbx + 0x320], 0x1b
jae 0x14005c420
lea rcx, str.add_DTS_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, 0x28
mov rcx, rbx
call fcn.1400d9ca0
cmp dword [rbx + 0x1d0], 4
jne 0x14005c579
mov eax, dword [rbx + 0x304]
bt eax, 0xc
jb 0x14005c43f
bt eax, 0xe
jae 0x14005c452
bt eax, 0xd
jb 0x14005c452
mov edx, SafeArrayDestroy
mov rcx, rbx
call fcn.1400d9ca0
mov ecx, dword [rbx + 0x304]
test cl, 1
jne 0x14005c4ac
test cl, 4
jne 0x14005c4ac
test cl, 2
jne 0x14005c4ac
bt ecx, 0x1a
mov eax, edi
setb al
test eax, eax
jne 0x14005c4ac
bt ecx, 0x1b
mov eax, edi
setb al
test eax, eax
jne 0x14005c4ac
bt ecx, 0x1c
mov eax, edi
setb al
test eax, eax
jne 0x14005c4ac
bt dword [rbx + 0x318], 9
mov eax, edi
setb al
test eax, eax
jne 0x14005c4ac
bt ecx, 0x1d
mov eax, edi
setb al
test eax, eax
je 0x14005c4b9
mov edx, 2
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x304], 0x17
jae 0x14005c4d0
mov edx, 0x1b
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x318], 0xb
jae 0x14005c4e7
mov edx, 0x20
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x31c], 0x11
jb 0x14005c515
mov eax, dword [rbx + 0x308]
bt eax, 9
jb 0x14005c515
bt eax, 0xa
jb 0x14005c515
mov eax, dword [rbx + 0x320]
bt eax, 0x18
jb 0x14005c515
bt eax, 0x19
jae 0x14005c522
mov edx, 0x1c
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x31c], 0x1b
jb 0x14005c53e
mov eax, dword [rbx + 0x320]
bt eax, 0xe
jb 0x14005c53e
bt eax, 0x13
jae 0x14005c54b
mov edx, 0x24
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rsi + 0x194], 0xf
jae 0x14005c562
mov edx, 0x26
mov rcx, rbx
call fcn.1400d9ca0
bt dword [rbx + 0x308], 0x1d
jae 0x14005c579
mov edx, 0x27
mov rcx, rbx
call fcn.1400d9ca0
cmp dword [rbx + 0x1d0], 8
jne 0x14005c597
cmp dword [rbx + 0x160], edi
jne 0x14005c597
mov edx, 6
mov rcx, rbx
call fcn.1400d9ca0
mov edx, 5
mov rcx, rbx
call fcn.1400d9ca0
cmp qword [rbx + 0x378], rdi
je 0x14005c5f7
cmp qword [rbx + 0x280], rdi
je 0x14005c5f7
mov ecx, dword [rbx + 0x398]
test ecx, ecx
je 0x14005c5f7
mov rax, qword [rbx + 0x390]
test rax, rax
je 0x14005c5f7
nop
test dword [rax], ecx
je 0x14005c5da
cmp dword [rax + 4], 0
jne 0x14005c5ea
add rdi, 1
add rax, 8
cmp rdi, 7
jl 0x14005c5d0
jmp 0x14005c5f7
mov edx, 7
mov rcx, rbx
call fcn.1400d9ca0
cmp dword [rbx + 0x1d0], 1
mov rdi, qword [rsp + 0x30]
jne 0x14005c623
bt dword [rsi + 0x30], 0x11
jae 0x14005c623
bt dword [rsi + 0xa8], 0xf
jae 0x14005c623
mov edx, reloc.OLEAUT32.dll_SafeArrayDestroy
mov rcx, rbx
call fcn.1400d9ca0
mov eax, dword [rbx + 0x300]
bt eax, 0x14
jb 0x14005c647
bt eax, 0x16
jb 0x14005c647
bt eax, 0x19
jb 0x14005c647
bt eax, 0x1c
jb 0x14005c647
bt eax, 0x1d
jae 0x14005c654
mov edx, 0x18
mov rcx, rbx
call fcn.1400d9ca0
test byte [rbx + 0x310], 1
je 0x14005c671
bt dword [rsi + 0x30], 0x16
jae 0x14005c671
mov edx, 0x10
mov rcx, rbx
call fcn.1400d9ca0
mov eax, 1
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rsi
ret