Function at 0x14027f730
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, 0xc8
mov rax, qword [rcx + 8]
test byte [rcx + 1], 0x20
mov rbx, rcx
mov r12, rdx
mov dword [rsp + 0x58], r8d
mov esi, r9d
mov dword [rsp + 0x84], r9d
mov qword [rsp + 0x40], rax
je 0x14027f7a0
mov rax, qword [rax + 8]
mov r8, rbx
mov edx, dword [rcx + 0x50]
mov rcx, qword [rax + 0x10]
call fcn.1402785f0
test eax, eax
mov r14d, eax
mov dword [rsp + 0x80], eax
jne 0x1402801fe
test esi, esi
je 0x14027f7a0
cmp byte [rbx + 0x54], 0
mov ecx, 0x13618
js 0x14027fdb8
cmp byte [rbx], 2
ja 0x14027f7b7
mov rdx, qword [rbx + 0x80]
test rdx, rdx
jne 0x14027f881
jmp 0x14027f7d5
mov rcx, rbx
call fcn.140266db0
test eax, 0xffffffef
mov r14d, eax
mov dword [rsp + 0x80], eax
je 0x14027f7a5
jmp 0x1402801fe
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0x13], 0
je 0x14027f7f3
mov edx, dword [rbx + 0x50]
xor r9d, r9d
mov rcx, rax
mov r8, qword [r12 + 8]
call fcn.14025d850
test byte [rbx + 1], 2
je 0x14027f840
mov rax, qword [rbx + 0x30]
cmp qword [r12 + 8], rax
jne 0x14027f840
cmp word [rbx + 0x46], 0
je 0x14027f972
mov eax, dword [r12 + 0x28]
add eax, dword [r12 + 0x24]
cmp dword [rbx + 0x40], eax
jne 0x14027f972
mov rdx, r12
mov rcx, rbx
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14022f4b0
test esi, esi
jne 0x14027f972
mov r8d, dword [rsp + 0x58]
lea r9, [rsp + 0x84]
mov rcx, rbx
mov rdx, qword [r12 + 8]
shr r8d, 3
and r8d, 1
call fcn.140281820
test eax, eax
mov r14d, eax
mov dword [rsp + 0x80], eax
je 0x14027f972
jmp 0x1402801fe
test esi, esi
jne 0x14027f972
test byte [rsp + 0x58], 2
je 0x14027f8d8
mov rcx, rbx
call fcn.14025ba60
mov rax, qword [r12 + 8]
cmp qword [rbx + 0x30], rax
jne 0x14027f972
mov rdx, qword [r12]
xor edi, edi
mov rcx, rbx
mov dword [rsp + 0xb4], eax
mov dword [rsp + 0xb8], edi
mov qword [rsp + 0xa0], rdx
lea rdx, [rsp + 0x90]
call fcn.14022f4b0
jmp 0x14027fedd
mov eax, dword [r12 + 0x20]
lea r8, [rsp + 0x84]
test ax, ax
je 0x14027f929
mov qword [rsp + 0x90], rdx
mov rdx, qword [r12 + 0x18]
mov rcx, rbx
mov word [rsp + 0xac], ax
mov byte [rsp + 0xae], 0
mov byte [rsp + 0xb2], 0
mov qword [rsp + 0x98], rdx
lea rdx, [rsp + 0x90]
call fcn.14027f300
jmp 0x14027f94c
mov r9d, dword [rsp + 0x58]
mov qword [rsp + 0x20], r8
mov rcx, rbx
mov r8, qword [r12 + 8]
mov rdx, qword [r12]
shr r9d, 3
and r9d, 1
call fcn.14022f2e0
mov dword [rsp + 0x80], eax
mov r14d, dword [rsp + 0x80]
test r14d, r14d
jne 0x1402801fe
cmp dword [rsp + 0x84], 0
je 0x14027f890
mov r15, qword [rbx + 0x88]
cmp dword [r15 + 0x14], 0
js 0x14027f9aa
mov rax, qword [rsp + 0x40]
mov edi, dword [rsp + 0x58]
mov rax, qword [rax + 8]
and edi, 0x80
mov dword [rsp + 0x5c], edi
mov rsi, qword [rax + 0x88]
mov qword [rsp + 0x30], rsi
jne 0x14027f9d6
jmp 0x14027fa72
cmp byte [rbx], 1
jbe 0x14027f9bb
mov ecx, 0x13693
call fcn.140283940
jmp 0x14027f9c3
mov rcx, r15
call fcn.14022eb00
test eax, eax
mov r14d, eax
mov dword [rsp + 0x80], eax
je 0x14027f980
jmp 0x1402801fe
mov ebp, dword [rax + 0x90]
mov edx, 4
xor esi, esi
mov dword [rsp + 0x80], esi
cmp ebp, edx
cmovl ebp, edx
cmp byte [rax + 0x21], 0
je 0x14027fd90
movzx eax, word [r15 + 0xe]
cmp eax, ebp
jge 0x14027fd90
mov rdx, qword [rsp + 0x30]
lea r8, [rsp + 0x90]
mov rcx, r15
call qword [r15 + pe_nt_image_headers64]
movzx eax, word [rsp + 0xa4]
cmp dword [rsp + 0xa0], eax
je 0x14027fd90
mov rdi, qword [rsp + 0x30]
movsxd rax, ebp
mov r8d, 3
mov r9d, dword [r15 + 4]
mov edx, dword [rdi + rax - 4]
mov rax, qword [rsp + 0x40]
bswap edx
mov rcx, qword [rax + 8]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
call fcn.14026e440
cmp dword [rsp + 0x80], 0
jmp 0x14027fd8a
movzx r11d, byte [r15 + 0xa]
mov rax, qword [rsp + 0x30]
mov rcx, r11
add rcx, rax
cmp byte [r15 + 1], 0
je 0x14027fad2
mov r14d, dword [r12 + 0x24]
mov r13d, dword [r12 + 0x28]
mov rax, qword [r12 + 0x10]
add r13d, r14d
cmp r13d, 0x7f
mov qword [rsp + 0x50], rax
ja 0x14027faad
mov byte [rcx], r13b
mov al, 1
jmp 0x14027fab5
movsxd rdx, r13d
call fcn.1402a6780
movzx eax, al
mov rdx, qword [r12 + 8]
add r11d, eax
mov rax, qword [rsp + 0x30]
movsxd rcx, r11d
add rcx, rax
call fcn.1402a6780
jmp 0x14027fafb
mov r14, qword [r12 + 8]
mov rax, qword [r12]
cmp r14d, 0x7f
mov r13d, r14d
mov qword [rsp + 0x50], rax
ja 0x14027faf0
mov byte [rcx], r14b
mov al, 1
jmp 0x14027faf8
movsxd rdx, r14d
call fcn.1402a6780
movzx eax, al
lea ecx, [rax + r11]
mov rax, qword [rsp + 0x30]
movzx r11d, word [r15 + 0xe]
movsxd r8, ecx
add r8, rax
cmp r11d, r13d
jl 0x14027fb3e
lea ebp, [rcx + r13]
mov rsi, qword [rsp + 0x50]
movsxd rcx, r14d
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
mov eax, 4
cmp ebp, eax
cmovl ebp, eax
sub r13d, r14d
xor eax, eax
movsxd rcx, r13d
rep stosb byte [rdi], al
jmp 0x14027fd7d
mov rax, qword [r15 + 0x48]
xor edx, edx
movzx r9d, word [r15 + 0x10]
mov qword [rsp + 0x38], rax
mov rsi, qword [rsp + 0x38]
mov eax, r13d
sub eax, r9d
mov esi, dword [rsi + 0x38]
sub esi, 4
div esi
mov rax, qword [rsp + 0x30]
add edx, r9d
cmp r11d, edx
cmovge r9d, edx
xor r10d, r10d
xor r11d, r11d
mov dword [rsp + 0x8c], r10d
add ecx, r9d
mov qword [rsp + 0x48], r11
lea ebp, [rcx + 4]
movsxd rcx, ecx
add rax, rcx
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x8c]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x78], rax
cmp r13d, r9d
mov edx, r9d
cmovle edx, r13d
cmp edx, r14d
jg 0x14027fbcc
mov rsi, qword [rsp + 0x50]
movsxd rcx, edx
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
jmp 0x14027fbed
test r14d, r14d
jle 0x14027fbe3
mov rsi, qword [rsp + 0x50]
mov ecx, r14d
mov rdi, r8
mov edx, r14d
rep movsb byte [rdi], byte [rsi]
jmp 0x14027fbed
movsxd rcx, edx
mov rdi, r8
xor eax, eax
rep stosb byte [rdi], al
sub r13d, edx
test r13d, r13d
jle 0x14027fd73
movsxd rax, edx
sub r14d, edx
add qword [rsp + 0x50], rax
sub r9d, edx
je 0x14027fc0e
add r8, rax
jmp 0x14027fbae
mov rax, qword [rsp + 0x38]
xor r9d, r9d
mov qword [rsp + 0x90], r9
mov esi, dword [rsp + 0x8c]
cmp byte [rax + 0x21], 0
jne 0x14027fc6f
xor r8d, r8d
mov r9d, dword [rsp + 0x8c]
mov dword [rsp + 0x20], r8d
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x38]
call fcn.14022a230
mov rdi, qword [rsp + 0x38]
mov dword [rsp + 0x88], eax
cmp byte [rdi + 0x21], 0
je 0x14027fcfd
test eax, eax
jne 0x14027fcfd
jmp 0x14027fcb8
mov eax, dword [0x1402e2d80]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x38]
mov r11d, dword [rax + 0x34]
mov r10d, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x38]
lea edi, [r10 + 1]
mov edx, edi
mov dword [rsp + 0x8c], edi
call fcn.14026e3f0
cmp edi, eax
je 0x14027fc82
mov eax, dword [rsp + 0x68]
xor edx, edx
div r11d
cmp r10d, eax
je 0x14027fc82
jmp 0x14027fc2b
mov edx, dword [rsp + 0x8c]
cmp esi, 1
mov r9d, esi
mov r8d, 3
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x88]
sbb r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.14026e440
cmp dword [rsp + 0x88], 0
je 0x14027fcfd
mov rcx, qword [rsp + 0x90]
call fcn.14026f8a0
mov esi, dword [rsp + 0x88]
test esi, esi
je 0x14027fd18
mov rcx, qword [rsp + 0x48]
call fcn.14026f8a0
mov dword [rsp + 0x5c], esi
jmp 0x14027fd7d
mov eax, dword [rsp + 0x8c]
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
bswap eax
mov dword [rsi], eax
call fcn.14026f8a0
mov rax, qword [rsp + 0x90]
xor ecx, ecx
mov qword [rsp + 0x48], rax
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x60], rax
mov dword [rax], ecx
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x50]
mov qword [rsp + 0x68], rax
lea r8, [rax + 4]
mov rax, qword [rsp + 0x38]
mov eax, dword [rax + 0x38]
mov dword [rsp + 0x68], eax
lea r9d, [rax - 4]
jmp 0x14027fbae
mov rcx, qword [rsp + 0x48]
call fcn.14026f8a0
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x1402801f6
movzx r13d, word [rbx + 0x56]
mov word [rbx + 0x46], 0
cmp dword [rsp + 0x84], 0
mov eax, r13d
jne 0x14027ff18
cmp r13w, word [r15 + 0x18]
jb 0x14027fdd0
mov ecx, 0x136ba
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.140283940
mov rcx, qword [r15 + 0x70]
call fcn.14029ec80
test eax, eax
mov r14d, eax
mov dword [rsp + 0x80], eax
jne 0x1402801f6
mov rdx, qword [r15 + 0x60]
lea eax, [r13 + r13]
cdqe
movzx edi, word [rdx + rax]
rol di, 8
and di, word [r15 + 0x1a]
movzx edi, di
add rdi, qword [r15 + 0x50]
cmp byte [r15 + 8], 0
mov rdx, rdi
jne 0x14027fe1d
mov eax, dword [rdi]
mov rdi, qword [rsp + 0x30]
mov dword [rdi], eax
lea r8, [rsp + 0x90]
mov qword [rsp + 0x38], rdx
mov rcx, r15
call qword [r15 + pe_nt_image_headers64]
xor eax, eax
movzx ecx, word [rsp + 0xa4]
mov r8d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x38]
mov r9d, ecx
cmp ecx, r8d
je 0x14027fe6d
mov ax, word [rsp + 0xa6]
mov rcx, r15
mov word [rsp + 0x20], ax
call fcn.140230da0
mov rdx, qword [rsp + 0x38]
movzx r8d, word [rsp + 0xa6]
mov dword [rsp + 0x80], eax
and byte [rbx + 1], 0xfb
cmp r8d, ebp
jne 0x14027fef6
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0xa0]
jne 0x14027fef6
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 8]
cmp byte [rax + 0x21], 0
je 0x14027feaf
movzx eax, word [r15 + 0x10]
cmp eax, ebp
jle 0x14027fef6
mov rcx, qword [r15 + 0x50]
movzx eax, byte [r15 + 9]
lea rax, [rcx + rax + 0xa]
mov ecx, 0x136d5
cmp rdx, rax
jb 0x14027fed8
movsxd rax, ebp
add rax, rdx
cmp qword [r15 + 0x58], rax
jae 0x14027fee5
mov ecx, 0x136d8
call fcn.140283940
mov r14d, eax
jmp 0x1402801fe
mov rsi, qword [rsp + 0x30]
mov ecx, ebp
mov rdi, rdx
rep movsb byte [rdi], byte [rsi]
jmp 0x1402801fe
lea r9, [rsp + 0x80]
mov edx, r13d
mov rcx, r15
call fcn.1402358b0
cmp dword [rsp + 0x80], 0
je 0x14027ff30
jmp 0x1402801f6
jns 0x14027ff30
cmp word [r15 + 0x18], 0
je 0x14027ff30
and byte [rbx + 1], 0xfd
inc eax
mov word [rbx + 0x56], ax
movzx r13d, ax
lea eax, [rbp + 1]
cmp eax, dword [r15 + 0x14]
jl 0x14027ff5a
movzx eax, byte [r15 + 0xc]
mov rsi, qword [rsp + 0x30]
lea edx, [rax + 1]
mov byte [r15 + 0xc], dl
mov qword [r15 + rax*8 + 0x28], rsi
mov word [r15 + rax*2 + 0x1c], r13w
jmp 0x140280140
mov rcx, qword [r15 + 0x70]
call fcn.14029ec80
test eax, eax
jne 0x140280170
mov r14, qword [r15 + 0x50]
xor edx, edx
movzx esi, byte [r15 + 9]
mov dword [rsp + 0x90], edx
movzx eax, word [r15 + 0x12]
movzx edx, word [r15 + 0x18]
lea r11, [r14 + rsi + 5]
mov r9w, word [r11]
lea edi, [rax + rdx*2]
rol r9w, 8
movzx r9d, r9w
cmp edi, r9d
jle 0x14027ffba
test r9d, r9d
jne 0x14027ffb3
mov rax, qword [r15 + 0x48]
cmp dword [rax + 0x38], 0x10000
je 0x14027ffd6
mov ecx, 0x118ee
jmp 0x14027ffc9
mov rax, qword [r15 + 0x48]
cmp r9d, dword [rax + 0x38]
jle 0x14027ffdc
mov ecx, 0x118f1
call fcn.140283940
xor r9d, r9d
jmp 0x1402800bb
mov r9d, 0x10000
cmp byte [r14 + rsi + 2], 0
jne 0x14027fffb
cmp byte [r14 + rsi + 1], 0
jne 0x14027fffb
lea eax, [rbp + rdi + 2]
cmp r9d, eax
jge 0x1402800a8
jmp 0x140280061
lea eax, [rdi + 1]
cmp eax, r9d
jge 0x14027ffec
lea r8, [rsp + 0x90]
mov edx, ebp
mov rcx, r15
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x38], r11
call fcn.1402697e0
mov r11, qword [rsp + 0x38]
test rax, rax
mov r9d, dword [rsp + 0x40]
je 0x140280051
sub rax, r14
cmp edi, eax
mov r9d, eax
jl 0x1402800c3
mov ecx, 0x11902
mov dword [rsp + 0x38], eax
call fcn.140283940
mov r9d, dword [rsp + 0x38]
jmp 0x1402800bb
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x14027ffec
jmp 0x140280170
mov edx, dword [r15 + 0x14]
lea eax, [rbp + 2]
mov rcx, r15
mov qword [rsp + 0x38], r11
sub edx, eax
mov eax, 4
cmp edx, eax
cmovg edx, eax
call fcn.140234da0
test eax, eax
jne 0x140280170
mov r11, qword [rsp + 0x38]
movzx r9d, byte [r14 + rsi + 6]
movzx eax, byte [r11]
shl eax, 8
or r9d, eax
dec r9d
movzx r9d, r9w
inc r9d
sub r9d, ebp
mov eax, r9d
movzx eax, ah
mov byte [r11], al
mov byte [r14 + rsi + 6], r9b
jmp 0x1402800c3
test eax, eax
jne 0x140280170
lea eax, [rbp + 2]
mov rsi, qword [rsp + 0x30]
movsxd rcx, ebp
mov dword [rsp + 0x38], r9d
movzx eax, ax
sub dword [r15 + 0x14], eax
movsxd rax, r9d
add rax, r14
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
lea esi, [r13 + r13]
movsxd rsi, esi
movzx r8d, word [r15 + 0x18]
add rsi, qword [r15 + 0x60]
sub r8d, r13d
lea rcx, [rsi + 2]
add r8d, r8d
mov rdx, rsi
movsxd r8, r8d
call sub.msvcrt.dll_memmove
mov r9d, dword [rsp + 0x38]
rol r9w, 8
mov word [rsi], r9w
movzx eax, byte [r15 + 9]
inc word [r15 + 0x18]
lea rdx, [r14 + rax + 4]
inc byte [rdx]
jne 0x140280136
movzx eax, byte [r15 + 9]
inc byte [r14 + rax + 3]
mov rax, qword [r15 + 0x48]
cmp byte [rax + 0x21], 0
jne 0x140280144
xor eax, eax
jmp 0x140280170
mov r8, qword [rsp + 0x30]
xor eax, eax
mov rdx, r15
mov rcx, r15
lea r9, [rsp + 0x90]
mov dword [rsp + 0x90], eax
call fcn.14026e510
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x140280140
cmp byte [r15 + 0xc], 0
mov dword [rsp + 0x80], eax
je 0x1402801f6
and byte [rbx + 1], 0xfd
mov rcx, rbx
call fcn.14022c560
mov rdx, qword [rbx + 0x88]
test byte [rsp + 0x58], 2
mov dword [rsp + 0x80], eax
mov byte [rdx + 0xc], 0
mov byte [rbx], 1
je 0x1402801f6
test eax, eax
jne 0x1402801f6
mov rcx, rbx
call fcn.14022fad0
cmp qword [rbx + 0x80], 0
je 0x1402801ea
mov rcx, qword [r12 + 8]
call fcn.14029ccf0
test rax, rax
mov qword [rbx + 0x18], rax
jne 0x1402801dc
mov dword [rsp + 0x80], 7
jmp 0x1402801ea
mov rsi, qword [r12]
mov rdi, rax
mov rcx, qword [r12 + 8]
rep movsb byte [rdi], byte [rsi]
mov byte [rbx], 3
mov rax, qword [r12 + 8]
mov qword [rbx + 0x48], rax
mov r14d, dword [rsp + 0x80]
mov eax, r14d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret