Function at 0x180055650
Capabilities:
Check for software breakpoints
Get common file path
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x470]
sub rsp, 0x570
mov rax, qword [0x1800a2078]
xor rax, rsp
mov qword [rbp + 0x460], rax
lea eax, [r9 + 0x63c]
mov qword [rbp - 0x40], r8
mov dword [rsp + 0x40], eax
mov rsi, rcx
mov rcx, qword [rbp + 0x4d0]
mov r13d, r9d
mov qword [rbp - 0x70], rcx
mov r14, rdx
cmp r9d, eax
jae case.0x180055c75.0
mov r12d, dword [rsp + 0x5c]
xor edi, edi
mov r15, qword [rbp - 0x70]
lea rdx, [0x180000000]
mov r11d, 0x36
movabs r9, 0x6666666666666667
movabs r10, 0x431bde82d7b634db
movabs rbx, 0x7200610070
cmp r13d, 0x16d
ja 0x180055b98
je 0x180055b5c
cmp r13d, 0xc5
ja 0x18005596f
je 0x18005585c
mov eax, r13d
sub eax, 0x1d
je 0x180055853
sub eax, 0x54
je 0x1800557f2
sub eax, 0x19
je 0x180055730
cmp eax, 0xc
je 0x1800559c5
jmp 0x180055dcf
test r14, r14
je 0x180055dcf
mov ebx, 0xfd
nop
cmp ebx, 0xfd
je 0x1800557b7
cmp ebx, 0xc0b7
je 0x1800557af
cmp ebx, 0x18071
je 0x1800557a9
cmp ebx, 0x2402b
je 0x180055790
cmp ebx, 0x2ffe5
jne 0x1800557db
mov rax, r10
mov ecx, r15d
imul r15
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul eax, edx, 0xf4240
mov dword [r14], edx
sub ecx, eax
mov dword [r14 + 4], ecx
jmp 0x1800557db
mov rax, r9
imul r15
mov r15, rdx
sar r15, 2
mov rax, r15
shr rax, 0x3f
add r15, rax
jmp 0x1800557db
mov r15, qword [rbp - 0x78]
jmp 0x1800557db
mov eax, dword [rbp - 0x7c]
mov dword [rbp - 0x74], eax
jmp 0x1800557db
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov eax, dword [rbp - 0x80]
movabs r9, 0x6666666666666667
mov dword [rbp - 0x78], eax
movabs r10, 0x431bde82d7b634db
add ebx, 0xbfba
cmp ebx, 0x3bea2
jbe 0x180055740
jmp 0x180055dcf
lea rax, [rbp - 0x18]
sub rax, 2
nop word [rax + rax]
cmp word [rax + 2], 0
lea rax, [rax + 2]
jne 0x180055800
cmp qword [r14 + 0x18], 8
mov rcx, r14
movups xmm0, xmmword [str.entFile]
movups xmmword [rax], xmm0
jb 0x180055822
mov rcx, qword [r14]
xor r9d, r9d
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x60], rax
jmp 0x180055dcf
mov qword [rbp - 0x18], rbx
jmp 0x180055dcf
cmp qword [rsp + 0x60], 0xffffffffffffffff
jne 0x180055966
mov ebx, ILFindLastID
nop dword [rax]
cmp ebx, 0xc
ja case.0x180055885.1
mov eax, ebx
mov ecx, dword [rdx + rax*4 + 0x55df4]
add rcx, rdx
jmp rcx
mov dword [rsp + 0x68], 0x104
jmp case.0x180055885.1
movzx eax, byte [rsp + 0x44]
mov ecx, edi
cmp dword [rsp + 0x50], 0
cmovne ecx, eax
mov byte [rsp + 0x44], cl
jmp case.0x180055885.1
cmp byte [rsp + 0x44], 0
je case.0x180055885.1
mov ecx, dword [rsp + 0x50]
lea rdx, [rbp + 0x40]
mov r8d, 0x104
call qword [sym.imp.WINMM.dll_mciGetErrorStringW]
jmp 0x180055942
mov eax, 0x52
mov dword [rbp - 0x38], 0x510056
mov word [rbp - 0x34], ax
jmp case.0x180055885.1
mov eax, 0x31
mov dword [rbp - 0x26], 0x690034
mov word [rbp - 0x22], ax
jmp case.0x180055885.1
mov eax, 0x76
mov dword [rbp - 0x2c], 0x480053
mov word [rbp - 0x28], ax
jmp case.0x180055885.1
mov eax, 0x4c
mov dword [rbp - 0x32], 0x4d0044
mov word [rbp - 0x2e], ax
jmp case.0x180055885.1
mov dword [rbp - 0x20], 0x36
jmp case.0x180055885.1
mov byte [rsp + 0x44], 1
jmp case.0x180055885.1
mov r8d, dword [rsp + 0x68]
lea rdx, [rbp + 0x250]
xor r9d, r9d
lea rcx, [rbp - 0x38]
call qword [sym.imp.WINMM.dll_mciSendStringW]
mov dword [rsp + 0x50], eax
mov r11d, 0x36
lea rdx, [0x180000000]
dec ebx
lea eax, [rbx + 0xcd]
cmp eax, 0xcc
ja 0x180055870
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x58], edi
jmp 0x180055dd3
mov eax, r13d
sub eax, 0xde
je 0x180055acd
sub eax, 0xc
je 0x1800559e5
sub eax, 0x48
je 0x1800559a1
cmp eax, 0xc
mov eax, dword [rsp + 0x40]
jne 0x180055dd3
mov r10d, dword [rsp + 0x54]
mov dword [r8], r10d
jmp 0x180055dd3
mov eax, 0x8b
nop word [rax + rax]
cmp eax, 0x8b
je 0x180055df0
add eax, 0x69
cmp eax, 0xf4
jb 0x1800559b0
mov eax, dword [rcx]
mov rcx, rsi
cdq
sub eax, edx
xor edx, edx
sar eax, 1
movsxd rbx, eax
mov r8, rbx
mov dword [rsp + 0x6c], ebx
call sub.VCRUNTIME140.dll_memset
jmp 0x180055dcf
movsxd rbx, dword [rsp + 0x6c]
mov rdx, rdi
mov dword [rsp + 0x54], edi
test ebx, ebx
jle 0x180055dcf
mov dword [rsp + 0x54], ebx
nop dword [rax]
mov r8d, 0x106
nop word [rax + rax]
mov eax, r8d
sub eax, 0x102
je 0x180055aa9
sub eax, 1
je 0x180055a83
sub eax, 1
je 0x180055a6f
sub eax, 1
je 0x180055a45
cmp eax, 1
jne 0x180055aac
movzx ecx, byte [r14 + rdx*2]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x180055aac
shl cl, 4
mov byte [rsi], cl
jmp 0x180055aac
movzx ecx, byte [r14 + rdx*2]
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x180055a5e
sub cl, 7
shl cl, 4
mov byte [rsi], cl
movzx ecx, byte [r14 + rdx*2]
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x180055aac
sub cl, 7
shl cl, 4
mov byte [rsi], cl
jmp 0x180055aac
movzx ecx, byte [r14 + rdx*2 + 1]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x180055aac
sub cl, 0x30
or byte [rsi], cl
jmp 0x180055aac
movzx ecx, byte [r14 + rdx*2 + 1]
lea eax, [rcx - 0x61]
cmp al, 5
ja 0x180055a9b
sub cl, 0x57
or byte [rsi], cl
movzx ecx, byte [r14 + rdx*2 + 1]
lea eax, [rcx - 0x41]
cmp al, 5
ja 0x180055aac
sub cl, 0x37
or byte [rsi], cl
jmp 0x180055aac
inc rsi
dec r8d
cmp r8d, 0x101
ja 0x180055a10
inc rdx
cmp rdx, rbx
jl 0x180055a00
jmp 0x180055dcf
test rsi, rsi
je 0x180055dcf
mov edi, 0x28
nop dword [rax + rax]
mov eax, edi
sub eax, 0x28
je 0x180055af9
cmp eax, 1
jne 0x180055b4e
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll___daylight]
mov ecx, dword [rax]
mov dword [rsi + 4], ecx
jmp 0x180055b4e
mov ecx, dword [0x1800a3998]
test ecx, ecx
jne 0x180055b31
mov ebx, 0x18
mov eax, ebx
sub eax, 0x17
je 0x180055b22
cmp eax, 1
jne 0x180055b2a
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__tzset]
mov ecx, dword [0x1800a3998]
jmp 0x180055b2a
inc ecx
mov dword [0x1800a3998], ecx
dec ebx
cmp ebx, 0x16
ja 0x180055b08
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll___timezone]
mov ecx, dword [rax]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [rsi], edx
inc edi
cmp edi, 0x2a
jb 0x180055ae0
xor edi, edi
jmp 0x180055dcf
movups xmm0, xmmword [str._check_gdi_multithread__int__]
mov eax, dword [0x180093dc0]
movups xmm1, xmmword [0x180093d98]
mov dword [rbp + 0x38], eax
movups xmmword [rbp], xmm0
movups xmm0, xmmword [0x180093da8]
movups xmmword [rbp + 0x10], xmm1
movsd xmm1, qword [0x180093db8]
movups xmmword [rbp + 0x20], xmm0
movsd qword [rbp + 0x30], xmm1
jmp 0x180055dcf
cmp r13d, 0x311
ja 0x180055d6b
je 0x180055c4a
mov eax, r13d
sub eax, 0x1c1
je 0x180055c27
sub eax, 0x54
je 0x180055bf3
sub eax, 0x54
je 0x180055bd8
cmp eax, 0x54
jne 0x180055dcf
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x180055dcf
lea rax, [rbp]
mov r12, 0xffffffffffffffff
inc r12
cmp word [rax + r12*2], 0
jne 0x180055be3
jmp 0x180055dcf
cmp qword [rsi + 0x18], 0x10
mov rdx, rsi
jb 0x180055c00
mov rdx, qword [rsi]
mov r8d, dword [rsp + 0x4c]
lea r9, [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x5c], reloc.SHELL32.dll_ILFindLastID
jmp 0x180055dcf
mov rcx, qword [rsp + 0x60]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, eax
xor r8d, r8d
mov rcx, rsi
mov dword [rsp + 0x4c], eax
call fcn.18005cb60
jmp 0x180055dcf
mov eax, dword [rsp + 0x4c]
cmp eax, dword [rsp + 0x58]
je 0x180055dcf
mov ebx, 0xa
nop dword [rax]
cmp ebx, 0xa
ja case.default.0x180055c75
mov eax, ebx
mov ecx, dword [rdx + rax*4 + 0x55e28]
add rcx, rdx
jmp rcx
mov qword [rbp - 0x58], rdi
jmp case.default.0x180055c75
mov qword [rsi + 0x10], rdi
mov rax, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x180055c91
mov rax, qword [rsi]
mov byte [rax], 0
jmp case.default.0x180055c75
mov byte [rsp + 0x45], 1
mov qword [rbp - 0x50], rdi
jmp case.default.0x180055c75
mov dword [rsp + 0x74], edi
mov dword [rsp + 0x70], 0x104
jmp case.default.0x180055c75
mov qword [rbp - 0x60], rdi
jmp case.default.0x180055c75
mov eax, dword [rsp + 0x70]
lea r9, [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
lea r8, [rbp - 0x68]
mov dword [rsp + 0x28], eax
xor edx, edx
lea rax, [rbp + 0x40]
mov qword [rsp + 0x20], rax
call sub.SHELL32.dll_SHGetUnreadMailCountW
mov dword [rsp + 0x78], eax
jmp 0x180055d49
mov byte [rsp + 0x48], 0
jmp case.default.0x180055c75
mov r9d, dword [rsp + 0x74]
lea rax, [rbp + 0x250]
mov r8, qword [rbp - 0x48]
mov edx, dword [rsp + 0x7c]
mov rcx, qword [rbp - 0x50]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
movzx eax, byte [rsp + 0x45]
mov ecx, edi
cmp dword [rsp + 0x78], 0
cmove ecx, eax
mov byte [rsp + 0x45], cl
jmp 0x180055d49
mov dword [rsp + 0x7c], r11d
mov qword [rbp - 0x48], rdi
jmp case.default.0x180055c75
cmp byte [rsp + 0x45], 0
je case.default.0x180055c75
lea r8, [rbp + 0x40]
xor edx, edx
xor ecx, ecx
call sub.SHELL32.dll_SHSetUnreadMailCountW
lea rdx, [0x180000000]
mov r11d, 0x36
dec ebx
lea eax, [rbx + 0xd2]
cmp eax, 0xd1
ja 0x180055c60
jmp 0x180055dcf
mov eax, r13d
sub eax, 0x365
je 0x180055dc2
sub eax, 0x54
je 0x180055dad
cmp eax, 0x54
jne 0x180055dcf
mov eax, dword [rsp + 0x48]
mov rcx, qword [rbp + 0x460]
xor rcx, rsp
call fcn.180084890
mov rbx, qword [rsp + 0x5c8]
add rsp, 0x570
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov edx, dword [rsp + 0x5c]
lea rcx, [rbp - 0x18]
call qword [sym.imp.WINMM.dll_mmioStringToFOURCCW]
mov byte [rsp + 0x48], 1
jmp 0x180055dcf
mov edx, r12d
lea rcx, [rbp]
call qword [sym.imp.SHELL32.dll_DoEnvironmentSubstW]
mov eax, dword [rsp + 0x40]
add r13d, 0x54
cmp r13d, eax
jae case.0x180055c75.0
mov r8, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x70]
jmp 0x1800556b7
mov byte [rsp + 0x48], 0
jmp case.0x180055c75.0
mov eax, edi
jmp 0x180055d83