Function at 0x50c980
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov rsi, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0x68], rcx
mov rbx, rcx
mov rdi, r9
mov rcx, qword [rsi]
mov qword [rsp + 0x158], rcx
xor ecx, ecx
mov rcx, rax
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x98], rax
call fcn.0050c530
mov r9d, dword [rdi]
mov qword [rbx], rax
mov r13, rax
test r9d, r9d
jle 0x50d13f
mov qword [rsp + 0x38], 0
mov rax, qword [sym.imp.msvcrt.dll__assert]
mov dword [rsp + 0x94], 0
mov qword [rsp + 0x40], rax
nop
mov rbx, qword [rsp + 0x38]
lea rax, [rbx*8]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x48]
mov rax, qword [rax]
mov r14, qword [rax + rbx*8]
mov rax, qword [r14 + 8]
cmp qword [rax + 0x20], 0
je 0x50d120
test r13, r13
je 0x50d030
lea rsi, str.line_log.c
lea rbx, str.rg__path
jmp 0x50ca7f
mov r12, qword [r14 + 8]
mov rdx, qword [r12 + 0x20]
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x50caa8
mov r13, qword [r13]
test r13, r13
je 0x50d030
mov rcx, qword [r13 + 8]
test rcx, rcx
jne 0x50ca60
mov rcx, rbx
mov rax, qword [rsp + 0x40]
mov r8d, 0x40c
mov rdx, rsi
call rax
mov rcx, qword [r13 + 8]
jmp 0x50ca60
mov eax, dword [r13 + 0x1c]
test eax, eax
je 0x50d030
test byte [r12 + 0x48], 1
je 0x50d0f8
mov rax, qword [rsp + 0x88]
mov rdx, r12
xor r8d, r8d
mov rcx, qword [rax + 0x768]
call fcn.004f2050
mov rax, qword [r14 + 8]
mov rdx, qword [rax + 0x28]
mov eax, dword [rax + 0x38]
mov qword [rsp + 0xc0], rdx
mov rdx, qword [r14]
mov dword [rsp + 0xc8], eax
test byte [rdx + 0x48], 1
jne 0x50d0c0
lea rax, [0x0059b874]
mov dword [rsp + 0xb8], 0
mov qword [rsp + 0xb0], rax
lea rbp, [rsp + 0xf0]
lea rax, [rsp + 0x110]
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x20], rbp
lea rsi, [rsp + 0x130]
lea r8, [rsp + 0xd0]
lea rdx, [rsp + 0xc0]
mov qword [rsp + 0xa8], rax
lea rax, [0x0050c930]
mov r9, rsi
mov qword [rsp + 0x150], rax
lea rcx, [rsp + 0xb0]
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], 0
mov qword [rsp + 0x128], 0
mov qword [rsp + 0x60], r8
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x140], 0
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x130], 0
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], 0
mov qword [rsp + 0xf0], rax
call fcn.005469d0
mov ebx, eax
test eax, eax
jne 0x50d17f
mov rcx, qword [r13 + 8]
xor edi, edi
xor r15d, r15d
call fcn.004c9260
mov rax, qword [r14]
mov rcx, qword [rax + 0x20]
call fcn.004996c0
mov ecx, 0x20
mov qword [r13 + 8], rax
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
call fcn.004996e0
xor r10d, r10d
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], 0
mov r12, rax
lea rax, [rax + 0x10]
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x138], 0
mov qword [rax - 0x10], 0
mov qword [rax], 0
mov r8d, dword [rsp + 0x124]
mov qword [rax - 8], 0
mov qword [rax + 8], 0
mov qword [rsp + 0x70], rax
test r8d, r8d
je 0x50cd7b
mov r11, qword [rsp + 0x128]
mov r9d, r10d
mov r8, qword [r13 + 0x20]
shl r9, 3
add r11, r9
mov ecx, dword [r11]
jmp 0x50cd06
mov edx, dword [r13 + 0x1c]
add edi, 1
cmp edi, edx
je 0x50cd80
mov r15d, edi
lea rax, [r8 + r15*8]
mov edx, dword [rax + 4]
cmp ecx, edx
jg 0x50ccf8
mov eax, dword [rax]
cmp dword [r11 + 4], eax
jle 0x50cd69
cmp ecx, edx
jge 0x50cd69
mov rax, r9
add rax, qword [rsp + 0x118]
mov rcx, r12
mov dword [rsp + 0x80], r10d
mov r8d, dword [rax + 4]
mov edx, dword [rax]
mov qword [rsp + 0x78], r9
call fcn.0050c8d0
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
add r9, qword [rsp + 0x128]
mov r8d, dword [r9 + 4]
mov edx, dword [r9]
call fcn.0050c8d0
mov r10d, dword [rsp + 0x80]
add r10d, 1
cmp r10d, dword [rsp + 0x124]
jb 0x50ccd9
mov edx, dword [r13 + 0x1c]
nop
xor eax, eax
xor edi, edi
test edx, edx
je 0x50ce41
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x80], rsi
mov dword [rsp + 0x78], ebx
mov rbx, r12
mov r12d, eax
nop dword [rax + rax]
mov rdx, qword [r13 + 0x20]
mov eax, edi
lea rax, [rdx + rax*8]
mov edx, dword [rax]
mov esi, dword [rax + 4]
cmp edx, esi
jge 0x50ce20
nop dword [rax + rax]
mov r14d, dword [rbx + 0x14]
cmp r14d, r12d
jbe 0x50d090
mov r15d, r12d
mov rcx, qword [rbx + 0x18]
shl r15, 3
jmp 0x50cdf1
add r12d, 1
add r15, 8
cmp r14d, r12d
je 0x50d098
mov eax, dword [rcx + r15 + 4]
lea r8, [rcx + r15]
cmp eax, edx
jle 0x50cde0
mov r8d, dword [r8]
cmp esi, r8d
jl 0x50d090
cmp r8d, edx
jle 0x50d080
cmp esi, r8d
jg 0x50d060
cmp esi, edx
jg 0x50cdc0
add edi, 1
cmp edi, dword [r13 + 0x1c]
jb 0x50cda8
mov r12, rbx
mov r14, qword [rsp + 0x70]
mov ebx, dword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
mov ecx, dword [rsp + 0xf4]
xor ebp, ebp
xor r15d, r15d
mov rax, qword [rsp + 0xf8]
mov r10, qword [rsp + 0x128]
mov rdi, qword [rsp + 0x118]
test ecx, ecx
je 0x50cf00
mov qword [rsp + 0x70], r13
mov r13, rdi
mov edi, ebx
mov rbx, rax
mov qword [rsp + 0x78], r12
mov r12, r10
nop word [rax + rax]
mov eax, r15d
mov r11d, dword [rsp + 0x124]
lea r8, [rbx + rax*8]
mov edx, dword [r8]
cmp r11d, ebp
jbe 0x50ced5
mov eax, ebp
shl rax, 3
jmp 0x50cecd
add ecx, dword [r13 + rax + 4]
add ebp, 1
sub ecx, dword [r13 + rax]
sub ecx, dword [r12 + rax + 4]
add rax, 8
add edi, ecx
cmp ebp, r11d
je 0x50ced5
mov ecx, dword [r12 + rax]
cmp ecx, edx
jle 0x50ceb0
mov eax, dword [r8 + 4]
add edx, edi
mov rcx, rsi
add r15d, 1
add eax, edi
mov r8d, eax
call fcn.0050c8d0
cmp r15d, dword [rsp + 0xf4]
jb 0x50ce88
mov r13, qword [rsp + 0x70]
mov r12, qword [rsp + 0x78]
mov rax, qword [r12 + 8]
mov rcx, qword [rsp + 0x60]
lea r9, [r12 + 4]
lea rdx, [rsp + 0x134]
mov r8, qword [rsp + 0x138]
mov qword [rsp + 0x20], rax
call fcn.0050c0b0
mov rcx, qword [rsp + 0xf8]
call fcn.004c9260
mov rcx, qword [rsp + 0x138]
call fcn.004c9260
mov rcx, qword [r13 + 0x20]
call fcn.004c9260
mov rdx, qword [rsp + 0xd0]
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x118]
mov qword [r13 + 0x18], rdx
mov qword [r13 + 0x20], rax
call fcn.004c9260
mov rcx, qword [rsp + 0x128]
mov dword [rsp + 0x114], 0
call fcn.004c9260
mov qword [rsp + 0x120], 0
mov edx, dword [r12 + 4]
test edx, edx
je 0x50d033
mov rsi, qword [rsp + 0x98]
add dword [rsp + 0x94], 1
test rsi, rsi
je 0x50d197
mov rax, qword [r14 + 8]
mov rbx, qword [rax + 0x20]
jmp 0x50cfd4
mov rsi, qword [rsi]
test rsi, rsi
je 0x50d197
mov rcx, qword [rsi + 8]
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x50cfc8
mov rax, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov ecx, 0x18
mov rax, qword [rax]
mov rbx, qword [rax + rdi]
call fcn.004996e0
mov rcx, qword [rbx]
mov qword [rax], rcx
mov rdx, qword [rbx + 8]
mov qword [rax + 8], rdx
add dword [rcx + 0x3c], 1
add dword [rdx + 0x3c], 1
mov qword [rsi + 0x38], rax
movdqu xmm0, xmmword [r12]
movups xmmword [rsi + 0x40], xmm0
movdqu xmm1, xmmword [r12 + 0x10]
movups xmmword [rsi + 0x50], xmm1
jmp 0x50d033
xor r12d, r12d
mov rcx, r12
call fcn.004c9260
mov rdi, qword [rsp + 0x58]
add qword [rsp + 0x38], 1
mov rax, qword [rsp + 0x38]
cmp dword [rdi], eax
jle 0x50d150
mov rax, qword [rsp + 0x68]
mov r13, qword [rax]
jmp 0x50ca10
mov rcx, rbp
call fcn.0050c8d0
mov rax, qword [rbx + 0x18]
mov edx, dword [rax + r15 + 4]
jmp 0x50ce1c
mov edx, eax
jmp 0x50ce1c
mov r14d, r12d
nop dword [rax + rax]
mov r8d, esi
mov rcx, rbp
mov r12d, r14d
add edi, 1
call fcn.0050c8d0
cmp edi, dword [r13 + 0x1c]
jb 0x50cda8
jmp 0x50ce2d
mov rax, qword [rsp + 0x88]
xor r8d, r8d
mov rcx, qword [rax + 0x768]
call fcn.004f2050
mov rax, qword [r14]
mov rdx, qword [rax + 0x28]
mov eax, dword [rax + 0x38]
mov qword [rsp + 0xb0], rdx
mov dword [rsp + 0xb8], eax
jmp 0x50cb1b
mov r8d, 0x417
lea rdx, str.line_log.c
lea rcx, str.pair__two__oid_valid
call qword [sym.imp.msvcrt.dll__assert]
mov r12, qword [r14 + 8]
jmp 0x50cac0
mov r8d, 0x40a
lea rdx, str.line_log.c
lea rcx, str.pair__two__path
call qword [sym.imp.msvcrt.dll__assert]
jmp 0x50ca3d
mov dword [rsp + 0x94], 0
nop word [rax + rax]
mov rax, qword [sym.imp.libssp_0.dll___stack_chk_guard]
mov rbx, qword [rsp + 0x158]
xor rbx, qword [rax]
jne 0x50d192
mov eax, dword [rsp + 0x94]
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r14]
lea rcx, str.unable_to_generate_diff_for__s
mov rdx, qword [rax + 0x20]
call fcn.00494770
call sub.libssp_0.dll___stack_chk_fail
mov r8d, 0x468
lea rdx, str.line_log.c
lea rcx, [0x0059b96f]
call qword [sym.imp.msvcrt.dll__assert]
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
mov ecx, 0x18
mov rax, qword [rax]
mov rbx, qword [rax + rbx]
call fcn.004996e0
mov rcx, qword [rbx]
mov qword [rax], rcx
mov rdx, qword [rbx + 8]
mov qword [rax + 8], rdx
add dword [rcx + 0x3c], 1
add dword [rdx + 0x3c], 1
mov qword [0x38], rax
ud2