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

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x4e0
mov rbp, qword [0x140207460]
mov rbx, rcx
mov rcx, rdx
mov rdi, rdx
mov r12, r8
mov rax, qword [rbp]
mov qword [rsp + 0x4d8], rax
xor eax, eax
mov esi, r9d
call fcn.14009e6c0
mov rdx, rax
test rax, rax
je 0x14010120a
lea r12, [rsp + 0x70]
mov ecx, 0x8c
xor eax, eax
mov rdi, r12
rep stosq qword [rdi], rax
mov dword [rsp + 0x80], esi
mov dword [rsp + 0xd8], 1
test esi, esi
jne 0x1401011f8
mov dword [rsp + 0x98], eax
lea rax, [0x1401013f0]
mov r8d, dword [rdx + 0x30]
mov qword [rsp + 0xd0], rax
mov rax, qword [rbx + 0x7f8]
mov qword [rsp + 0xe8], rbx
mov rax, qword [rax + 0xf0]
or byte [rbx + 0x78c], 2
mov dword [rsp + 0x70], 1
mov qword [rsp + 0xf8], rax
lea rax, [rbx + 0x788]
lea rbx, [rsp + 0x20]
mov qword [rsp + 0xc8], rax
mov rax, qword [rdx + 0x28]
mov rcx, rbx
mov rdx, rax
call fcn.14009c770
mov r8, r12
mov rdx, rbx
mov ecx, 1
call fcn.1401846a0
mov rdx, qword [rsp + 0x4d8]
sub rdx, qword [rbp]
jne 0x140101232
add rsp, 0x4e0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov ecx, dword [rbx + 0x638]
xor eax, eax
test ecx, ecx
sete al
jmp 0x14010115e
test r12, r12
je 0x140101225
mov rdx, r12
lea rcx, [0x1401e9114]
call fcn.1400a0b40
mov eax, 0xffffffff
jmp 0x1401011d8
mov rcx, rdi
call fcn.1400202e0
mov r12, rax
jmp 0x14010120f
call fcn.1401be670
nop
nop dword [rax + rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov rsi, qword [0x140207460]
mov r11d, dword [rsp + 0x110]
mov r14, qword [rsp + 0x120]
mov r15, qword [rsp + 0x128]
mov r12d, dword [rdx + 0x34]
mov rax, qword [rsi]
mov qword [rsp + 0x98], rax
xor eax, eax
mov rbx, rdx
mov rbp, r8
mov rdi, r9
lea r13, [rdx + 0x48]
test r11d, r11d
jne 0x14010129b
test byte [rdx + 0x3a], 4
je 0x1401012d0
mov qword [rbp], r13
xor eax, eax
mov dword [rdi], r12d
mov rdx, qword [rsp + 0x98]
sub rdx, qword [rsi]
jne 0x1401013e9
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [rsp + 0x40]
mov qword [rsp + 0x38], r8
call fcn.140100e10
mov edx, eax
mov eax, 0xffffffff
test edx, edx
js 0x1401012a4
mov r8, qword [rsp + 0x38]
je 0x140101300
mov r10d, dword [rsp + 0x118]
test r10d, r10d
je 0x1401012a4
jmp 0x14010129b
mov qword [rsp + 0x20], r14
xor r9d, r9d
mov rdx, rbx
mov rcx, r15
call fcn.140100f30
test eax, eax
je 0x14010129b
mov rcx, qword [0x1402079a0]
movzx edx, word [rsp + 0x46]
mov r9d, dword [rcx]
mov eax, edx
and ax, 0xf000
test r9d, r9d
jne 0x140101387
cmp ax, 0x8000
je 0x1401013bf
mov r12d, 0xa000
cmp ax, 0xa000
je 0x14010137a
mov r12d, 0x4000
cmp dx, 0x4000
je 0x14010137a
movzx eax, ax
cmp eax, 0x4000
je 0x1401013b7
cmp eax, 0xe000
je 0x1401013b7
and edx, 0x40
cmp dx, 1
sbb r12d, r12d
and r12d, 0xffffffb7
add r12d, 0x81ed
call fcn.140025cb0
mov r13, rax
jmp 0x14010129b
mov rcx, qword [0x140207da0]
mov ecx, dword [rcx]
test ecx, ecx
jne 0x14010133b
cmp ax, 0x8000
jne 0x14010133b
mov eax, dword [rbx + 0x34]
mov edx, eax
mov r12d, 0x81a4
and edx, 0xf000
cmp edx, 0x8000
cmove r12d, eax
jmp 0x14010137a
mov r12d, 0xe000
jmp 0x14010137a
mov eax, dword [rbx + 0x34]
mov ecx, eax
mov r12d, eax
and ecx, 0xf000
cmp ecx, 0xa000
je 0x14010137a
mov rcx, qword [0x140207da0]
mov r8d, dword [rcx]
test r8d, r8d
je 0x14010139d
jmp 0x140101365
call fcn.1401be670
nop
nop
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rsi, qword [0x140207460]
mov r12, qword [rcx]
mov rbp, qword [rcx + 8]
mov r13, qword [rdx + 0x78]
mov rax, qword [rsi]
mov qword [rsp + 0x88], rax
xor eax, eax
mov rbx, rdx
cmp qword [rdx + 0x70], rbp
je 0x140101668
test r12, r12
mov rcx, r12
mov rax, qword [r13 + 0x7f8]
lea r11, [r13 + 0xe8]
cmove rcx, rbp
mov r10, qword [rax + 0xf0]
mov edx, dword [rcx + 0x34]
mov r9d, dword [rcx + 0x40]
mov dword [rsp + 0x20], 0
lea r8, [rcx + 0x6c]
mov qword [rsp + 0x28], 0
mov rcx, r10
and edx, 0xf000
cmp edx, 0x4000
sete al
cmp edx, 0xe000
sete dl
or eax, edx
mov rdx, r11
movzx eax, al
mov dword [rsp + 0x30], eax
call fcn.140014180
test eax, eax
jne 0x1401014c8
xor eax, eax
mov rdx, qword [rsp + 0x88]
sub rdx, qword [rsi]
jne 0x140101e50
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [rbx + 0x10]
mov r14, qword [rbx + 0x78]
test r8d, r8d
jne 0x140101670
movzx eax, byte [r14 + 0x115]
shr al, 7
movzx eax, al
test r12, r12
je 0x140101af0
mov edx, dword [r12 + 0x38]
test edx, 0x40008000
jne 0x1401017b4
test rbp, rbp
je 0x140101cfd
xor r10d, r10d
mov rdx, qword [r14 + 0x7f8]
cmp dword [rbp + 0x34], 0x4000
mov dword [rsp + 0x7c], 0
setne r8b
mov r11, qword [rdx + 0xf0]
mov edx, dword [r12 + 0x34]
cmp edx, 0x4000
sete cl
cmp r8b, cl
je 0x140101e55
cmp edx, 0x4000
je 0x140101b80
lea rdx, [rsp + 0x7c]
mov dword [rsp + 0x28], eax
lea r9, [rsp + 0x78]
mov rcx, r11
lea rdi, [r14 + 0x5b8]
mov qword [rsp + 0x30], rdx
mov rdx, r12
lea r8, [rsp + 0x80]
mov dword [rsp + 0x20], r10d
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x58], r10d
call 0x140101240
mov r10d, dword [rsp + 0x58]
test eax, eax
js 0x140101e1f
cmp byte [r14 + 0x116], 0
mov rdx, qword [rsp + 0x80]
lea r15, [rbp + 0x48]
jns 0x1401015b9
test r10d, r10d
je 0x1401018f8
mov r12d, dword [rbp + 0x34]
mov r8d, dword [rsp + 0x78]
mov ecx, dword [rsp + 0x7c]
cmp r12d, r8d
jne 0x1401016e8
movsxd rax, dword [rdx + 0x20]
test eax, eax
jne 0x140101bb8
mov rax, qword [0x140207cf0]
mov rax, qword [rax]
mov rax, qword [rax + 0x100]
cmp qword [rax + 0x10], 0x20
mov rax, qword [rdx]
je 0x140101cb0
mov r9, qword [rdx + 8]
xor rax, qword [rbp + 0x48]
xor r9, qword [rbp + 0x50]
or rax, r9
je 0x140101c78
mov eax, 1
xor eax, 1
test eax, eax
je 0x1401016e8
test ecx, ecx
jne 0x1401016e8
mov eax, dword [r14 + 0x638]
test eax, eax
jne 0x1401016e8
nop word cs:[rax + rax]
lea rcx, [r13 + 0x5b8]
call fcn.14010ff60
test eax, eax
je 0x14010149a
mov dword [rbx + 0x34], 1
mov eax, 0xffffffff
jmp 0x14010149c
xor ebp, ebp
jmp 0x14010142f
mov ecx, dword [r14 + 0x6fc]
test ecx, ecx
je 0x140101798
test r12, r12
je 0x140101bd0
mov edx, dword [r12 + 0x38]
test edx, 0x20000000
je 0x1401018e0
test rbp, rbp
je 0x140101640
mov r8d, dword [rbp + 0x34]
cmp r8d, 0x4000
je 0x140101b20
lea rax, [rbp + 0x6c]
lea r9, [rbp + 0x48]
mov edx, 0x2d
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
lea rcx, [r14 + 0x5b8]
mov dword [rsp + 0x20], 1
call fcn.14010e6a0
jmp 0x140101640
mov qword [rsp + 0x68], rdx
add rbp, 0x6c
mov dword [rsp + 0x64], r8d
mov dword [rsp + 0x58], ecx
call fcn.140025cb0
mov rdx, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x58]
mov r9, rax
mov r8d, dword [rsp + 0x64]
movsxd rax, dword [rdx + 0x20]
test eax, eax
je 0x1401018c0
lea r10, [rax + rax*2]
lea r10, [rax + r10*4]
mov rax, qword [0x1402079b0]
lea rax, [rax + r10*8]
cmp qword [rax + 0x10], 0x20
mov rax, qword [rdx]
je 0x140101c10
mov r10, qword [rdx + 8]
xor rax, qword [r9]
xor r10, qword [r9 + 8]
or rax, r10
je 0x140101ba0
mov eax, 1
xor eax, 1
mov dword [rsp + 0x48], ecx
mov r9, r15
mov rcx, rdi
xor eax, 1
mov qword [rsp + 0x20], rdx
mov edx, r12d
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x38], rbp
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], 1
call fcn.14010e350
jmp 0x140101640
movzx eax, byte [r14 + 0x115]
shr al, 7
movzx eax, al
test r12, r12
je 0x140101c48
mov edx, dword [r12 + 0x38]
and dh, 0x30
jne 0x140101b40
mov r10d, 1
test rbp, rbp
jne 0x14010150d
mov rdx, qword [r14 + 0x7f8]
mov rcx, qword [rdx + 0xf0]
mov edx, 1
cmp dword [r12 + 0x34], 0x4000
mov dword [rsp + 0x7c], 0
je 0x140101dcd
add r14, 0x5b8
lea r8, [rsp + 0x7c]
mov dword [rsp + 0x20], edx
lea r9, [rsp + 0x78]
mov qword [rsp + 0x30], r8
mov rdx, r12
lea r8, [rsp + 0x80]
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x28], eax
call 0x140101240
test eax, eax
js 0x140101640
mov rbp, qword [rsp + 0x80]
mov r15d, dword [rsp + 0x7c]
mov edi, dword [rsp + 0x78]
call fcn.140025cb0
movsxd rdx, dword [rbp + 0x20]
test edx, edx
jne 0x140101ce5
mov rdx, qword [0x140207cf0]
mov rdx, qword [rdx]
mov rdx, qword [rdx + 0x100]
cmp qword [rdx + 0x10], 0x20
mov rdx, qword [rbp]
je 0x140101d86
mov rcx, qword [rbp + 8]
xor rdx, qword [rax]
xor rcx, qword [rax + 8]
or rdx, rcx
je 0x140101d73
mov eax, 1
xor eax, 1
add r12, 0x6c
mov dword [rsp + 0x30], r15d
mov r9, rbp
xor eax, 1
mov qword [rsp + 0x28], r12
mov r8d, edi
mov edx, 0x2b
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.14010e6a0
jmp 0x140101640
mov rax, qword [0x140207cf0]
mov rax, qword [rax]
mov rax, qword [rax + 0x100]
jmp 0x14010172f
movzx eax, byte [r14 + 0x115]
shr al, 7
movzx eax, al
jmp 0x1401017b4
movsxd rax, dword [rdx + 0x20]
test eax, eax
jne 0x140101c90
mov rax, qword [0x140207cf0]
mov rax, qword [rax]
mov rax, qword [rax + 0x100]
cmp qword [rax + 0x10], 0x20
lea r15, [rbp + 0x48]
mov rax, qword [rdx]
je 0x140101d3e
mov rcx, qword [rdx + 8]
xor rax, qword [rbp + 0x48]
xor rcx, qword [rbp + 0x50]
or rax, rcx
je 0x140101d12
mov eax, 1
xor eax, 1
test eax, eax
je 0x14010198f
movsxd rax, dword [rbp + 0x68]
test eax, eax
jne 0x140101d26
mov rax, qword [0x140207cf0]
mov rax, qword [rax]
mov rax, qword [rax + 0x100]
cmp qword [rax + 0x10], 0x20
lea r8, [r12 + 0x48]
mov rax, qword [r15]
je 0x140101dea
mov rcx, qword [r15 + 8]
xor rax, qword [r12 + 0x48]
xor rcx, qword [r12 + 0x50]
or rax, rcx
je 0x140101dba
movsxd rdi, dword [r12 + 0x40]
cmp rdi, 0xffffffffffffffc7
ja 0x140101e97
je 0x140101e81
lea rdx, [rdi + 0x39]
cmp rdx, 0xffffffffffffff6f
ja 0x140101e6f
lea rcx, [rdi + 0xc9]
call fcn.1400a5fa0
lea rdx, [r12 + 0x6c]
mov r8, rdi
lea rcx, [rax + 0xc8]
mov qword [rax], 0
mov qword [rax + 8], rcx
mov qword [rsp + 0x58], rax
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x78]
pxor xmm0, xmm0
mov r8, r14
movabs rdx, 0x4ec4ec4ec4ec4ec5
mov r9, qword [rsp + 0x58]
mov byte [r9 + rdi + 0xc8], 0
lea rdi, [r9 + 0x41]
mov dword [r9 + 0x10], eax
mov rax, qword [0x140207cf0]
and rdi, 0xfffffffffffffff8
movups xmmword [r9 + 0x14], xmm0
mov rax, qword [rax]
movups xmmword [r9 + 0x24], xmm0
mov rax, qword [rax + 0x100]
sub rax, qword [0x1402079b0]
mov qword [r9 + 0x39], 0
mov qword [r9 + 0xc0], 0
sar rax, 3
imul rax, rdx
mov edx, 2
mov dword [r9 + 0x34], eax
mov eax, r9d
sub eax, edi
lea ecx, [rax + 0xc8]
xor eax, eax
shr ecx, 3
rep stosq qword [rdi], rax
mov byte [r9 + 0x38], 0x4d
mov rcx, r9
mov eax, dword [r12 + 0x34]
mov dword [r9 + 0x3c], eax
movdqu xmm1, xmmword [r12 + 0x48]
movups xmmword [r9 + 0x40], xmm1
movdqu xmm2, xmmword [r12 + 0x58]
movups xmmword [r9 + 0x50], xmm2
mov eax, dword [r12 + 0x68]
mov byte [r9 + 0x80], 0x4d
mov dword [r9 + 0x60], eax
mov eax, dword [rbp + 0x34]
mov dword [r9 + 0x84], eax
movdqu xmm3, xmmword [r15]
movups xmmword [r9 + 0x88], xmm3
movdqu xmm4, xmmword [r15 + 0x10]
movups xmmword [r9 + 0x98], xmm4
mov eax, dword [rbp + 0x68]
mov dword [r9 + 0xa8], eax
mov qword [rsp + 0x58], r9
call fcn.1400eaba0
mov rcx, qword [rsp + 0x58]
call fcn.1400d2670
jmp 0x140101640
test rbp, rbp
jne 0x14010169e
mov rdx, qword [r14 + 0x7f8]
mov dword [rsp + 0x7c], 0
mov rcx, qword [rdx + 0xf0]
xor edx, edx
jmp 0x1401017f6
lea rcx, [rbp + 0x48]
lea r9, [r14 + 0x5b8]
xor edx, edx
lea r8, [rbp + 0x6c]
call fcn.14009bbd0
jmp 0x140101640
lea rdx, [r12 + 0x6c]
lea rcx, [r14 + 0x5b8]
call fcn.1401101d0
test rbp, rbp
je 0x140101640
mov rcx, qword [rax]
movzx r9d, word [rbp + 0x34]
lea rdx, [rbp + 0x48]
mov r8d, 1
call fcn.14010a8f0
jmp 0x140101640
lea rdx, [r12 + 0x48]
lea rcx, [rbp + 0x48]
lea r9, [r14 + 0x5b8]
lea r8, [r12 + 0x6c]
call fcn.14009bbd0
jmp 0x140101640
mov eax, dword [r9 + 0x10]
cmp dword [rdx + 0x10], eax
jne 0x140101751
xor eax, eax
jmp 0x140101756
lea r9, [rax + rax*2]
lea r9, [rax + r9*4]
mov rax, qword [0x1402079b0]
lea rax, [rax + r9*8]
jmp 0x1401015ec
test rbp, rbp
jne 0x14010169e
movzx eax, byte [r14 + 0x115]
mov rdx, qword [r14 + 0x7f8]
mov dword [rsp + 0x7c], 0
shr al, 7
mov rcx, qword [rdx + 0xf0]
mov edx, 1
movzx eax, al
jmp 0x1401017f6
mov r10, qword [rdx + 8]
xor rax, qword [r9]
xor r10, qword [r9 + 8]
or rax, r10
jne 0x140101751
mov rax, qword [rdx + 0x10]
mov r10, qword [rdx + 0x18]
xor rax, qword [r9 + 0x10]
xor r10, qword [r9 + 0x18]
or rax, r10
jne 0x140101751
xor eax, eax
jmp 0x140101756
test rbp, rbp
jne 0x14010169e
mov rdx, qword [r14 + 0x7f8]
mov dword [rsp + 0x7c], 0
mov rcx, qword [rdx + 0xf0]
mov edx, 1
jmp 0x1401017f6
mov eax, dword [r15 + 0x10]
cmp dword [rdx + 0x10], eax
jne 0x14010160f
xor eax, eax
jmp 0x140101614
lea rcx, [rax + rax*2]
lea rcx, [rax + rcx*4]
mov rax, qword [0x1402079b0]
lea rax, [rax + rcx*8]
jmp 0x140101915
mov r9, qword [rdx + 8]
xor rax, qword [rbp + 0x48]
xor r9, qword [rbp + 0x50]
or rax, r9
jne 0x14010160f
mov rax, qword [rdx + 0x10]
mov r9, qword [rdx + 0x18]
xor rax, qword [r15 + 0x10]
xor r9, qword [r15 + 0x18]
or rax, r9
jne 0x14010160f
xor eax, eax
jmp 0x140101614
lea rcx, [rdx + rdx*2]
lea rcx, [rdx + rcx*4]
mov rdx, qword [0x1402079b0]
lea rdx, [rdx + rcx*8]
jmp 0x140101864
mov rdx, qword [r14 + 0x7f8]
mov rcx, qword [rdx + 0xf0]
xor edx, edx
jmp 0x1401017df
mov eax, dword [r15 + 0x10]
cmp dword [rdx + 0x10], eax
jne 0x14010193c
xor eax, eax
jmp 0x140101941
lea rcx, [rax + rax*2]
lea rcx, [rax + rcx*4]
mov rax, qword [0x1402079b0]
lea rax, [rax + rcx*8]
jmp 0x140101965
mov rcx, qword [rdx + 8]
xor rax, qword [rbp + 0x48]
xor rcx, qword [rbp + 0x50]
or rax, rcx
jne 0x14010193c
mov rax, qword [rdx + 0x10]
mov rcx, qword [rdx + 0x18]
xor rax, qword [r15 + 0x10]
xor rcx, qword [r15 + 0x18]
or rax, rcx
jne 0x14010193c
xor eax, eax
jmp 0x140101941
mov eax, dword [rax + 0x10]
cmp dword [rbp + 0x10], eax
jne 0x140101887
xor eax, eax
jmp 0x14010188c
mov rcx, qword [rbp + 8]
xor rdx, qword [rax]
xor rcx, qword [rax + 8]
or rdx, rcx
jne 0x140101887
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x18]
xor rdx, qword [rax + 0x10]
xor rcx, qword [rax + 0x18]
or rdx, rcx
jne 0x140101887
xor eax, eax
jmp 0x14010188c
mov eax, dword [r8 + 0x10]
cmp dword [r15 + 0x10], eax
jne 0x14010198f
jmp 0x1401015b9
lea rdx, [r12 + 0x48]
lea r9, [r14 + 0x5b8]
xor ecx, ecx
lea r8, [r12 + 0x6c]
call fcn.14009bbd0
jmp 0x140101640
mov rcx, qword [r15 + 8]
xor rax, qword [r12 + 0x48]
xor rcx, qword [r12 + 0x50]
or rax, rcx
jne 0x14010198f
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 0x18]
xor rax, qword [r8 + 0x10]
xor rcx, qword [r8 + 0x18]
or rax, rcx
jne 0x14010198f
jmp 0x1401015b9
xor edx, edx
lea rax, [rbp + 0x6c]
mov r8d, dword [rbp + 0x34]
lea r9, [rbp + 0x48]
mov dword [rsp + 0x30], edx
mov rcx, rdi
mov edx, 0x2d
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
call fcn.14010e6a0
jmp 0x140101640
call fcn.1401be670
mov r8d, 0x16f
lea rdx, str.diff_lib.c
lea rcx, str.S_ISSPARSEDIR_old_entry__ce_mode___S_ISSPARSEDIR_new_entry__ce_mode_
call qword [sym.imp.msvcrt.dll__assert]
mov r8d, 0x90
lea rcx, [0x1401e9170]
call fcn.1400a08a0
mov r8d, 1
or rdx, 0xffffffffffffffff
lea rcx, [0x1401e9170]
call fcn.1400a08a0
mov r8, rdi
mov edx, 0x38
lea rcx, [0x1401e9170]
call fcn.1400a08a0
nop
nop dword [rax]