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

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2c8]
sub rsp, 0x3c8
lea rdi, [rdx + 0x528]
xor ebx, ebx
movsxd r15, dword [rdi + 0x3c]
mov rsi, rcx
add r15, rdi
mov qword [rsp + 0x58], rbx
xor ecx, ecx
mov qword [rsp + 0x70], r15
mov r12, rdx
mov qword [rbp + 0x328], rbx
mov qword [rsp + 0x50], rbx
mov qword [rbp - 0x80], rdi
call qword [rsi + 0x40]
mov rdx, rax
lea r9d, [rbx + 3]
lea r10d, [rbx + 1]
movsxd rax, dword [rax + 0x3c]
movzx ecx, word [rax + rdx + 4]
cmp word [r15 + 4], cx
je 0x140002c9d
mov r8d, 0x14c
cmp word [r15 + 4], r8w
jne 0x140002c9d
mov r8d, 0x200
cmp cx, r8w
jne 0x140002c9d
cmp dword [rax + rdx + 0xfc], ebx
je 0x14000369e
mov ecx, dword [rax + rdx + 0xf8]
test ecx, ecx
je 0x14000369e
mov ecx, dword [rcx + rdx + 0x10]
and cl, r9b
cmp cl, r10b
jne 0x14000369e
mov eax, dword [r15 + 0x50]
mov qword [rbp - 0x70], rax
mov eax, dword [r15 + 0xb4]
mov dword [rbp + 0x320], eax
test eax, eax
jne 0x140002cc1
mov rax, qword [r15 + 0x30]
mov qword [rbp + 0x328], rax
lea r14, [rsi + 0x625]
mov qword [rsp + 0x30], rbx
mov r13d, 2
cmp byte [r14], bl
jne 0x140002d0c
mov dword [rsp + 0x28], 0x8000000
lea r9, [rbp - 0x70]
xor r8d, r8d
mov dword [rsp + 0x20], 0x40
mov edx, 0xf001f
lea rcx, [rsp + 0x68]
call qword [rsi + 0x210]
test eax, eax
jne 0x14000369e
jmp 0x140002da7
mov dword [rsp + 0x28], ebx
mov r8d, r10d
mov dword [rsp + 0x20], r9d
mov edx, 0x80000000
xor r9d, r9d
mov rcx, r14
call qword [rsi + 0x90]
mov rdi, rax
dec rax
cmp rax, 0xfffffffffffffffd
ja 0x14000369e
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], rbx
mov rcx, rdi
call qword [rsi + 0x98]
test eax, eax
je 0x14000369e
mov eax, dword [rsp + 0x60]
cmp dword [r15 + 0x50], eax
ja 0x14000369e
mov qword [rsp + 0x30], rdi
lea rcx, [rsp + 0x68]
mov dword [rsp + 0x28], 0x1000000
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], r13d
mov edx, 0xf001f
call qword [rsi + 0x210]
mov rcx, rdi
mov ebx, eax
call qword [rsi + 0xf0]
test ebx, ebx
jne 0x14000369e
lea rdi, [r12 + 0x528]
xor ebx, ebx
call qword [rsi + pe_nt_image_headers64]
mov rcx, qword [rsp + 0x68]
lea r8, [rbp + 0x328]
mov dword [rsp + 0x48], 4
mov rdx, rax
mov dword [rsp + 0x40], ebx
lea rax, [rsp + 0x50]
mov dword [rsp + 0x38], r13d
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
call qword [rsi + 0x218]
mov rcx, qword [rbp + 0x328]
movsxd r13, dword [rdi + 0x3c]
add r13, rcx
mov qword [rbp - 0x78], r13
test eax, eax
je 0x140002e0b
cmp eax, 0x40000003
jne 0x14000369e
test rcx, rcx
je 0x14000369e
cmp byte [r14], bl
je 0x140002e76
mov rdx, qword [rsp + 0x50]
lea r9, [rbp + 0x310]
mov ebx, 4
mov r8d, ebx
call qword [rsi + 0x60]
mov edx, dword [r15 + 0x54]
mov r9d, ebx
xor ecx, ecx
mov r8d, 0x3000
call qword [rsi + 0x48]
mov r8d, dword [r15 + 0x54]
mov rcx, rax
mov rdx, qword [rbp + 0x328]
mov qword [rsp + 0x60], rax
call fcn.140004470
mov r8d, dword [rsp + 0x50]
xor edx, edx
mov rcx, qword [rbp + 0x328]
call fcn.140004490
mov rcx, qword [rbp + 0x328]
jmp 0x140002e82
mov rax, qword [rbp + 0x318]
mov qword [rsp + 0x60], rax
mov r8d, dword [r15 + 0x54]
mov rdx, rdi
call fcn.140004470
mov rax, qword [rbp + 0x328]
xor edi, edi
mov qword [r13 + 0x30], rax
mov r14d, edi
movzx eax, word [r13 + 0x14]
add rax, 0x18
add rax, r13
mov qword [rsp + 0x78], rax
cmp di, word [r13 + 6]
jae 0x140002f08
mov r15, qword [rbp - 0x80]
mov r12, rax
mov eax, r14d
lea rdi, [rax + rax*4]
mov ebx, dword [r12 + rdi*8 + 0xc]
add rbx, qword [rbp + 0x328]
mov edx, dword [r12 + rdi*8 + 0x14]
mov rcx, rbx
mov r8d, dword [r12 + rdi*8 + 0x10]
add rdx, r15
call fcn.140004470
movzx eax, byte [rbx]
inc r14d
mov dword [r12 + rdi*8 + 8], eax
movzx eax, word [r13 + 6]
cmp r14d, eax
jb 0x140002ebd
mov r15, qword [rsp + 0x70]
xor edi, edi
mov r12, qword [rbp + 0x318]
mov r8, qword [rbp + 0x328]
mov eax, dword [rbp + 0x320]
mov r10, r8
sub r10, qword [r15 + 0x30]
test eax, eax
je 0x140003014
test r10, r10
je 0x140003014
mov ecx, dword [r13 + 0xb0]
lea rbx, [rcx + rax]
lea rax, [rbx + r8]
lea r9, [rcx + r8]
cmp r9, rax
jae 0x140003014
mov r14d, 0xfff
cmp dword [r9 + 4], edi
je 0x140003014
mov eax, dword [r9 + 4]
lea r11, [r9 + 8]
add rax, r9
cmp r11, rax
je 0x140003004
mov ecx, 2
movzx edx, word [r11]
mov eax, edx
and eax, r14d
add eax, dword [r9]
cmp eax, dword [r13 + 0x50]
jae 0x140002ff1
mov ecx, dword [r9]
mov eax, edx
and rax, r14
shr dx, 0xc
add rax, r8
add rcx, rax
cmp dx, 0xa
jne 0x140002fa1
add qword [rcx], r10
jmp 0x140002fd7
mov eax, 3
cmp dx, ax
jne 0x140002fb0
mov eax, r10d
jmp 0x140002fd4
mov eax, 1
cmp dx, ax
jne 0x140002fc6
mov rax, r10
shr rax, 0x10
movzx eax, ax
jmp 0x140002fd4
mov eax, 2
cmp dx, ax
jne 0x140002fe5
movzx eax, r10w
add qword [rcx], rax
mov r8, qword [rbp + 0x328]
mov ecx, 2
jmp 0x140002ff1
test dx, dx
jne 0x14000362f
mov rcx, rax
mov eax, dword [r9 + 4]
add r11, rcx
add rax, r9
cmp r11, rax
jne 0x140002f72
lea rax, [rbx + r8]
mov r9, r11
cmp r11, rax
jb 0x140002f4f
mov eax, dword [r13 + 0x90]
test eax, eax
je 0x1400030e8
lea rbx, [r8 + rax]
mov qword [rsp + 0x58], rbx
cmp dword [rbx + 0xc], edi
je 0x1400030e8
mov r15, qword [rbp + 0x318]
mov edx, dword [rbx + 0xc]
mov rcx, rsi
add rdx, r8
call fcn.140003c0c
mov r8, qword [rbp + 0x328]
mov r13, rax
mov edi, dword [rbx]
mov r12d, dword [rbx + 0x10]
add rdi, r8
add r12, r8
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400030cb
jns 0x140003072
mov r9d, dword [rdi]
xor r8d, r8d
jmp 0x1400030a0
mov r14, qword [rdi]
xor ebx, ebx
add r14, r8
cmp dword [r15 + 4], ebx
je 0x140003099
lea rdx, [r14 + 2]
mov rcx, rsi
call fcn.140002084
test eax, eax
je 0x140003099
mov rax, qword [rsi + 0x1e0]
jmp 0x1400030ab
xor r9d, r9d
lea r8, [r14 + 2]
mov rdx, r13
mov rcx, rsi
call fcn.140003cf4
mov qword [r12], rax
add rdi, 8
mov r8, qword [rbp + 0x328]
add r12, 8
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140003068
mov rbx, qword [rsp + 0x58]
add rbx, 0x14
xor edi, edi
mov qword [rsp + 0x58], rbx
cmp dword [rbx + 0xc], edi
jne 0x14000303c
mov r15, qword [rsp + 0x70]
mov r13, qword [rbp - 0x78]
mov eax, dword [r13 + 0xf0]
test eax, eax
je 0x14000318a
lea rdi, [rax + 4]
add rdi, r8
mov eax, dword [rdi]
test eax, eax
je 0x140003188
mov edx, eax
mov rcx, rsi
add rdx, r8
call fcn.140003c0c
mov r8, qword [rbp + 0x328]
xor edx, edx
mov r12, rax
test rax, rax
je 0x14000317f
mov ebx, dword [rdi + 0xc]
mov r14d, dword [rdi + 8]
add rbx, r8
add r14, r8
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000317f
mov rax, rcx
test rcx, rcx
jns 0x14000314b
mov r9d, dword [rbx]
mov r8, rdx
jmp 0x140003155
add r8, 2
mov r9d, edx
add r8, rax
mov rdx, r12
mov rcx, rsi
call fcn.140003cf4
mov qword [r14], rax
add rbx, 8
mov r8, qword [rbp + 0x328]
add r14, 8
xor edx, edx
mov rax, qword [rbx]
mov rcx, rax
test rax, rax
jne 0x14000313e
add rdi, 0x20
jmp 0x1400030fe
xor edi, edi
mov r12d, dword [r13 + 0x28]
lea rcx, [rbp - 0x60]
add r12, r8
mov edx, 2
mov qword [rsp + 0x70], r12
mov rax, r15
lea r8d, [rdx + 0x7e]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rcx + 0x50], xmm1
movups xmm1, xmmword [rax + 0x70]
add rax, r8
movups xmmword [rcx + 0x60], xmm0
add rcx, r8
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x1400031a6
mov rax, qword [rax]
mov r8d, 0x3000
mov qword [rcx], rax
xor ecx, ecx
mov rax, qword [rbp - 0x60]
shr rax, 0x30
lea r9d, [rcx + 4]
lea rdx, [rax + rax*4]
shl rdx, 3
call qword [rsi + 0x48]
movzx ebx, word [rbp - 0x5a]
mov rcx, rax
mov rdx, qword [rsp + 0x78]
mov r14, rax
mov qword [rsp + 0x58], rax
lea r8d, [rbx + rbx*4]
shl r8d, 3
call fcn.140004470
mov eax, 1
cmp dword [rsi + 0x574], eax
jne 0x14000328c
cmp byte [rsi + 0x625], dil
jne 0x14000326f
mov r8d, dword [r15 + 0x54]
xor edx, edx
mov rcx, qword [rbp + 0x328]
call fcn.140004490
mov r8d, dword [r15 + 0x54]
xor edx, edx
mov rcx, qword [rbp - 0x80]
call fcn.140004490
jmp 0x14000328c
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14000328c
mov r8d, dword [r15 + 0x54]
mov rdx, rax
mov rcx, qword [rbp + 0x328]
call fcn.140004470
cmp byte [rsi + 0x625], dil
jne 0x140003319
call qword [rsi + pe_nt_image_headers64]
mov rdx, qword [rbp + 0x328]
mov rcx, rax
call qword [rsi + 0x220]
test eax, eax
jne 0x14000369e
cmp dword [rbp + 0x320], edi
je 0x1400032c6
mov qword [rbp + 0x328], rdi
mov qword [rsp + 0x50], rdi
call qword [rsi + pe_nt_image_headers64]
mov rcx, qword [rsp + 0x68]
lea r8, [rbp + 0x328]
mov dword [rsp + 0x48], 0x80
mov rdx, rax
mov dword [rsp + 0x40], edi
lea rax, [rsp + 0x50]
mov dword [rsp + 0x38], 2
xor r9d, r9d
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
call qword [rsi + 0x218]
test eax, eax
jne 0x14000369e
mov rdx, qword [rsp + 0x50]
lea r9, [rbp + 0x310]
mov rcx, qword [rbp + 0x328]
mov r8d, 8
call qword [rsi + 0x60]
xor r9d, r9d
mov r15d, ebx
test ebx, ebx
je 0x14000342d
mov r12, qword [rsp + 0x58]
lea r10d, [r9 + 1]
mov r13d, ebx
add r14, 0xc
mov ebx, dword [rbp + 0x318]
mov edx, dword [r14 + 0x18]
mov r8d, edx
mov ecx, edx
shr r8d, 0x1e
shr edx, 0x1d
and edx, r10d
shr ecx, 0x1f
test ecx, edx
jne 0x140003414
test r8d, edx
je 0x140003383
mov ebx, 0x20
jmp 0x1400033cc
mov r9d, edx
xor r9d, r10d
mov eax, r9d
and eax, ecx
test r8d, eax
je 0x1400033a5
mov al, byte [rsi + 0x625]
neg al
sbb ebx, ebx
and ebx, 0xfffffffc
add ebx, 8
jmp 0x1400033c9
xor ecx, r10d
mov eax, r8d
xor eax, r10d
and eax, ecx
test edx, eax
je 0x1400033bb
mov ebx, 0x10
jmp 0x1400033c9
and ecx, r9d
mov eax, 2
test r8d, ecx
cmovne ebx, eax
xor r9d, r9d
mov r8d, dword [r14]
lea eax, [r13 - 1]
mov r10, qword [rbp + 0x328]
add r10, r8
cmp edi, eax
jae 0x1400033f2
lea eax, [rdi + 1]
lea rax, [rax + rax*4]
mov edx, dword [r12 + rax*8 + 0xc]
sub rdx, r8
jmp 0x1400033f6
mov edx, dword [r14 + 4]
mov dword [rbp + 0x310], r9d
mov r8d, ebx
lea r9, [rbp + 0x310]
mov rcx, r10
call qword [rsi + 0x60]
xor r9d, r9d
lea r10d, [r9 + 1]
add edi, r10d
add r14, 0x28
cmp edi, r15d
jb 0x140003359
mov r12, qword [rsp + 0x70]
mov r13, qword [rbp - 0x78]
mov edx, dword [rbp - 0x34]
lea r9, [rbp + 0x310]
mov rcx, qword [rbp + 0x328]
xor edi, edi
mov dword [rbp + 0x310], edi
lea r8d, [rdi + 2]
call qword [rsi + 0x60]
mov eax, dword [r13 + 0xd0]
lea r15d, [rdi + 1]
mov rcx, qword [rbp + 0x328]
test eax, eax
je 0x14000348a
mov rbx, qword [rax + rcx + 0x18]
test rbx, rbx
je 0x14000348a
jmp 0x140003482
xor r8d, r8d
mov edx, r15d
call rax
mov rcx, qword [rbp + 0x328]
lea rbx, [rbx + 8]
mov rax, qword [rbx]
test rax, rax
jne 0x14000346f
mov r14, qword [rbp + 0x318]
mov eax, 3
cmp dword [r14], eax
jne 0x14000358b
mov eax, dword [rbp - 0x38]
xor r8d, r8d
add rax, rcx
mov edx, r15d
call rax
lea r13, [r14 + 0x30c]
cmp byte [r13], dil
je 0x140003607
mov eax, dword [rbp + 0x28]
mov r8, qword [rbp + 0x328]
lea rcx, [r8 + rax]
test eax, eax
je 0x14000360e
mov ebx, dword [rcx + 0x18]
test ebx, ebx
je 0x14000360e
mov edi, dword [rcx + 0x1c]
mov r15d, dword [rcx + 0x20]
add rdi, r8
mov r14d, dword [rcx + 0x24]
add r15, r8
add r14, r8
lea eax, [rbx - 1]
mov rdx, r13
mov ecx, dword [r15 + rax*4]
mov ebx, eax
add rcx, r8
mov r12d, eax
call fcn.1400044ac
mov r8, qword [rbp + 0x328]
xor ecx, ecx
test eax, eax
je 0x140003520
test ebx, ebx
jne 0x1400034f3
jmp 0x140003628
movzx eax, word [r14 + r12*2]
mov ebx, dword [rdi + rax*4]
add rbx, r8
je 0x140003628
mov r14, qword [rbp + 0x318]
lea rdi, [r14 + 0x40c]
cmp byte [rdi], cl
je 0x140003587
cmp dword [r14 + 0x50c], ecx
je 0x14000356c
lea rax, [rbp + 0xb0]
mov dword [rsp + 0x28], 0x100
or r9d, 0xffffffff
mov qword [rsp + 0x20], rax
mov r8, rdi
xor edx, edx
call qword [rsi + 0x70]
xor eax, eax
lea rcx, [rbp + 0xb0]
cmp dword [r14 + 0x50c], eax
cmove rcx, rdi
call rbx
jmp 0x140003607
call rbx
jmp 0x140003607
lea r8, [r14 + 0x40c]
cmp byte [r8], dil
je 0x1400035c5
lea rax, [rbp + 0xb0]
mov dword [rsp + 0x28], 0x100
or r9d, 0xffffffff
mov qword [rsp + 0x20], rax
xor edx, edx
xor ecx, ecx
call qword [rsi + 0x70]
lea rdx, [rbp + 0xb0]
mov rcx, rsi
call fcn.1400039b0
cmp dword [r14 + 4], edi
je 0x1400035f7
mov qword [rsp + 0x28], rdi
xor r9d, r9d
mov r8, r12
mov dword [rsp + 0x20], edi
xor edx, edx
xor ecx, ecx
call qword [rsi + 0x88]
test rax, rax
je 0x140003607
or edx, 0xffffffff
mov rcx, rax
call qword [rsi + 0x80]
jmp 0x140003607
mov rcx, qword gs:[0x30]
mov rcx, qword [rcx + 0x60]
call r12
mov r8, qword [rbp + 0x328]
mov eax, 3
cmp dword [rsi + 0x230], eax
jne 0x140003628
or ecx, 0xffffffff
call qword [rsi + 0x68]
mov r8, qword [rbp + 0x328]
mov r12, qword [rbp + 0x318]
test r8, r8
je 0x140003687
movzx eax, word [rbp - 0x5a]
mov ebx, 0xc000
mov rcx, qword [rsp + 0x58]
mov r8d, ebx
lea rdx, [rax + rax*4]
shl rdx, 3
call qword [rsi + 0x50]
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x140003666
mov edx, dword [rbp - 0xc]
mov r8d, ebx
mov rcx, rax
call qword [rsi + 0x50]
call qword [rsi + pe_nt_image_headers64]
mov rdx, qword [rbp + 0x328]
mov rcx, rax
call qword [rsi + 0x220]
mov rcx, qword [rsp + 0x68]
call qword [rsi + 0xf0]
mov r8d, dword [r12 + 0x524]
lea rcx, [r12 + 0x528]
xor edx, edx
call fcn.140004490
add rsp, 0x3c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret