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

Disassembly:
mov dword [rsp + 0x20], r9d
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov r14, qword [rcx]
mov esi, edx
mov r13, qword [rcx + 8]
xor edx, edx
mov rbx, qword [rcx + 0x10]
mov r10d, r8d
mov rdi, rcx
mov dword [rsp + 0x3c], edx
mov ebp, dword [r14 + 0x44]
mov r12d, edx
movzx eax, byte [r13 + 0x20]
dec ebp
mov dword [rsp + 0x38], edx
mov byte [rsp + 0x98], al
mov dword [rsp + 0x90], ebp
mov dword [r14 + 0x44], ebp
mov dword [rsp + 0x34], edx
cmp esi, 2
jne 0x14015df91
cmp byte [r13 + 0x21], 0x57
jne 0x14015df91
xor eax, eax
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
test r10d, r10d
jle 0x14015e061
cmp byte [r13 + 0x20], 0x56
movsxd rax, dword [rbx + 0x90]
jne 0x14015e00a
mov dword [rsp + 0x34], eax
cmp esi, 2
jne 0x14015dfe9
movzx ecx, byte [r13 + 0x21]
cmp cl, 0x53
jne 0x14015dfc1
mov r8d, dword [rdi + 0x30]
jmp 0x14015dfc5
mov r8d, dword [rdi + 0x28]
cmp cl, 0x53
mov eax, 0x39
mov edx, 0x37
mov r9d, 0x30
cmovne edx, eax
mov eax, 0x28
cmovne eax, r9d
mov ecx, dword [rax + rdi]
jmp 0x14015dff5
mov r8d, dword [rcx + 0x38]
mov edx, 0x36
mov ecx, dword [rcx + 0x30]
mov dword [rsp + 0x28], ebp
mov r9d, r10d
mov dword [rsp + 0x20], ecx
mov rcx, rdi
call fcn.14015e420
jmp 0x14015e061
mov r12, rax
cmp dword [rbx + 0x94], eax
jg 0x14015e031
xor r9d, r9d
mov dword [rsp + 0x20], 1
mov rcx, rbx
lea edx, [r9 + 0x2f]
call fcn.1400f2610
mov r12d, eax
jmp 0x14015e061
lea rcx, [r12 + r12*2]
inc eax
mov dword [rbx + 0x90], eax
mov rax, qword [rbx + 0x88]
mov dword [rax + rcx*8], 0x2f
mov dword [rax + rcx*8 + 4], r10d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], 1
mov qword [rax + rcx*8 + 0x10], rdx
cmp esi, 1
jne 0x14015e077
cmp dword [r13 + 0x7c], 0
jne 0x14015e077
xor edx, edx
mov rcx, rdi
call fcn.14015cea0
mov eax, dword [rbx + 0x90]
mov ecx, esi
mov qword [rsp + 0xa0], r15
mov dword [rsp + 0x40], eax
sub ecx, 1
je 0x14015e11f
cmp ecx, 1
je 0x14015e0e0
cmp dword [r13 + 0x7c], 0
mov eax, dword [rdi + 0x3c]
mov r15d, dword [rdi + 0x38]
mov dword [rsp + 0x30], eax
je 0x14015e0c6
mov r8d, dword [r13 + 0x80]
mov r9d, 1
mov rcx, rbx
lea edx, [r9 + 0x52]
call fcn.1401363f0
jmp 0x14015e132
mov eax, dword [rdi + 0x20]
xor r9d, r9d
mov r8d, r15d
mov dword [rsp + 0x20], eax
mov rdx, r13
mov rcx, r14
call fcn.14015d290
jmp 0x14015e132
mov r8d, dword [r13 + 0x7c]
mov r9d, 1
mov eax, dword [rdi + 0x2c]
mov r15d, dword [rdi + 0x28]
mov dword [rsp + 0x30], eax
test r8d, r8d
je 0x14015e108
lea edx, [r9 + 0x52]
mov rcx, rbx
call fcn.1401363f0
jmp 0x14015e132
mov eax, dword [rdi + 0x20]
mov r8d, r15d
mov rdx, r13
mov dword [rsp + 0x20], eax
mov rcx, r14
call fcn.14015d290
jmp 0x14015e132
mov eax, dword [rdi + 0x34]
mov rcx, rdi
mov r15d, dword [rdi + 0x30]
mov dword [rsp + 0x30], eax
call fcn.14015f6e0
cmp esi, dword [rdi + 0x24]
jne 0x14015e167
mov r8d, r15d
mov edx, 0x7b
mov rcx, rbx
call fcn.140136380
movsxd rax, dword [rbx + 0x90]
test eax, eax
jle 0x14015e167
lea rcx, [rax + rax*2]
mov edx, 2
mov rax, qword [rbx + 0x88]
mov word [rax + rcx*8 - 0x16], dx
cmp dword [rsp + 0xa8], 0
movsxd rcx, dword [rbx + 0x90]
mov eax, dword [rbx + 0x94]
je 0x14015e1f1
lea edx, [rcx + 2]
cmp eax, ecx
jg 0x14015e1a2
mov r9d, edx
mov dword [rsp + 0x20], 0
mov edx, 5
mov r8d, r15d
mov rcx, rbx
call fcn.1400f2610
jmp 0x14015e1d3
lea eax, [rcx + 1]
xor r8d, r8d
mov dword [rbx + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 0x88]
mov dword [rax + rcx*8], 5
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
mov edx, VariantTimeToDosDateTime
mov rcx, rbx
call fcn.140136310
movzx esi, byte [rsp + 0x98]
mov dword [rsp + 0x3c], eax
jmp 0x14015e271
movzx esi, byte [rsp + 0x98]
xor r8d, r8d
cmp sil, 0x4c
mov edx, r8d
setne dl
inc edx
add edx, ecx
cmp eax, ecx
jg 0x14015e228
mov dword [rsp + 0x20], r8d
mov r9d, edx
mov r8d, r15d
mov edx, 5
mov rcx, rbx
call fcn.1400f2610
jmp 0x14015e256
lea eax, [rcx + 1]
mov dword [rbx + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 0x88]
mov dword [rax + rcx*8], 5
mov dword [rax + rcx*8 + 4], r15d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
cmp sil, 0x4c
je 0x14015e302
mov edx, VariantTimeToDosDateTime
mov rcx, rbx
call fcn.140136310
mov dword [rsp + 0x38], eax
cmp sil, 0x4c
je 0x14015e302
mov rcx, qword [r13 + 0x18]
test rcx, rcx
je 0x14015e296
mov esi, dword [rcx]
test esi, esi
je 0x14015e29c
mov edx, esi
mov rcx, r14
call fcn.14011df80
jmp 0x14015e29e
xor eax, eax
mov esi, eax
jmp 0x14015e29e
xor eax, eax
mov r8d, eax
mov edx, r15d
mov rcx, rdi
mov ebp, eax
call fcn.14015f5d0
mov eax, dword [rsp + 0x40]
mov r8d, ebp
mov r9d, dword [rsp + 0x30]
mov rcx, r14
mov rdx, qword [r13 + 0x18]
mov dword [rsp + 0x20], eax
call fcn.14015f0f0
cmp esi, 1
jne 0x14015e2ed
test ebp, ebp
je 0x14015e2fb
movzx eax, byte [r14 + 0x1f]
cmp al, 8
jae 0x14015e2fb
movzx eax, al
mov dword [r14 + rax*4 + 0xcc], ebp
inc byte [r14 + 0x1f]
jmp 0x14015e2fb
cmp esi, dword [r14 + 0x28]
jle 0x14015e2fb
mov dword [r14 + 0x28], esi
mov dword [r14 + 0x2c], ebp
mov ebp, dword [rsp + 0x90]
mov edx, dword [rsp + 0x34]
mov r15, qword [rsp + 0xa0]
test edx, edx
je 0x14015e367
movsxd rcx, dword [rbx + 0x90]
cmp dword [rbx + 0x94], ecx
jg 0x14015e33a
xor eax, eax
mov r9d, edx
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov rcx, rbx
lea edx, [rax + 0xb]
call fcn.1400f2610
jmp 0x14015e367
lea eax, [rcx + 1]
xor r8d, r8d
mov dword [rbx + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rbx + 0x88]
mov qword [rax + rcx*8], VariantTimeToDosDateTime
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
mov rcx, qword [rbx + 0x18]
not ebp
mov eax, dword [rcx + 0x48]
add eax, dword [rcx + 0x44]
jns 0x14015e382
mov r8d, ebp
mov rdx, rbx
call fcn.140100bd0
jmp 0x14015e392
mov rcx, qword [rcx + 0x50]
mov eax, dword [rbx + 0x90]
movsxd rdx, ebp
mov dword [rcx + rdx*4], eax
mov ecx, dword [rsp + 0x38]
lea rdx, [0x140293f60]
test ecx, ecx
je 0x14015e3d4
mov rax, qword [rbx]
mov r8d, dword [rbx + 0x90]
cmp byte [rax + 0x61], 0
je 0x14015e3b6
mov rax, rdx
jmp 0x14015e3d0
test ecx, ecx
lea eax, [r8 - 1]
cmovns eax, ecx
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], r8d
test r12d, r12d
je 0x14015e409
mov rax, qword [rbx]
mov r8d, dword [rbx + 0x90]
cmp byte [rax + 0x61], 0
jne 0x14015e405
lea eax, [r8 - 1]
test r12d, r12d
cmovns eax, r12d
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rbx + 0x88]
lea rdx, [rax + rcx*8]
mov dword [rdx + 8], r8d
mov eax, dword [rsp + 0x3c]
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret