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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rbx, r8
mov rdi, rdx
mov r14, rcx
mov esi, dword [rsp + 0x138]
mov rax, qword [0x140516040]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov r12, qword [rdx]
movzx eax, byte [r12]
cmp eax, 0x33
jne 0x1401d4f8a
mov rdx, qword [r12 + 0x18]
mov rcx, r14
mov r8d, esi
call fcn.140289030
mov esi, eax
mov rax, qword [rbx + 0x58]
test byte [rax + 0x3a], 0x20
jne 0x1401d4cad
mov rcx, rbx
mov rdx, rdi
call fcn.1401d5740
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
cmp rcx, qword [0x140516040]
je 0x1401d4c97
call fcn.14029bbb0
int3
mov eax, esi
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test byte [rdi + 0x15], 8
jne 0x1401d4c7d
jmp 0x1401d4c72
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x38], 0
cmp qword [rsp + 0xa0], 0
je 0x1401d4ce7
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xa0]
call fcn.140279860
cmp qword [rsp + 0x80], 0
je 0x1401d4d19
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x80]
call fcn.140279860
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x68]
mov qword [rax + 0x20], rcx
cmp qword [rsp + 0x38], 0
je 0x1401d4d71
mov rax, qword [rsp + 0x38]
cmp dword [rax], 1
jne 0x1401d4d71
mov rax, qword [rsp + 0x38]
mov r15, qword [rax + 8]
mov qword [rax + 8], 0
mov rax, qword [rsp + 0x60]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1401d4d68
mov rcx, qword [rsp + 0x88]
call fcn.140277ca0
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x10], r15
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 0x48]
test rax, rax
je 0x1401d4da1
movsxd rcx, dword [rax]
test rcx, rcx
jle 0x1401d4da1
add rax, 0x20
xor edx, edx
mov word [rax], 0
inc rdx
add rax, 0x20
cmp rdx, rcx
jb 0x1401d4d90
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x90], rax
test rax, rax
je 0x1401d4f04
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x90]
cmp rcx, qword [rax + 0x20]
je 0x1401d4e43
mov qword [rsp + 0x80], 0
mov rax, qword [rsp + 0x90]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
cmp eax, ebp
jle 0x1401d4cb5
mov rax, qword [rsp + 0xa0]
add rax, 8
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x80]
add rax, 8
mov qword [rsp + 0xa8], rax
mov r13, qword [rsp + 0xb0]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x68], 0
jmp 0x1401d4e9d
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x80], rax
jmp 0x1401d4ddd
mov rax, qword [rsp + 0xa8]
mov r8, qword [rax + r15]
mov rcx, r14
mov rdx, qword [rsp + 0x38]
call fcn.1401c1c70
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xa8]
mov qword [rax + r15], 0
inc r13
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
cmp r13, rax
jge 0x1401d4cc7
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x48]
mov rax, qword [rax + r13*8]
cmp qword [rax], r12
jne 0x1401d4e88
movsxd r15, dword [rax + 0x24]
dec r15
shl r15, 5
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + r15]
test r8, r8
je 0x1401d4e88
mov rax, qword [rsp + 0x50]
add rax, r15
mov qword [rsp + 0x70], rax
mov rcx, r14
mov rdx, qword [rsp + 0x68]
call fcn.1401c1c70
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x70]
mov qword [rax], 0
cmp qword [rsp + 0x80], 0
jne 0x1401d4e5a
jmp 0x1401d4e88
mov rax, qword [rsp + 0x88]
cmp byte [rax + 0x67], 0
jne 0x1401d516d
mov edx, dword [rsp + 0x48]
shl rdx, 2
mov rcx, qword [r14]
call fcn.1404077d0
lea r15, [rsp + 0xbc]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, qword [rsp + 0x60]
mov r8d, 4
xor r9d, r9d
call fcn.1401c7da0
mov dword [rsp + 0x5c], eax
mov eax, dword [r15]
mov dword [r12 + 0x2c], eax
jmp 0x1401d5176
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x90], rax
test rax, rax
je 0x1401d4f16
movsxd rax, ebp
mov qword [rsp + 0xb0], rax
jmp 0x1401d4dbe
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x78], rcx
cmp eax, 0x30
jne 0x1401d4fba
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x4b
xor r8d, r8d
mov r9d, esi
call fcn.140415430
jmp 0x1401d4c68
cmp eax, 0x2b
je 0x1401d4c56
mov ebp, r9d
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x9c], eax
mov rax, qword [rbx + 0x58]
mov qword [rsp + 0x40], rax
test byte [rax + 0x39], 4
jne 0x1401d5012
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x1401d5012
mov rax, qword [rax + 0x38]
movsxd rcx, ebp
cmp byte [rax + rcx], 0
je 0x1401d5012
xor eax, eax
cmp dword [rsp + 0x130], 0
sete al
mov dword [rsp + 0x9c], eax
test ebp, ebp
jle 0x1401d5040
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x48]
mov ecx, ebp
xor edx, edx
jmp 0x1401d502d
inc rdx
cmp rcx, rdx
je 0x1401d5040
mov r8, qword [rax + rdx*8]
test r8, r8
je 0x1401d5025
cmp qword [r8], r12
jne 0x1401d5025
jmp 0x1401d4c72
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
mov dword [rsp + 0x48], 0
cmp eax, ebp
jle 0x1401d5084
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx + 0x48]
movsxd rdx, ebp
mov dword [rsp + 0x48], 0
mov r8, qword [rcx + rdx*8]
xor r9d, r9d
cmp qword [r8], r12
sete r9b
add dword [rsp + 0x48], r9d
inc rdx
cmp rax, rdx
jne 0x1401d5069
mov dword [rsp + 0xbc], 0
mov eax, dword [r12 + 4]
bt eax, 0xc
jae 0x1401d5192
mov rcx, qword [r12 + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
je 0x1401d5192
bt eax, 0x19
jae 0x1401d5128
cmp dword [r12 + 0x2c], 0
je 0x1401d5128
mov rax, qword [r12 + 0x10]
mov cl, byte [rax]
cmp cl, 0xa3
jne 0x1401d50cd
mov cl, byte [rax + 2]
cmp cl, 0xa4
je 0x1401d50e6
movzx ecx, cl
mov edx, 1
cmp ecx, 0x80
jne 0x1401d50ec
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x20]
mov edx, dword [rax]
mov eax, dword [rsp + 0x48]
cmp eax, edx
cmovg edx, eax
shl rdx, 2
mov rcx, qword [r14]
call fcn.1404077d0
lea rcx, [rsp + 0xbc]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x20], rax
jmp 0x1401d51b1
mov qword [rsp + 0x60], 0
jmp 0x1401d5153
mov rax, qword [r14]
mov qword [rsp + 0x88], rax
test r12, r12
je 0x1401d511d
mov rcx, qword [rsp + 0x88]
mov rdx, r12
xor r8d, r8d
xor r9d, r9d
call fcn.14028c950
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x5c], 5
mov rax, qword [rsp + 0x88]
cmp byte [rax + 0x67], 0
je 0x1401d4f64
mov qword [rsp + 0x50], 0
cmp qword [rsp + 0x60], 0
je 0x1401d51c9
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x60]
call fcn.140277ca0
jmp 0x1401d51c9
lea rax, [rsp + 0xbc]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x50], 0
mov rcx, r14
mov rdx, r12
mov r8d, 4
xor r9d, r9d
call fcn.1401c7da0
mov dword [rsp + 0x5c], eax
xor r13d, r13d
mov eax, dword [rsp + 0x9c]
test eax, eax
sete r13b
cmp dword [rsp + 0x5c], 4
cmovne r13d, eax
mov r8d, dword [rsp + 0xbc]
xor eax, eax
test r13d, r13d
sete al
lea edx, [rax*4 + 0x20]
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov dword [rsp + 0x68], r8d
xor r9d, r9d
call fcn.140415430
mov rax, qword [rsp + 0x40]
or byte [rax + 0x39], 8
cmp dword [rbx + 0x48], 0
jne 0x1401d522f
mov eax, dword [r14 + 0x44]
dec eax
mov dword [r14 + 0x44], eax
mov dword [rbx + 0x10], eax
test ebp, ebp
jle 0x1401d524e
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0x38]
bt eax, 0x14
jb 0x1401d524e
or eax, 0x40000
mov rcx, qword [rsp + 0x40]
mov dword [rcx + 0x38], eax
movsxd rdx, dword [rbx + 0x48]
movsxd rax, dword [rsp + 0x48]
mov qword [rsp + 0x48], rdx
add rax, rdx
mov dword [rbx + 0x48], eax
mov rcx, qword [rdi + 8]
mov r15, qword [rcx]
mov rcx, qword [r15]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
je 0x1401d52a2
mov qword [rbx + 0x50], 0
mov dword [rbx + 0x48], 0
cmp qword [rsp + 0x50], 0
je 0x1401d4c68
mov rcx, qword [r14]
mov rdx, qword [rsp + 0x50]
call fcn.140268820
jmp 0x1401d4c68
shl rax, 2
lea rdx, [rax + rax*4]
mov rax, qword [rbx + 0x50]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x70], rdx
add rdx, 0x10
call fcn.140268c70
test rax, rax
je 0x1401d5275
mov rcx, rax
mov rax, qword [r15 + 0x60]
mov qword [rcx], rax
mov rax, qword [rsp + 0x70]
mov qword [rcx + 8], rax
mov qword [r15 + 0x60], rcx
add rcx, 0x10
mov r15, rcx
cmp qword [rsp + 0x38], 0
je 0x1401d52fd
mov rdx, qword [rsp + 0x38]
mov r8, qword [rdx - 8]
mov rcx, r15
call fcn.1402d94c0
mov qword [rbx + 0x50], r15
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
movzx ecx, ax
cmp ecx, ebp
jle 0x1401d541e
test r13d, r13d
sete byte [rsp + 0x80]
mov rdx, qword [rsp + 0x48]
lea rdx, [rdx + rdx*4]
lea rdx, [r15 + rdx*4]
mov qword [rsp + 0x38], rdx
movsxd r8, ebp
mov rdx, qword [rsp + 0x40]
mov rdx, qword [rdx + 0x48]
mov r15, r8
mov rdx, qword [rdx + r8*8]
mov dword [rsp + 0x70], 0
cmp qword [rdx], r12
jne 0x1401d5406
add byte [rsp + 0x80], 0x26
cmp dword [rsp + 0x5c], 1
jne 0x1401d5459
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x87
mov r8d, dword [rsp + 0x68]
mov r9d, esi
call fcn.140415430
mov dword [rsp + 0x70], 0
mov r13, qword [rsp + 0x38]
mov dword [r13 + 4], eax
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x30
mov r8d, esi
xor r9d, r9d
call fcn.140415430
mov eax, dword [rsp + 0x68]
mov dword [r13], eax
mov al, byte [rsp + 0x80]
mov byte [r13 + 0x10], al
test ebp, ebp
jle 0x1401d53e5
mov eax, esi
sub eax, ebp
mov rcx, qword [rsp + 0x38]
mov dword [rcx + 8], eax
mov dword [rsp + 0x48], ebp
mov rax, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x48]
mov dword [rax + 0xc], ecx
add rax, 0x14
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
movzx ecx, ax
inc r15
mov ecx, ecx
mov qword [rsp + 0x48], r15
cmp r15, rcx
jge 0x1401d541e
lea r13d, [rsi + 1]
jmp 0x1401d550a
test ebp, ebp
jle 0x1401d5284
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x39]
test eax, 0x1004
jne 0x1401d5284
mov r8d, dword [rbx + 8]
mov dword [rsp + 0x20], ebp
mov rcx, qword [rsp + 0x78]
mov edx, 0x7d
xor r9d, r9d
call fcn.140415430
jmp 0x1401d5284
cmp qword [rsp + 0x50], 0
je 0x1401d5568
mov rax, qword [rsp + 0x50]
mov r9d, dword [rax]
mov dword [rsp + 0x70], 1
mov dword [rsp + 0x20], esi
mov rcx, qword [rsp + 0x78]
mov edx, 0x69
mov r8d, dword [rsp + 0x68]
call fcn.140415430
jmp 0x1401d5390
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x87
mov r8d, dword [rsp + 0x68]
mov r9d, r13d
call fcn.140415430
mov r15, qword [rsp + 0x38]
mov dword [r15 + 4], eax
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x78]
mov edx, 0x30
mov r8d, r13d
xor r9d, r9d
call fcn.140415430
mov byte [r15 + 0x10], ILCreateFromPathW
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
add r15, 0x14
mov qword [rsp + 0x38], r15
mov r8, qword [rsp + 0x48]
inc r8
movzx ecx, ax
inc r13d
mov qword [rsp + 0x48], r8
cmp r8, rcx
jge 0x1401d541e
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx + 0x48]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rcx + rdx*8]
cmp qword [rcx], r12
jne 0x1401d54ee
cmp dword [rsp + 0x5c], 1
je 0x1401d5492
cmp qword [rsp + 0x50], 0
je 0x1401d5563
mov ecx, dword [rsp + 0x70]
movsxd rax, ecx
inc ecx
mov dword [rsp + 0x70], ecx
mov rcx, qword [rsp + 0x50]
mov r9d, dword [rcx + rax*4]
mov dword [rsp + 0x20], r13d
mov rcx, qword [rsp + 0x78]
mov edx, 0x69
mov r8d, dword [rsp + 0x68]
jmp 0x1401d54ac
xor r9d, r9d
jmp 0x1401d554a
mov dword [rsp + 0x70], 0
xor r9d, r9d
jmp 0x1401d5475