Function at 0x14012e6e0
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 4]
mov rdi, rdx
mov rbx, rcx
cmp edx, 1
jbe 0x14012e62e
mov rcx, qword [rcx + 8]
lea r9, [0x14012ce40]
mov r8d, 8
call fcn.14007d390
mov edi, dword [rbx + 4]
test edi, edi
je 0x14012e6c0
mov r9, qword [rbx + 8]
mov edx, edi
lea r10, [r9 + rdx*8]
mov rax, r9
xor edx, edx
jmp 0x14012e674
lea r11d, [rdx - 1]
lea rsi, [r9 + r11*8]
mov r11d, dword [rsi + 4]
cmp r11d, ecx
jl 0x14012e68f
cmp r11d, r8d
jge 0x14012e66b
movd dword [rsi + 4], xmm1
add rax, 8
cmp r10, rax
je 0x14012e6a3
movq xmm0, qword [rax]
pshufd xmm1, xmm0, 0xe5
movd ecx, xmm0
movd r8d, xmm1
cmp r8d, ecx
je 0x14012e66b
test edx, edx
jne 0x14012e650
mov ecx, edx
add rax, 8
add edx, 1
movq qword [r9 + rcx*8], xmm0
cmp r10, rax
jne 0x14012e674
cmp edi, edx
jb 0x14012e6c4
mov rcx, rbx
mov dword [rbx + 4], edx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.14012cec0
xor edx, edx
jmp 0x14012e6a7
mov r8d, 0x86
lea rdx, str.line_log.c
lea rcx, str.o___rs__nr
call qword [sym.imp.msvcrt.dll__assert]
nop
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov rdi, qword [0x140207460]
xor ebx, ebx
xor esi, esi
mov rax, qword [rdi]
mov qword [rsp + 0xf8], rax
xor eax, eax
mov eax, dword [rcx + 8]
mov qword [rsp + 0x58], rdx
mov r14, r8
mov edi, 0xffffffff
mov r12, rcx
test eax, eax
je 0x14012ec09
nop word cs:[rax + rax]
mov rax, qword [r12 + 0x10]
mov rbp, rbx
shl rbp, 5
mov rdx, qword [rax + rbp]
test byte [rdx], 0x20
jne 0x14012e77b
mov rcx, qword [r12 + 0x18]
xor r9d, r9d
xor r8d, r8d
call fcn.14008b4f0
test rax, rax
je 0x14012ebf3
movzx edx, byte [rax]
and edx, 0xe
cmp dl, 2
jne 0x14012ebf3
test rsi, rsi
jne 0x14012ec29
mov edi, ebx
mov rsi, rax
add rbx, 1
cmp ebx, dword [r12 + 8]
jb 0x14012e730
mov r10, r12
test rsi, rsi
je 0x14012ec09
mov r15, qword [r14]
mov r13, qword [r12 + 0x7f8]
mov dword [rsp + 0x9c], 0
mov qword [rsp + 0xa8], 0
test r15, r15
je 0x14012ebdc
lea rax, [rsp + 0xd0]
mov rdx, r15
xor r12d, r12d
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x60], rax
lea rax, [rsi + 4]
mov qword [rsp + 0x78], rax
mov rax, qword [r14 + 8]
mov qword [rsp + 0x88], r10
shl rax, 4
add rax, rdx
cmp r15, rax
jae 0x14012ea7c
nop dword [rax]
mov rdx, qword [r13 + 0xf0]
mov rcx, qword [r15]
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0xa4], 0
call fcn.1401302f0
mov rbx, rax
test rax, rax
je 0x14012ebe4
cmp byte [rax], 0x3a
mov rcx, qword [r15]
jne 0x14012ebe4
cmp byte [rax + 1], 0
je 0x14012ebe4
mov rdx, rax
sub rdx, rcx
call fcn.1400a6120
xor edx, edx
mov qword [rsp + 0x50], rax
lea rax, [rbx + 1]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x14012e876
mov rcx, rax
call sub.msvcrt.dll_strlen
mov edx, eax
mov r8, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
call fcn.140074300
mov rcx, rax
mov rsi, rax
call fcn.14010a870
mov r9, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x78]
mov rcx, r13
mov r8, qword [rax + 0x28]
mov rdi, rax
lea rax, [rsp + 0x9a]
mov qword [rsp + 0x20], rax
call fcn.14009ce40
test eax, eax
jne 0x14012ec5f
mov rdx, qword [rsp + 0x60]
mov r8d, 1
mov rcx, rdi
movzx r9d, word [rsp + 0x9a]
call fcn.14010a8f0
lea r9, [rsp + 0xa8]
mov rdx, rdi
mov rcx, r13
lea r8, [rsp + 0x9c]
call fcn.14012cfe0
mov rax, qword [rsp + 0xa8]
mov ebx, dword [rsp + 0x9c]
mov qword [rsp + 0xb0], rdi
mov dword [rsp + 0xb8], ebx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xc0], rax
test r12, r12
je 0x14012eb10
mov rbp, r12
jmp 0x14012e93d
mov rbp, qword [rbp]
test rbp, rbp
je 0x14012eb10
mov rcx, qword [rbp + 8]
mov rdx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x14012e930
mov eax, dword [rbp + 0x14]
test eax, eax
je 0x14012eb10
lea edx, [rax - 1]
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + rdx*8 + 4]
add eax, 1
mov rdx, qword [r13 + 0xf0]
mov qword [rsp + 0x38], rsi
mov r9d, ebx
lea r8, [rsp + 0xb0]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x40], rdx
lea rdx, [rsp + 0xa4]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0xa0]
mov qword [rsp + 0x28], rdx
lea rdx, [0x14012cf60]
call fcn.1401301b0
test eax, eax
jne 0x14012ec4e
mov ebp, dword [rsp + 0xa0]
test ebx, ebx
jne 0x14012eb20
or ebp, dword [rsp + 0xa4]
mov dword [rsp + 0x50], ebp
jne 0x14012ec15
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0xa4], ebx
mov r8d, ebx
mov dword [rsp + 0xa0], eax
test r12, r12
je 0x14012eb67
mov dword [rsp + 0x68], r8d
mov rbp, r12
xor ebx, ebx
jmp 0x14012ea19
cmovs rbx, rbp
mov rbp, qword [rbp]
test rbp, rbp
je 0x14012eba0
mov rcx, qword [rbp + 8]
mov rdx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x14012ea08
mov r8d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x50]
lea rcx, [rbp + 0x10]
call fcn.14012dcb0
mov rcx, rsi
call fcn.1400d2670
mov rcx, rdi
add r15, 0x10
call fcn.14010a8c0
mov rcx, qword [rsp + 0x70]
call fcn.1400d2670
mov rax, qword [r14 + 8]
mov rdx, qword [r14]
mov qword [rsp + 0xa8], 0
shl rax, 4
add rax, rdx
cmp r15, rax
jb 0x14012e800
mov r10, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbx, r12
mov rdi, r10
test r12, r12
je 0x14012ebdc
nop dword [rax + rax]
lea rcx, [rbx + 0x10]
call fcn.14012e600
mov rbx, qword [rbx]
test rbx, rbx
jne 0x14012eaa0
mov r10, rdi
mov rcx, r10
mov r8, r12
mov rdx, rsi
mov qword [rsp + 0x50], r10
call fcn.14012d9c0
mov rdi, qword [0x140207460]
mov r10, qword [rsp + 0x50]
mov rax, qword [rsp + 0xf8]
sub rax, qword [rdi]
jne 0x14012ec6f
lea rcx, [r10 + 0x788]
mov rdx, r12
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14012d120
mov eax, 1
jmp 0x14012e966
cmp ebx, ebp
jl 0x14012ec15
mov eax, 1
test ebp, ebp
mov r8d, dword [rsp + 0xa4]
cmovle ebp, eax
lea eax, [rbp - 1]
mov dword [rsp + 0x50], eax
cmp ebx, r8d
jl 0x14012e9d9
test r8d, r8d
jle 0x14012e9d9
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0xa0], eax
test r12, r12
jne 0x14012e9f7
mov edx, 0x48
mov ecx, 1
mov dword [rsp + 0x68], r8d
call fcn.1400a6220
mov r8d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x50]
mov qword [rax + 8], rsi
lea rcx, [rax + 0x10]
mov rbp, rax
call fcn.14012dd40
mov qword [rbp], r12
mov r12, rbp
jmp 0x14012ea43
mov edx, 0x48
mov ecx, 1
call fcn.1400a6220
mov r8d, dword [rsp + 0x68]
mov edx, dword [rsp + 0x50]
mov qword [rax + 8], rsi
lea rcx, [rax + 0x10]
mov rbp, rax
call fcn.14012dd40
test rbx, rbx
je 0x14012eb94
mov rdx, qword [rbx]
mov qword [rbp], rdx
mov qword [rbx], rbp
jmp 0x14012ea43
xor r12d, r12d
jmp 0x14012eab4
mov rdx, qword [r15]
lea rcx, str._L_argument_not_start_end:file_or_:funcname:file:__s
call fcn.1400a08a0
mov rax, qword [r12 + 0x10]
lea rcx, str.Non_commit__s_
mov rdx, qword [rax + rbp + 8]
call fcn.1400a08a0
lea rcx, str.No_commit_specified_
call fcn.1400a08a0
mov rdx, qword [rsp + 0x68]
mov r8d, ebx
lea rcx, str.file__s_has_only__lu_lines
call fcn.1400a08a0
mov rdx, qword [r12 + 0x10]
movsxd rax, edi
shl rax, 5
mov rcx, qword [rdx + rbp + 8]
mov r8, qword [rdx + rax + 8]
mov rdx, rcx
lea rcx, str.More_than_one_commit_to_dig_from:__s_and__s_
call fcn.1400a08a0
mov rdx, qword [rsp + 0x50]
lea rcx, str.malformed__L_argument__s
call fcn.1400a08a0
mov rdx, qword [rdi + 0x28]
lea rcx, str.There_is_no_path__s_in_the_commit
call fcn.1400a08a0
call fcn.1401be670
nop
nop word cs:[rax + rax]