Function at 0x14003f020
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, 0x788
movups xmmword [rsp + 0x770], xmm6
mov rsi, qword [0x14022c040]
mov rax, qword [rsp + 0x7f0]
mov qword [rsp + 0x70], rax
mov r14, rdx
lea rdx, [rsp + 0xb4]
mov rbp, r8
mov rax, qword [rsi]
mov qword [rsp + 0x768], rax
lea rax, [rsp + 0xb0]
movq xmm1, rdx
movabs rdx, 0x100000000
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x68], r9
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], r8
movq xmm6, rax
movabs rax, 0x1ffffffff
and rax, qword [0x1401e0848]
punpcklqdq xmm6, xmm1
cmp rax, rdx
je 0x14003f0ef
lea r13, [r14 + 0xf0]
mov qword [rsp + 0x28], r8
lea r9, str._s__I64u_n
mov edx, 0x679
mov qword [rsp + 0x20], r13
lea r8, str.GIT_TRACE_PACK_ACCESS
lea rcx, str.packfile.c
call fcn.14009f750
lea rax, [rsp + 0x160]
xor ebx, ebx
mov edi, 0x40
mov qword [rsp + 0x50], rax
mov rsi, rax
lea rax, [rsp + 0xe0]
lea r12, [rsp + 0xb8]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xac]
mov qword [rsp + 0x40], rax
nop word cs:[rax + rax]
cmp qword [0x140254ae8], 0
mov r13d, ebx
je 0x14003f1a1
lea eax, [r14 + rbp]
mov r8, qword [rsp + 0x30]
mov qword [rsp + 0xd0], 0
mov edx, eax
mov ecx, eax
mov qword [rsp + 0xe0], r14
shr ecx, 0x10
shr edx, 8
mov qword [rsp + 0xe8], rbp
add edx, ecx
lea rcx, [0x140254ae0]
add eax, edx
mov rdx, qword [rsp + 0x38]
mov dword [rsp + 0xd8], eax
call fcn.140029590
test rax, rax
jne 0x14003f8e0
mov eax, dword [0x140254a80]
test eax, eax
je 0x14003f1b9
cmp dword [r14 + 0x80], 1
jg 0x14003f660
mov r9, qword [rsp + 0x38]
mov r8, rbp
mov rdx, r12
mov rcx, r14
call fcn.14003cd60
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x30]
mov edx, dword [rsp + 0xd0]
mov rcx, rax
call fcn.14003e2f0
test eax, eax
jne 0x14003f590
mov dword [rsp + 0xb0], 0xffffffff
mov edx, 0xffffffff
mov dword [rsp + 0x40], r13d
lea r13, [r14 + 0xf0]
mov r9, r13
mov r8, rbp
lea rcx, str.unknown_object_type__i_at_offset__I64u_in__s
call fcn.1400b6bf0
xor r15d, r15d
test ebx, ebx
je 0x14003f748
movsxd rbx, ebx
mov qword [rsp + 0x78], rsi
mov r12, r15
mov rdi, r14
lea rax, [rbx + rbx*2]
shl rax, 3
lea rdx, [rsi + rax - 0x30]
lea r13, [rsi + rax - 0x18]
mov eax, dword [rsp + 0x40]
sub eax, 1
lea rax, [rax + rax*2]
shl rax, 3
sub rdx, rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x58], rax
jmp 0x14003f2ce
lea rax, [rsp + 0xac]
mov edx, dword [rsp + 0xb4]
mov r9d, r15d
mov r8, rbx
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0xc8]
call fcn.140041580
mov r12, rax
test rax, rax
je 0x14003f7d8
test rsi, rsi
je 0x14003f34b
mov rcx, rbx
sub r13, 0x18
call fcn.1400eaf30
mov rcx, rsi
call fcn.1400eaf30
mov rax, qword [rsp + 0x40]
cmp r13, rax
je 0x14003f740
mov eax, dword [rsp + 0xac]
mov qword [rsp + 0xc8], r12
xor ebx, ebx
mov dword [rsp + 0xb4], eax
test r12, r12
je 0x14003f528
mov r14, qword [r13 + 8]
mov qword [rsp + 0x48], rbp
xor esi, esi
mov rbp, qword [r13]
mov qword [rsp + 0xc0], r14
mov r15d, dword [r13 + 0x10]
mov rdx, qword [rsp + 0x58]
mov r8, r14
mov rcx, rdi
mov r9d, r15d
call fcn.14003d2e0
mov rbx, rax
test rax, rax
jne 0x14003f270
lea r8, [rdi + 0xf0]
mov rdx, r14
lea rcx, str.failed_to_unpack_compressed_delta_at_offset__I64u_from__s
xor r12d, r12d
call fcn.1400b6bf0
test rsi, rsi
jne 0x14003f2ac
mov eax, dword [rsp + 0xb0]
mov r11, qword [rsp + 0x48]
mov r15, qword [rsp + 0xc8]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0xb4]
mov qword [rsp + 0x88], r15
mov dword [rsp + 0x64], eax
mov eax, r11d
add eax, edi
mov edx, eax
mov ecx, eax
shr edx, 8
shr ecx, 0x10
add edx, ecx
add eax, edx
cmp qword [0x140254ae8], 0
mov dword [rsp + 0x94], eax
je 0x14003f3df
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x38]
lea rcx, [0x140254ae0]
mov dword [rsp + 0xd8], eax
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xe8], r11
call fcn.140029590
test rax, rax
jne 0x14003f7f0
mov r15, qword [0x1401e0890]
mov eax, dword [rsp + 0x64]
lea rcx, [0x1401e0890]
add rax, qword [0x140254ad0]
mov qword [0x140254ad0], rax
mov r14, qword [r15]
cmp r15, rcx
je 0x14003f491
mov qword [rsp + 0x98], rbx
mov rbx, r14
jmp 0x14003f479
mov rcx, qword [r15 + 0x10]
call fcn.1400eaf30
lea r8, [r15 - 0x10]
mov rdx, r14
lea rcx, [0x140254ae0]
call fcn.140029710
mov rdx, qword [r15]
mov rax, qword [r15 + 8]
mov rcx, r14
mov qword [rdx + 8], rax
mov qword [rax], rdx
mov eax, dword [r15 + 0x18]
sub qword [0x140254ad0], rax
call fcn.1400eaf30
lea rax, [0x1401e0890]
mov rdx, qword [rbx]
cmp rbx, rax
je 0x14003f489
mov rax, qword [0x140254ad0]
mov r15, rbx
mov rbx, rdx
mov rcx, qword [0x14022c3c0]
lea r14, [r15 - 0x20]
cmp qword [rcx], rax
jb 0x14003f420
mov rbx, qword [rsp + 0x98]
mov ecx, 0x40
call fcn.1400bd0a0
mov rdx, qword [0x1401e0898]
lea rcx, [0x1401e0890]
cmp qword [0x140254ae8], 0
mov qword [rax + 0x10], rdi
mov r15, rax
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x18], rax
mov eax, dword [rsp + 0x90]
mov dword [r15 + 0x3c], eax
mov rax, qword [rsp + 0x88]
mov qword [r15 + 0x30], rax
mov eax, dword [rsp + 0x64]
mov dword [r15 + 0x38], eax
lea rax, [r15 + 0x20]
mov qword [rdx], rax
mov qword [r15 + 0x20], rcx
mov qword [r15 + 0x28], rdx
mov qword [0x1401e0898], rax
je 0x14003f9fe
mov eax, dword [rsp + 0x94]
mov qword [r15], 0
mov rdx, r15
lea rcx, [0x140254ae0]
mov dword [r15 + 8], eax
call fcn.140029680
jmp 0x14003f2ac
mov r8, qword [rsp + 0x38]
mov rdx, rbp
mov rcx, rdi
call fcn.14017ab60
test eax, eax
je 0x14003f810
mov rdx, qword [rsp + 0xc8]
xor esi, esi
mov r14, qword [r13 + 8]
mov rax, qword [r13]
mov qword [rsp + 0xc0], r14
test rdx, rdx
jne 0x14003f800
mov rsi, qword [rsp + 0x40]
sub r13, 0x18
cmp r13, rsi
je 0x14003f740
mov edx, dword [rsp + 0xac]
mov qword [rsp + 0xc8], rbx
mov rbp, rax
mov dword [rsp + 0xb4], edx
jmp 0x14003f528
mov r9d, dword [rsp + 0xe0]
mov eax, eax
add rax, rbp
lea edx, [r9 - 6]
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0xb0], r9d
cmp edx, 1
ja 0x14003fa50
mov qword [rsp + 0x20], rbp
lea r8, [rsp + 0xc0]
mov rdx, r12
mov rcx, r14
call fcn.14003ec70
mov r15, rax
test rax, rax
je 0x14003f960
lea r8, [rbx + rbx*2]
shl r8, 3
cmp edi, ebx
jg 0x14003f628
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x48], r8
cmp rsi, rax
je 0x14003f708
lea edi, [rdi + rdi*2 + 0x30]
add r13d, 1
mov rcx, rsi
sar edi, 1
cmp edi, ebx
cmovle edi, r13d
movsxd rax, edi
lea rdx, [rax + rax*2]
shl rdx, 3
call fcn.1400bd2c0
mov r8, qword [rsp + 0x48]
mov rsi, rax
movq xmm0, rbp
add r8, rsi
add rbx, 1
mov rbp, r15
mov eax, dword [rsp + 0xac]
movhps xmm0, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], r15
movups xmmword [r8], xmm0
mov dword [r8 + 0x10], eax
jmp 0x14003f140
mov r8, qword [rsp + 0x30]
mov rdx, rbp
mov rcx, r14
call fcn.14017ab60
test eax, eax
js 0x14003fa35
mov eax, dword [rsp + 0xe0]
mov rcx, r14
lea edx, [rax + 1]
call fcn.14017aab0
mov edx, dword [rsp + 0xe0]
mov rcx, r14
sub rax, rbp
mov r15, rax
call fcn.14017aa30
mov r9, r15
mov r8, rbp
mov rdx, r12
mov dword [rsp + 0x20], eax
mov rcx, r14
mov dword [rsp + 0x48], eax
call fcn.14003b0e0
mov r10d, dword [rsp + 0x48]
test eax, eax
je 0x14003f1b9
lea rbx, [rsp + 0x130]
mov r8d, r10d
mov rdx, r14
mov rcx, rbx
call fcn.14003e830
mov rcx, rbx
call fcn.140029ec0
lea rcx, str.bad_packed_object_CRC_for__s
mov rdx, rax
call fcn.1400b6bf0
lea rcx, [r14 + 0x58]
mov rdx, rbx
call fcn.140179a70
xor r15d, r15d
jmp 0x14003f76e
lea edi, [r13 + r13*2 + 0x30]
sar edi, 1
movsxd rax, edi
lea rcx, [rax + rax*2]
shl rcx, 3
call fcn.1400bd0a0
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
mov rsi, rax
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x48]
jmp 0x14003f628
mov rsi, qword [rsp + 0x78]
mov r15, r12
mov rdi, qword [rsp + 0x68]
test rdi, rdi
je 0x14003f75b
mov eax, dword [rsp + 0xb0]
mov dword [rdi], eax
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x14003f76e
mov eax, dword [rsp + 0xac]
mov dword [rdi], eax
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x14003f78b
sub dword [rax + 0x24], 1
mov qword [rsp + 0xb8], 0
mov rax, qword [rsp + 0x50]
cmp rsi, rax
je 0x14003f79d
mov rcx, rsi
call fcn.1400eaf30
mov rsi, qword [0x14022c040]
mov rax, qword [rsp + 0x768]
sub rax, qword [rsi]
jne 0x14003fa73
movups xmm6, xmmword [rsp + 0x770]
mov rax, r15
add rsp, 0x788
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.failed_to_apply_delta
call fcn.1400b6bf0
jmp 0x14003f2a3
mov rcx, r15
call fcn.1400eaf30
jmp 0x14003f2ac
mov qword [rsp + 0x48], rbp
mov rbp, rax
jmp 0x14003f306
mov edx, dword [rsp + 0xd0]
pxor xmm0, xmm0
mov rcx, rdi
lea rsi, [rsp + 0x130]
movups xmmword [rsp + 0xe0], xmm0
movups xmmword [rsp + 0xf0], xmm0
movups xmmword [rsp + 0x100], xmm0
movups xmmword [rsp + 0x110], xmm0
movups xmmword [rsp + 0x120], xmm0
call fcn.14017aa30
mov rdx, rdi
mov rcx, rsi
mov r8d, eax
call fcn.14003e830
mov rcx, rsi
call fcn.140029ec0
lea r9, [rdi + 0xf0]
mov r8, rbp
lea rcx, str.failed_to_read_delta_base_object__s_at_offset__I64u_from__s
mov rdx, rax
call fcn.1400b6bf0
lea rcx, [rdi + 0x58]
mov rdx, rsi
call fcn.140179a70
mov r8, qword [rsp + 0x30]
xor r9d, r9d
mov rdx, rsi
mov rcx, qword [rsp + 0x80]
lea rax, [rsp + 0xc8]
movups xmmword [rsp + 0xe0], xmm6
mov qword [rsp + 0x108], rax
call fcn.140033f90
test eax, eax
js 0x14003fa20
mov rsi, qword [rsp + 0xc8]
mov rdx, rsi
jmp 0x14003f54a
mov rdx, rax
mov eax, dword [rax + 0x3c]
lea rcx, [0x140254ae0]
mov dword [rsp + 0x40], ebx
lea r8, [rdx + 0x10]
mov qword [rsp + 0x48], rdx
mov r15, qword [rdx + 0x30]
mov dword [rsp + 0xb0], eax
mov eax, dword [rdx + 0x38]
mov dword [rsp + 0xac], eax
call fcn.140029710
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rdx + 0x20]
mov rax, qword [rdx + 0x28]
mov qword [rcx + 8], rax
mov qword [rax], rcx
mov rcx, rdx
mov eax, dword [rdx + 0x38]
sub qword [0x140254ad0], rax
call fcn.1400eaf30
mov edx, dword [rsp + 0xb0]
cmp edx, 4
jg 0x14003f9a8
test edx, edx
jg 0x14003f21e
lea r13, [r14 + 0xf0]
jmp 0x14003f209
mov rdi, qword [rsp + 0xc0]
mov dword [rsp + 0x40], r13d
lea r13, [r14 + 0xf0]
lea rcx, str.failed_to_validate_delta_base_reference_at_offset__I64u_from__s
mov r8, r13
mov rdx, rdi
call fcn.1400b6bf0
mov edx, dword [rsp + 0xb0]
cmp edx, 4
jle 0x14003f9d8
lea eax, [rdx - 6]
cmp eax, 1
jbe 0x14003f21b
jmp 0x14003f209
lea eax, [rdx - 6]
cmp eax, 1
ja 0x14003f94e
test r15, r15
je 0x14003f21b
lea r8, str.unpack_entry:_left_loop_at_a_valid_delta
mov edx, 0x6e2
lea rcx, str.packfile.c
call fcn.1400b6d50
nop dword [rax]
test edx, edx
jle 0x14003f209
mov r9d, dword [rsp + 0xac]
mov r8, rdi
mov rdx, r12
mov rcx, r14
call fcn.14003d2e0
mov r15, rax
jmp 0x14003f21e
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x14003bac0]
lea rcx, [0x140254ae0]
call fcn.140029400
jmp 0x14003f4fc
mov rdx, qword [r13 + 8]
mov rax, qword [r13]
mov qword [rsp + 0xc0], rdx
jmp 0x14003f563
lea r8, [r14 + 0xf0]
mov rdx, rbp
lea rcx, str.could_not_find_object_at_offset__I64u_in_pack__s
call fcn.1400b6bf0
jmp 0x14003f6fe
mov dword [rsp + 0x40], r13d
mov edx, r9d
cmp r9d, 4
jg 0x14003f94e
test r9d, r9d
jle 0x14003f94e
mov rdi, rax
jmp 0x14003f9e0
call fcn.1401d96b0
nop
nop dword [rax]