Function at 0x14010a4a0
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
test byte [rcx + 1], 0x20
mov r15, qword [rcx + 8]
mov rbx, rcx
mov r12, rdx
mov dword [rsp + 0x58], r8d
mov esi, r9d
mov dword [rsp + 0x84], r9d
je 0x14010a50b
mov rax, qword [r15 + 8]
mov r8, rbx
mov edx, dword [rcx + 0x50]
mov rcx, qword [rax + 0x10]
call fcn.1401032f0
test eax, eax
mov r11d, eax
mov dword [rsp + 0x80], eax
jne 0x14010af93
test esi, esi
je 0x14010a50b
cmp byte [rbx + 0x54], 0
mov ecx, 0x13803
js 0x14010ab43
cmp byte [rbx], 2
ja 0x14010a522
mov rdx, qword [rbx + 0x80]
test rdx, rdx
jne 0x14010a5e8
jmp 0x14010a540
mov rcx, rbx
call fcn.1400f1990
test eax, 0xffffffef
mov r11d, eax
mov dword [rsp + 0x80], eax
je 0x14010a510
jmp 0x14010af93
cmp byte [r15 + 0x13], 0
je 0x14010a55a
mov edx, dword [rbx + 0x50]
xor r9d, r9d
mov rcx, r15
mov r8, qword [r12 + 8]
call fcn.1400e8e20
test byte [rbx + 1], 2
je 0x14010a5a7
mov rax, qword [rbx + 0x30]
cmp qword [r12 + 8], rax
jne 0x14010a5a7
cmp word [rbx + 0x46], 0
je 0x14010a6d9
mov eax, dword [r12 + 0x28]
add eax, dword [r12 + 0x24]
cmp dword [rbx + 0x40], eax
jne 0x14010a6d9
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.1400bc2b0
test esi, esi
jne 0x14010a6d9
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.14010c5f0
test eax, eax
mov r11d, eax
mov dword [rsp + 0x80], eax
je 0x14010a6d9
jmp 0x14010af93
test esi, esi
jne 0x14010a6d9
test byte [rsp + 0x58], 2
je 0x14010a63f
mov rcx, rbx
call fcn.1400e7280
mov rax, qword [r12 + 8]
cmp qword [rbx + 0x30], rax
jne 0x14010a6d9
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.1400bc2b0
jmp 0x14010ac72
mov eax, dword [r12 + 0x20]
lea r8, [rsp + 0x84]
test ax, ax
je 0x14010a690
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.14010a070
jmp 0x14010a6b3
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.1400bc0e0
mov dword [rsp + 0x80], eax
mov r11d, dword [rsp + 0x80]
test r11d, r11d
jne 0x14010af93
cmp dword [rsp + 0x84], 0
je 0x14010a5f7
mov r14, qword [rbx + 0x88]
cmp dword [r14 + 0x14], 0
js 0x14010a70c
mov rax, qword [r15 + 8]
mov rdi, qword [rax + 0x88]
mov qword [rsp + 0x30], rdi
mov edi, dword [rsp + 0x58]
and edi, 0x80
mov dword [rsp + 0x5c], edi
jne 0x14010a738
jmp 0x14010a7dc
cmp byte [rbx], 1
jbe 0x14010a71d
mov ecx, 0x1387e
call fcn.14010e7b0
jmp 0x14010a725
mov rcx, r14
call fcn.1400bb900
test eax, eax
mov r11d, eax
mov dword [rsp + 0x80], eax
je 0x14010a6e7
jmp 0x14010af93
mov ebp, dword [rax + 0x90]
xor esi, esi
mov dword [rsp + 0x80], esi
cmp ebp, 3
jg 0x14010a75a
mov rax, qword [rsp + 0x30]
mov ebp, 4
mov byte [rax + 3], 0
mov rax, qword [r15 + 8]
cmp byte [rax + 0x21], 0
je 0x14010ab1b
movzx eax, word [r14 + 0xe]
cmp eax, ebp
jge 0x14010ab1b
mov rdx, qword [rsp + 0x30]
lea r8, [rsp + 0x90]
mov rcx, r14
call qword [r14 + pe_nt_image_headers64]
movzx eax, word [rsp + 0xa4]
cmp dword [rsp + 0xa0], eax
je 0x14010ab1b
mov rsi, qword [rsp + 0x30]
movsxd rax, ebp
mov r8d, 3
mov r9d, dword [r14 + 4]
mov rcx, qword [r15 + 8]
mov edx, dword [rsi + rax - 4]
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
bswap edx
call fcn.1400f9010
cmp dword [rsp + 0x80], 0
jmp 0x14010ab15
movzx r11d, byte [r14 + 0xa]
mov rax, qword [rsp + 0x30]
mov rcx, r11
add rcx, rax
cmp byte [r14 + 1], 0
je 0x14010a844
mov eax, dword [r12 + 0x24]
mov r13d, dword [r12 + 0x28]
mov dword [rsp + 0x38], eax
add r13d, eax
mov rax, qword [r12 + 0x10]
cmp r13d, 0x7f
mov qword [rsp + 0x50], rax
ja 0x14010a81b
mov byte [rcx], r13b
mov al, 1
jmp 0x14010a823
movsxd rdx, r13d
call fcn.140132eb0
movzx eax, al
mov rdx, qword [r12 + 8]
add r11d, eax
mov rax, qword [rsp + 0x30]
movsxd rcx, r11d
add rcx, rax
call fcn.140132eb0
lea ecx, [r11 + rax]
jmp 0x14010a874
mov rsi, qword [r12 + 8]
mov rax, qword [r12]
cmp esi, 0x7f
mov r13d, esi
mov qword [rsp + 0x50], rax
ja 0x14010a861
mov byte [rcx], sil
mov al, 1
jmp 0x14010a869
movsxd rdx, esi
call fcn.140132eb0
movzx eax, al
mov dword [rsp + 0x38], esi
lea ecx, [rax + r11]
mov rax, qword [rsp + 0x30]
movsxd r8, ecx
movzx r11d, word [r14 + 0xe]
add r8, rax
cmp r11d, r13d
jl 0x14010a8c1
lea ebp, [rcx + r13]
cmp ebp, 3
jg 0x14010a89f
movsxd rax, r13d
mov ebp, 4
mov byte [r8 + rax], 0
mov eax, dword [rsp + 0x38]
mov rdi, r8
movsxd rcx, dword [rsp + 0x38]
mov rsi, qword [rsp + 0x50]
rep movsb byte [rdi], byte [rsi]
sub r13d, eax
xor eax, eax
movsxd rcx, r13d
rep stosb byte [rdi], al
jmp 0x14010ab08
mov rax, qword [r14 + 0x48]
xor edx, edx
movzx r9d, word [r14 + 0x10]
mov qword [rsp + 0x40], rax
mov rdi, qword [rsp + 0x40]
mov eax, r13d
sub eax, r9d
mov edi, dword [rdi + 0x38]
lea esi, [rdi - 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
mov eax, dword [rsp + 0x38]
cmp r13d, r9d
mov edx, r9d
cmovle edx, r13d
cmp edx, eax
jg 0x14010a952
mov rsi, qword [rsp + 0x50]
movsxd rcx, edx
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
jmp 0x14010a977
cmp dword [rsp + 0x38], 0
jle 0x14010a96d
mov ecx, dword [rsp + 0x38]
mov rdi, r8
mov rsi, qword [rsp + 0x50]
rep movsb byte [rdi], byte [rsi]
mov edx, dword [rsp + 0x38]
jmp 0x14010a977
movsxd rcx, edx
mov rdi, r8
xor eax, eax
rep stosb byte [rdi], al
sub r13d, edx
test r13d, r13d
jle 0x14010aafe
sub dword [rsp + 0x38], edx
movsxd rax, edx
add qword [rsp + 0x50], rax
sub r9d, edx
je 0x14010a999
add r8, rax
jmp 0x14010a931
mov rax, qword [rsp + 0x40]
xor r9d, r9d
mov qword [rsp + 0x90], r9
mov esi, dword [rsp + 0x8c]
cmp byte [rax + 0x21], 0
jne 0x14010a9fa
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 + 0x40]
call fcn.1400b70d0
mov rdi, qword [rsp + 0x40]
mov dword [rsp + 0x88], eax
cmp byte [rdi + 0x21], 0
je 0x14010aa88
test eax, eax
jne 0x14010aa88
jmp 0x14010aa43
mov eax, dword [0x14016f3a0]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x40]
mov r11d, dword [rax + 0x34]
mov r10d, dword [rsp + 0x8c]
mov rcx, qword [rsp + 0x40]
lea edi, [r10 + 1]
mov edx, edi
mov dword [rsp + 0x8c], edi
call fcn.1400f8fc0
cmp edi, eax
je 0x14010aa0d
mov eax, dword [rsp + 0x68]
xor edx, edx
div r11d
cmp r10d, eax
je 0x14010aa0d
jmp 0x14010a9b6
mov edx, dword [rsp + 0x8c]
cmp esi, 1
mov r9d, esi
mov r8d, 3
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x88]
sbb r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.1400f9010
cmp dword [rsp + 0x88], 0
je 0x14010aa88
mov rcx, qword [rsp + 0x90]
call fcn.1400fa480
mov esi, dword [rsp + 0x88]
test esi, esi
je 0x14010aaa3
mov rcx, qword [rsp + 0x48]
call fcn.1400fa480
mov dword [rsp + 0x5c], esi
jmp 0x14010ab08
mov eax, dword [rsp + 0x8c]
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
bswap eax
mov dword [rsi], eax
call fcn.1400fa480
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 + 0x40]
mov eax, dword [rax + 0x38]
mov dword [rsp + 0x68], eax
lea r9d, [rax - 4]
jmp 0x14010a931
mov rcx, qword [rsp + 0x48]
call fcn.1400fa480
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x14010af8b
movzx r13d, word [rbx + 0x56]
mov word [rbx + 0x46], 0
cmp dword [rsp + 0x84], 0
mov eax, r13d
jne 0x14010acad
cmp r13w, word [r14 + 0x18]
jb 0x14010ab5b
mov ecx, 0x138a8
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.14010e7b0
mov rcx, qword [r14 + 0x70]
call fcn.14012b210
test eax, eax
mov r11d, eax
mov dword [rsp + 0x80], eax
jne 0x14010af8b
mov rdx, qword [r14 + 0x60]
lea eax, [r13 + r13]
cdqe
movzx edi, word [rdx + rax]
rol di, 8
and di, word [r14 + 0x1a]
movzx edi, di
add rdi, qword [r14 + 0x50]
cmp byte [r14 + 8], 0
mov rdx, rdi
jne 0x14010aba8
mov eax, dword [rdi]
mov rsi, qword [rsp + 0x30]
mov dword [rsi], eax
mov dword [rsp + 0x40], r11d
lea r8, [rsp + 0x90]
mov rcx, r14
mov qword [rsp + 0x38], rdx
call qword [r14 + pe_nt_image_headers64]
xor eax, eax
movzx ecx, word [rsp + 0xa4]
mov r8d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0x38]
mov r11d, dword [rsp + 0x40]
mov r9d, ecx
cmp ecx, r8d
je 0x14010ac07
mov ax, word [rsp + 0xa6]
mov rcx, r14
mov word [rsp + 0x20], ax
call fcn.1400bdbe0
mov r11d, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
movzx r8d, word [rsp + 0xa6]
mov dword [rsp + 0x80], eax
and byte [rbx + 1], 0xfb
cmp r8d, ebp
jne 0x14010ac8b
movzx eax, word [rsp + 0xa4]
cmp eax, dword [rsp + 0xa0]
jne 0x14010ac8b
mov rax, qword [r15 + 8]
cmp byte [rax + 0x21], 0
je 0x14010ac44
movzx eax, word [r14 + 0x10]
cmp eax, ebp
jle 0x14010ac8b
mov rcx, qword [r14 + 0x50]
movzx eax, byte [r14 + 9]
lea rax, [rcx + rax + 0xa]
mov ecx, 0x138c3
cmp rdx, rax
jb 0x14010ac6d
movsxd rax, ebp
add rax, rdx
cmp qword [r14 + 0x58], rax
jae 0x14010ac7a
mov ecx, 0x138c6
call fcn.14010e7b0
mov r11d, eax
jmp 0x14010af93
mov rsi, qword [rsp + 0x30]
mov ecx, ebp
mov rdi, rdx
rep movsb byte [rdi], byte [rsi]
jmp 0x14010af93
lea r9, [rsp + 0x80]
mov edx, r13d
mov rcx, r14
call fcn.1400c2830
cmp dword [rsp + 0x80], 0
je 0x14010acc5
jmp 0x14010af8b
jns 0x14010acc5
cmp word [r14 + 0x18], 0
je 0x14010acc5
and byte [rbx + 1], 0xf9
inc eax
mov word [rbx + 0x56], ax
movzx r13d, ax
lea eax, [rbp + 1]
cmp eax, dword [r14 + 0x14]
jl 0x14010acef
movzx eax, byte [r14 + 0xc]
mov rdi, qword [rsp + 0x30]
lea edx, [rax + 1]
mov byte [r14 + 0xc], dl
mov qword [r14 + rax*8 + 0x28], rdi
mov word [r14 + rax*2 + 0x1c], r13w
jmp 0x14010aed5
mov rcx, qword [r14 + 0x70]
call fcn.14012b210
test eax, eax
jne 0x14010af05
mov r15, qword [r14 + 0x50]
xor edx, edx
movzx esi, byte [r14 + 9]
mov dword [rsp + 0x90], edx
movzx eax, word [r14 + 0x12]
movzx edx, word [r14 + 0x18]
lea r11, [r15 + rsi + 5]
mov r9w, word [r11]
lea edi, [rax + rdx*2]
rol r9w, 8
movzx r9d, r9w
cmp edi, r9d
jle 0x14010ad4f
test r9d, r9d
jne 0x14010ad48
mov rax, qword [r14 + 0x48]
cmp dword [rax + 0x38], 0x10000
je 0x14010ad6b
mov ecx, 0x11ac3
jmp 0x14010ad5e
mov rax, qword [r14 + 0x48]
cmp r9d, dword [rax + 0x38]
jle 0x14010ad71
mov ecx, 0x11ac6
call fcn.14010e7b0
xor r9d, r9d
jmp 0x14010ae50
mov r9d, 0x10000
cmp byte [r15 + rsi + 2], 0
jne 0x14010ad90
cmp byte [r15 + rsi + 1], 0
jne 0x14010ad90
lea eax, [rbp + rdi + 2]
cmp r9d, eax
jge 0x14010ae3d
jmp 0x14010adf6
lea eax, [rdi + 1]
cmp eax, r9d
jge 0x14010ad81
lea r8, [rsp + 0x90]
mov edx, ebp
mov rcx, r14
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x38], r11
call fcn.1400f43b0
mov r11, qword [rsp + 0x38]
test rax, rax
mov r9d, dword [rsp + 0x40]
je 0x14010ade6
sub rax, r15
cmp edi, eax
mov r9d, eax
jl 0x14010ae58
mov ecx, 0x11ad7
mov dword [rsp + 0x38], eax
call fcn.14010e7b0
mov r9d, dword [rsp + 0x38]
jmp 0x14010ae50
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x14010ad81
jmp 0x14010af05
mov edx, dword [r14 + 0x14]
lea eax, [rbp + 2]
mov rcx, r14
mov qword [rsp + 0x38], r11
sub edx, eax
mov eax, 4
cmp edx, eax
cmovg edx, eax
call fcn.1400c1d20
test eax, eax
jne 0x14010af05
mov r11, qword [rsp + 0x38]
movzx r9d, byte [r15 + 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 [r15 + rsi + 6], r9b
jmp 0x14010ae58
test eax, eax
jne 0x14010af05
lea eax, [rbp + 2]
mov rsi, qword [rsp + 0x30]
movsxd rcx, ebp
mov dword [rsp + 0x38], r9d
movzx eax, ax
sub dword [r14 + 0x14], eax
movsxd rax, r9d
add rax, r15
mov rdi, rax
rep movsb byte [rdi], byte [rsi]
lea esi, [r13 + r13]
movsxd rsi, esi
movzx r8d, word [r14 + 0x18]
add rsi, qword [r14 + 0x60]
sub r8d, r13d
lea rcx, [rsi + 2]
add r8d, r8d
mov rdx, rsi
movsxd r8, r8d
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov r9d, dword [rsp + 0x38]
rol r9w, 8
mov word [rsi], r9w
movzx eax, byte [r14 + 9]
inc word [r14 + 0x18]
lea rdx, [r15 + rax + 4]
inc byte [rdx]
jne 0x14010aecb
movzx eax, byte [r14 + 9]
inc byte [r15 + rax + 3]
mov rax, qword [r14 + 0x48]
cmp byte [rax + 0x21], 0
jne 0x14010aed9
xor eax, eax
jmp 0x14010af05
mov r8, qword [rsp + 0x30]
xor eax, eax
mov rdx, r14
mov rcx, r14
lea r9, [rsp + 0x90]
mov dword [rsp + 0x90], eax
call fcn.1400f90e0
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x14010aed5
cmp byte [r14 + 0xc], 0
mov dword [rsp + 0x80], eax
je 0x14010af8b
and byte [rbx + 1], 0xf9
mov rcx, rbx
call fcn.1400b9430
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 0x14010af8b
test eax, eax
jne 0x14010af8b
mov rcx, rbx
call fcn.1400bc900
cmp qword [rbx + 0x80], 0
je 0x14010af7f
mov rcx, qword [r12 + 8]
call fcn.140129240
test rax, rax
mov qword [rbx + 0x18], rax
jne 0x14010af71
mov dword [rsp + 0x80], 7
jmp 0x14010af7f
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 r11d, dword [rsp + 0x80]
mov eax, r11d
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret