Function at 0x1401d4530
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 [0x1404fe040]
xor rax, rsp
mov qword [rsp + 0xc0], rax
mov r12, qword [rdx]
movzx eax, byte [r12]
cmp eax, 0x33
jne 0x1401d4898
mov rdx, qword [r12 + 0x18]
mov rcx, r14
mov r8d, esi
call fcn.140285070
mov esi, eax
mov rax, qword [rbx + 0x58]
test byte [rax + 0x3a], 0x20
jne 0x1401d45cd
mov rcx, rbx
mov rdx, rdi
call fcn.1401d5050
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
cmp rcx, qword [0x1404fe040]
je 0x1401d45b7
call fcn.140297b50
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 0x1401d459d
jmp 0x1401d4592
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x38], 0
cmp qword [rsp + 0xa0], 0
je 0x1401d4607
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0xa0]
call fcn.14027b390
cmp qword [rsp + 0x68], 0
je 0x1401d4633
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x68]
call fcn.14027b390
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x20], rcx
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x78]
mov qword [rax + 0x20], rcx
cmp qword [rsp + 0x38], 0
je 0x1401d468b
mov rax, qword [rsp + 0x38]
cmp dword [rax], 1
jne 0x1401d468b
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 0x1401d4682
mov rcx, qword [rsp + 0x88]
call fcn.1402797f0
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x10], r15
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x48]
test rax, rax
je 0x1401d46bb
movsxd rcx, dword [rax]
test rcx, rcx
jle 0x1401d46bb
add rax, 0x20
xor edx, edx
mov word [rax], 0
inc rdx
add rax, 0x20
cmp rdx, rcx
jb 0x1401d46aa
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1401d4812
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x98]
cmp rcx, qword [rax + 0x20]
je 0x1401d4757
mov qword [rsp + 0x68], 0
mov rax, qword [rsp + 0x98]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
cmp ebp, eax
jge 0x1401d45d5
mov rax, qword [rsp + 0xa0]
add rax, 8
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x68]
add rax, 8
mov qword [rsp + 0xa8], rax
mov r13, qword [rsp + 0xb0]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x78], 0
jmp 0x1401d47ae
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x68], rax
jmp 0x1401d46f4
mov rax, qword [rsp + 0xa8]
mov r8, qword [rax + r15]
mov rcx, r14
mov rdx, qword [rsp + 0x38]
call fcn.1401bb450
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 0x1401d45e7
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x48]
mov rax, qword [rax + r13*8]
cmp qword [rax], r12
jne 0x1401d4799
movsxd r15, dword [rax + 0x24]
dec r15
shl r15, 5
mov rax, qword [rsp + 0x50]
mov r8, qword [rax + r15]
test r8, r8
je 0x1401d4799
mov rax, qword [rsp + 0x50]
add rax, r15
mov qword [rsp + 0x70], rax
mov rcx, r14
mov rdx, qword [rsp + 0x78]
call fcn.1401bb450
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x70]
mov qword [rax], 0
cmp qword [rsp + 0x68], 0
jne 0x1401d476b
jmp 0x1401d4799
mov rax, qword [rsp + 0x88]
cmp byte [rax + 0x67], 0
jne 0x1401d4a77
mov edx, dword [rsp + 0x48]
shl rdx, 2
mov rcx, qword [r14]
call fcn.1403f2b10
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.1401c73b0
mov dword [rsp + 0x5c], eax
mov eax, dword [r15]
mov dword [r12 + 0x2c], eax
jmp 0x1401d4a80
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x98], rax
test rax, rax
je 0x1401d4824
movsxd rax, ebp
mov qword [rsp + 0xb0], rax
jmp 0x1401d46d8
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x80], rcx
cmp eax, 0x30
jne 0x1401d48ce
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x80]
mov edx, 0x4b
xor r8d, r8d
mov r9d, esi
call fcn.1404006f0
jmp 0x1401d4588
cmp eax, 0x2b
je 0x1401d4576
mov ebp, r9d
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x94], eax
mov rax, qword [rbx + 0x58]
mov qword [rsp + 0x40], rax
test byte [rax + 0x39], 4
jne 0x1401d491c
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x20]
test rax, rax
je 0x1401d491c
mov rax, qword [rax + 0x38]
movsxd rcx, ebp
xor edx, edx
cmp byte [rax + rcx], 0
setne dl
xor dword [rsp + 0x94], edx
test ebp, ebp
jle 0x1401d494a
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x48]
mov ecx, ebp
xor edx, edx
jmp 0x1401d4937
inc rdx
cmp rcx, rdx
je 0x1401d494a
mov r8, qword [rax + rdx*8]
test r8, r8
je 0x1401d492f
cmp qword [r8], r12
jne 0x1401d492f
jmp 0x1401d4592
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
mov dword [rsp + 0x48], 0
cmp ebp, eax
jge 0x1401d498e
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 0x1401d4973
mov dword [rsp + 0xbc], 0
mov eax, dword [r12 + 4]
bt eax, 0xc
jae 0x1401d4a9c
mov rcx, qword [r12 + 0x20]
mov rcx, qword [rcx + 0x20]
cmp dword [rcx], 1
je 0x1401d4a9c
bt eax, 0x19
jae 0x1401d4a32
cmp dword [r12 + 0x2c], 0
je 0x1401d4a32
mov rax, qword [r12 + 0x10]
mov cl, byte [rax]
cmp cl, 0xa3
jne 0x1401d49d7
mov cl, byte [rax + 2]
cmp cl, 0xa4
je 0x1401d49f0
movzx ecx, cl
mov edx, 1
cmp ecx, 0x80
jne 0x1401d49f6
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.1403f2b10
lea rcx, [rsp + 0xbc]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x20], rax
jmp 0x1401d4abb
mov qword [rsp + 0x60], 0
jmp 0x1401d4a5d
mov rax, qword [r14]
mov qword [rsp + 0x88], rax
test r12, r12
je 0x1401d4a27
mov rcx, qword [rsp + 0x88]
mov rdx, r12
xor r8d, r8d
xor r9d, r9d
call fcn.140288970
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x5c], 5
mov rax, qword [rsp + 0x88]
cmp byte [rax + 0x67], 0
je 0x1401d4872
mov qword [rsp + 0x50], 0
cmp qword [rsp + 0x60], 0
je 0x1401d4ad3
mov rcx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x60]
call fcn.1402797f0
jmp 0x1401d4ad3
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.1401c73b0
mov dword [rsp + 0x5c], eax
xor ecx, ecx
cmp dword [rsp + 0x5c], 4
sete cl
mov r8d, dword [rsp + 0xbc]
xor eax, eax
mov dword [rsp + 0x38], ecx
cmp dword [rsp + 0x94], ecx
sete al
lea edx, [rax*4 + 0x20]
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x80]
mov dword [rsp + 0x78], r8d
xor r9d, r9d
call fcn.1404006f0
mov rax, qword [rsp + 0x40]
or byte [rax + 0x39], 8
cmp dword [rbx + 0x48], 0
jne 0x1401d4b35
mov eax, dword [r14 + 0x44]
dec eax
mov dword [r14 + 0x44], eax
mov dword [rbx + 0x10], eax
test ebp, ebp
jle 0x1401d4b54
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0x38]
bt eax, 0x14
jb 0x1401d4b54
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 r13, qword [rcx]
mov rcx, qword [r13]
mov rcx, qword [rcx]
cmp byte [rcx + 0x67], 0
je 0x1401d4ba9
mov qword [rbx + 0x50], 0
mov dword [rbx + 0x48], 0
cmp qword [rsp + 0x50], 0
je 0x1401d4588
mov rcx, qword [r14]
mov rdx, qword [rsp + 0x50]
call fcn.14026a0e0
jmp 0x1401d4588
shl rax, 2
lea rdx, [rax + rax*4]
mov rax, qword [rbx + 0x50]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rdx
add rdx, 0x10
call fcn.14026a520
test rax, rax
je 0x1401d4b7c
mov r15, rax
mov rax, qword [r13 + 0x60]
mov qword [r15], rax
mov rax, qword [rsp + 0x68]
mov qword [r15 + 8], rax
mov qword [r13 + 0x60], r15
add r15, 0x10
cmp qword [rsp + 0x70], 0
je 0x1401d4c01
mov rdx, qword [rsp + 0x70]
mov r8, qword [rdx - 8]
mov rcx, r15
call fcn.1402d2020
mov qword [rbx + 0x50], r15
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x3c]
movzx ecx, ax
cmp ebp, ecx
jge 0x1401d4d27
mov edx, dword [rsp + 0x38]
cmp dword [rsp + 0x94], edx
sete byte [rsp + 0x68]
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 0x1401d4d0f
add byte [rsp + 0x68], 0x26
cmp dword [rsp + 0x5c], 1
jne 0x1401d4d65
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x80]
mov edx, 0x87
mov r8d, dword [rsp + 0x78]
mov r9d, esi
call fcn.1404006f0
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 + 0x80]
mov edx, 0x30
mov r8d, esi
xor r9d, r9d
call fcn.1404006f0
mov eax, dword [rsp + 0x78]
mov dword [r13], eax
mov al, byte [rsp + 0x68]
mov byte [r13 + 0x10], al
test ebp, ebp
jle 0x1401d4cee
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 0x1401d4d27
lea r13d, [rsi + 1]
jmp 0x1401d4e1f
test ebp, ebp
jle 0x1401d4b8b
mov rax, qword [rsp + 0x40]
movzx eax, word [rax + 0x39]
test eax, 0x1004
jne 0x1401d4b8b
mov r8d, dword [rbx + 8]
mov dword [rsp + 0x20], ebp
mov rcx, qword [rsp + 0x80]
mov edx, 0x7d
xor r9d, r9d
call fcn.1404006f0
jmp 0x1401d4b8b
cmp qword [rsp + 0x50], 0
je 0x1401d4e80
mov rax, qword [rsp + 0x50]
mov r9d, dword [rax]
mov dword [rsp + 0x70], 1
mov dword [rsp + 0x20], esi
mov rcx, qword [rsp + 0x80]
mov edx, 0x69
mov r8d, dword [rsp + 0x78]
call fcn.1404006f0
jmp 0x1401d4c99
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x80]
mov edx, 0x87
mov r8d, dword [rsp + 0x78]
mov r9d, r13d
call fcn.1404006f0
mov r15, qword [rsp + 0x38]
mov dword [r15 + 4], eax
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x80]
mov edx, 0x30
mov r8d, r13d
xor r9d, r9d
call fcn.1404006f0
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 0x1401d4d27
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 0x1401d4e03
cmp dword [rsp + 0x5c], 1
je 0x1401d4da1
cmp qword [rsp + 0x50], 0
je 0x1401d4e7b
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 + 0x80]
mov edx, 0x69
mov r8d, dword [rsp + 0x78]
jmp 0x1401d4dbe
xor r9d, r9d
jmp 0x1401d4e5f
mov dword [rsp + 0x70], 0
xor r9d, r9d
jmp 0x1401d4d81