Function at 0x140156400
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 0x14015642e
mov rcx, qword [rcx + 8]
lea r9, [0x140154b80]
mov r8d, 8
call fcn.14008e030
mov edi, dword [rbx + 4]
test edi, edi
je 0x1401564c0
mov r9, qword [rbx + 8]
mov edx, edi
lea r10, [r9 + rdx*8]
mov rax, r9
xor edx, edx
jmp 0x140156474
lea r11d, [rdx - 1]
lea rsi, [r9 + r11*8]
mov r11d, dword [rsi + 4]
cmp r11d, ecx
jl 0x14015648f
cmp r11d, r8d
jge 0x14015646b
movd dword [rsi + 4], xmm1
add rax, 8
cmp r10, rax
je 0x1401564a3
movq xmm0, qword [rax]
pshufd xmm1, xmm0, 0xe5
movd ecx, xmm0
movd r8d, xmm1
cmp r8d, ecx
je 0x14015646b
test edx, edx
jne 0x140156450
mov ecx, edx
add rax, 8
add edx, 1
movq qword [r9 + rcx*8], xmm0
cmp r10, rax
jne 0x140156474
cmp edi, edx
jb 0x1401564c4
mov rcx, rbx
mov dword [rbx + 4], edx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.140154c00
xor edx, edx
jmp 0x1401564a7
mov r8d, 0x84
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, 0x118
mov rdi, qword [0x14022c040]
xor esi, esi
mov eax, dword [rcx + 8]
mov rbx, qword [rdi]
mov qword [rsp + 0x108], rbx
xor ebx, ebx
mov qword [rsp + 0x68], rdx
mov edi, 0xffffffff
mov r12, rcx
mov qword [rsp + 0x60], r8
test eax, eax
je 0x140156a11
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 0x14015657b
mov rcx, qword [r12 + 0x18]
xor r9d, r9d
xor r8d, r8d
call fcn.14009d060
test rax, rax
je 0x1401569fb
movzx edx, byte [rax]
and edx, 0xe
cmp dl, 2
jne 0x1401569fb
test rsi, rsi
jne 0x140156a53
mov edi, ebx
mov rsi, rax
add rbx, 1
cmp ebx, dword [r12 + 8]
jb 0x140156530
mov r10, r12
test rsi, rsi
je 0x140156a11
mov rax, qword [rsp + 0x60]
mov r13, qword [r12 + 0x7f8]
mov dword [rsp + 0xac], 0
mov qword [rsp + 0xb8], 0
mov r15, qword [rax]
test r15, r15
je 0x1401569f6
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x90], rsi
mov rdx, r15
xor r14d, r14d
mov qword [rsp + 0x70], rax
lea rax, [rsi + 4]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x98], r12
nop word cs:[rax + rax]
nop dword [rax]
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
mov qword [rsp + 0x58], rax
shl rax, 4
add rax, rdx
cmp r15, rax
jae 0x140156970
mov rcx, qword [r15]
mov rdx, qword [r13 + 0x160]
mov dword [rsp + 0xb0], 0
mov dword [rsp + 0xb4], 0
call fcn.140158120
mov rcx, qword [r15]
mov rbx, rax
test rax, rax
je 0x140156a34
cmp byte [rax], 0x3a
jne 0x140156a34
cmp byte [rax + 1], 0
je 0x140156a34
mov rdx, rax
sub rdx, rcx
call fcn.1400bd220
xor edx, edx
mov rbp, rax
lea rax, [rbx + 1]
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x140156692
mov rcx, rax
call sub.msvcrt.dll_strlen
mov edx, eax
mov r8, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
call fcn.140084de0
mov rcx, rax
mov rbx, rax
call fcn.14012c2d0
mov r9, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x88]
mov rcx, r13
mov r8, qword [rax + 0x28]
mov rdi, rax
lea rax, [rsp + 0xaa]
mov qword [rsp + 0x20], rax
call fcn.1400b2ce0
test eax, eax
jne 0x140156a43
mov rdx, qword [rsp + 0x70]
mov r8d, 1
mov rcx, rdi
movzx r9d, word [rsp + 0xaa]
call fcn.14012c350
lea r9, [rsp + 0xb8]
mov rdx, rdi
mov rcx, r13
lea r8, [rsp + 0xac]
call fcn.140154d20
mov rax, qword [rsp + 0xb8]
mov r12d, dword [rsp + 0xac]
mov qword [rsp + 0xc0], rdi
mov dword [rsp + 0xc8], r12d
mov qword [rsp + 0x80], rax
mov qword [rsp + 0xd0], rax
test r14, r14
je 0x140156898
mov rsi, r14
jmp 0x140156764
mov rsi, qword [rsi]
test rsi, rsi
je 0x140156898
mov rcx, qword [rsi + 8]
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140156758
mov eax, dword [rsi + 0x14]
test eax, eax
je 0x140156898
lea edx, [rax - 1]
mov rax, qword [rsi + 0x18]
mov eax, dword [rax + rdx*8 + 4]
add eax, 1
mov rdx, qword [r13 + 0x160]
mov qword [rsp + 0x38], rbx
mov r9d, r12d
mov rcx, rbp
mov dword [rsp + 0x20], eax
lea r8, [rsp + 0xc0]
mov qword [rsp + 0x40], rdx
lea rdx, [rsp + 0xb4]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0xb0]
mov qword [rsp + 0x28], rdx
lea rdx, [0x140154ca0]
call fcn.140157fd0
test eax, eax
jne 0x140156a78
mov esi, dword [rsp + 0xb0]
test r12d, r12d
jne 0x1401568a8
or esi, dword [rsp + 0xb4]
mov dword [rsp + 0x58], esi
jne 0x140156a1d
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0xb4], r12d
mov dword [rsp + 0xb0], eax
test r14, r14
je 0x1401568f1
mov rbp, r14
xor esi, esi
jmp 0x140156839
cmovs rsi, rbp
mov rbp, qword [rbp]
test rbp, rbp
je 0x140156930
mov rcx, qword [rbp + 8]
mov rdx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140156828
mov edx, dword [rsp + 0x58]
lea rcx, [rbp + 0x10]
mov r8d, r12d
call fcn.140155a10
mov rcx, rbx
call fcn.1400eaf30
mov rcx, rdi
add r15, 0x10
call fcn.14012c320
mov rcx, qword [rsp + 0x80]
call fcn.1400eaf30
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xb8], 0
mov rdx, qword [rax]
jmp 0x140156600
mov eax, 1
jmp 0x14015678d
cmp r12d, esi
jl 0x140156a1d
test esi, esi
mov edx, 1
mov eax, dword [rsp + 0xb4]
cmovle esi, edx
sub esi, 1
mov dword [rsp + 0x58], esi
test eax, eax
jle 0x1401567ff
cmp r12d, eax
jl 0x1401567ff
mov r12d, eax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0xb0], eax
test r14, r14
jne 0x14015681b
mov edx, 0x48
mov ecx, 1
call fcn.1400bd320
mov edx, dword [rsp + 0x58]
mov r8d, r12d
mov qword [rax + 8], rbx
lea rcx, [rax + 0x10]
mov qword [rsp + 0x78], rax
call fcn.140155aa0
mov rax, qword [rsp + 0x78]
mov qword [rax], r14
mov r14, rax
jmp 0x140156861
mov edx, 0x48
mov ecx, 1
call fcn.1400bd320
mov edx, dword [rsp + 0x58]
mov r8d, r12d
mov qword [rax + 8], rbx
lea rcx, [rax + 0x10]
mov qword [rsp + 0x78], rax
call fcn.140155aa0
test rsi, rsi
mov rax, qword [rsp + 0x78]
je 0x14015691e
mov rdx, qword [rsi]
mov qword [rax], rdx
mov qword [rsi], rax
jmp 0x140156861
mov r10, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x90]
mov r15, r14
mov rbx, r14
mov rdi, r10
test r14, r14
je 0x1401569f6
nop
lea rcx, [rbx + 0x10]
call fcn.140156400
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140156990
mov r10, rdi
mov rcx, r10
mov r8, r15
mov rdx, rsi
mov qword [rsp + 0x58], r10
call fcn.140155760
mov rdi, qword [0x14022c040]
mov r10, qword [rsp + 0x58]
mov rax, qword [rsp + 0x108]
sub rax, qword [rdi]
jne 0x140156a87
lea rcx, [r10 + 0x788]
mov rdx, r15
add rsp, 0x118
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140154e30
xor r15d, r15d
jmp 0x1401569a4
mov rax, qword [r12 + 0x10]
lea rcx, str.Non_commit__s_
mov rdx, qword [rax + rbp + 8]
call fcn.1400b6950
lea rcx, str.No_commit_specified_
call fcn.1400b6950
mov r14, qword [rsp + 0x78]
mov r8d, r12d
lea rcx, str.file__s_has_only__lu_lines
mov rdx, r14
call fcn.1400b6950
mov rdx, rcx
lea rcx, str._L_argument_not_start_end:file_or_:funcname:file:__s
call fcn.1400b6950
mov rdx, qword [rdi + 0x28]
lea rcx, str.There_is_no_path__s_in_the_commit
call fcn.1400b6950
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.1400b6950
mov rdx, rbp
lea rcx, str.malformed__L_argument__s
call fcn.1400b6950
call fcn.1401d96b0
nop
nop dword [rax]