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

Disassembly:
mov r11, rsp
mov dword [r11 + 0x18], r8d
mov qword [r11 + 0x10], rdx
push r12
push r13
push r14
sub rsp, 0x80
mov r14d, r8d
mov r12, rdx
mov r13, rcx
test rdx, rdx
je 0x1400aa33b
cmp r8d, 0x84
jbe 0x1400aa33b
cmp word [rdx + 0x4c], 0
je 0x1400aa33b
cmp dword [rdx], 0x304d4244
jne 0x1400aa33b
cmp word [rdx + 0x48], 0
je 0x1400aa33b
cmp dword [rdx + 0x4e], 0x474e4f53
jne 0x1400aa33b
cmp dword [rdx + 8], 0x454d414e
jne 0x1400aa33b
cmp dword [rdx + 0xc], 0x2c000000
jne 0x1400aa33b
cmp dword [rdx + 0x3c], 0x4f464e49
jne 0x1400aa33b
cmp dword [rdx + 0x40], 0xa000000
jne 0x1400aa33b
movzx eax, word [rdx + 0x82]
rol ax, 8
movzx r10d, ax
lea eax, [r10*2 + 0x9c]
cmp eax, r8d
jae 0x1400aa33b
movzx eax, word [rdx + 0x44]
mov qword [r11 + 8], rbx
mov qword [r11 - 0x28], rsi
rol ax, 8
mov qword [r11 - 0x30], rdi
movzx ebx, ax
movzx eax, word [rdx + 0x46]
mov dword [rsp + 0x30], ebx
rol ax, 8
movzx esi, ax
movzx eax, word [rdx + 0x4a]
mov dword [rcx + 0x104a0], 0x80000
mov dword [rsp + 0x34], esi
rol ax, 8
movzx edi, ax
movzx eax, word [rdx + 0x4c]
rol ax, 8
mov dword [rsp + 0xb8], edi
movzx ecx, ax
mov eax, 4
cmp ecx, eax
cmovb ecx, eax
mov eax, 0x40
cmp ecx, eax
cmova ecx, eax
lea rax, [rdx + 0x10]
mov dword [r13 + 0x10490], ecx
cmp byte [rax], 0
jne 0x1400a99a3
lea rax, [rdx + 0x56]
movups xmm0, xmmword [rax]
xor r9d, r9d
movups xmmword [r13 + 0x10528], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r13 + 0x10538], xmm1
mov byte [r13 + 0x10547], 0
test r10d, r10d
je 0x1400a9a00
lea r8, [r13 + 0xeb60]
mov edx, 0x85
nop word [rax + rax]
mov eax, edx
movzx ecx, byte [rax + r12]
mov byte [r8], cl
cmp edx, 0x281
jae 0x1400a9a00
inc r9d
add edx, 2
inc r8
cmp r9d, r10d
jb 0x1400a99e0
lea r11d, [r10*2 + 0x84]
lea eax, [r11 + 0xa]
cmp eax, r14d
jae 0x1400a9ed3
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x60], r15
mov r15d, 0xef
lea r9d, [r15 + 1]
mov r10d, 0x20
nop
mov eax, r11d
add r11d, 8
mov ecx, dword [rax + r12 + 4]
mov r8d, dword [rax + r12]
mov ebp, r11d
mov edx, ecx
mov eax, ecx
mov dword [rsp + 0x3c], ebp
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
shl eax, 8
or edx, eax
add r11d, edx
mov dword [rsp + 0x38], r11d
cmp r11d, r14d
ja 0x1400a9ec9
cmp edx, r14d
ja 0x1400a9ec9
cmp r8d, 0x54534e49
jne 0x1400a9d65
cmp ebx, r9d
cmovae ebx, r15d
mov dword [rsp + 0x30], ebx
test ebx, ebx
je 0x1400a9eb0
mov r15d, r11d
mov r14d, 1
nop
lea rax, [rbp + 0x32]
cmp rax, r15
ja 0x1400a9d42
mov ecx, 0x278
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rbx, rax
test rax, rax
je 0x1400aa31f
movzx eax, word [r12 + rbp + 0x1e]
rol ax, 8
movzx esi, ax
lea eax, [rsi - 1]
cmp eax, 0xee
ja 0x1400a9afb
lea rcx, [rsi + rsi*8]
lea rdi, [r13 + 0x8e00]
lea rdi, [rdi + rcx*8]
jmp 0x1400a9afd
xor edi, edi
xor edx, edx
mov r8d, 0x278
mov rcx, rbx
call fcn.140073d90
movups xmm0, xmmword [r12 + rbp]
movups xmmword [rbx + 0x249], xmm0
movsd xmm1, qword [r12 + rbp + 0x10]
movsd qword [rbx + 0x259], xmm1
mov eax, dword [r12 + rbp + 0x18]
mov dword [rbx + 0x261], eax
movzx eax, word [r12 + rbp + 0x1c]
mov word [rbx + 0x265], ax
test rdi, rdi
je 0x1400a9b89
movups xmm0, xmmword [r12 + rbp]
mov rcx, rsi
shl rcx, 5
add rcx, r13
movups xmmword [rcx + 0x10528], xmm0
movsd xmm1, qword [r12 + rbp + 0x10]
movsd qword [rcx + 0x10538], xmm1
mov eax, dword [r12 + rbp + 0x18]
mov dword [rcx + 0x10540], eax
movzx eax, word [r12 + rbp + 0x1c]
mov word [rcx + 0x10544], ax
mov byte [rcx + 0x10546], 0
mov eax, r14d
mov r8d, 0x40
mov ecx, 0xfe
mov qword [r13 + rax*8 + 0xd180], rbx
mov dword [rbx], 0x400
mov word [rbx + 8], r8w
movzx eax, word [r12 + rbp + 0x2e]
rol ax, 8
mov word [rbx + 0xa], ax
dec ax
cmp ax, cx
ja 0x1400a9bc9
mov dword [rbx + 4], 0x200
jmp 0x1400a9bd2
mov eax, pe_nt_image_headers64
mov word [rbx + 0xa], ax
mov byte [rbx + 0x248], 0x3c
xor ecx, ecx
lea rdx, [rbx + 0x1ac]
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx + 1]
inc ecx
mov byte [rdx - 0x80], sil
mov byte [rdx], al
lea rdx, [rdx + 1]
cmp ecx, 0x78
jb 0x1400a9bf0
test rdi, rdi
je 0x1400a9d1d
movzx eax, word [r12 + rbp + 0x30]
mov ecx, 0xff
rol ax, 8
movzx ebx, ax
movzx eax, word [r12 + rbp + 0x20]
rol ax, 8
shl ax, 2
mov word [rdi + 0x26], ax
dec ax
cmp ax, cx
jbe 0x1400a9c42
mov eax, 0x100
mov word [rdi + 0x26], ax
mov word [rdi + 0x28], r8w
mov edx, dword [r12 + rbp + 0x22]
mov ecx, edx
mov eax, edx
shr eax, 0x10
and ecx, 0xff0000
or ecx, eax
mov eax, edx
and edx, 0xff00
shl eax, 0x10
shr ecx, 8
or eax, edx
shl eax, 8
or ecx, eax
mov dword [rdi + 0x20], ecx
call fcn.140098520
mov ecx, eax
sar eax, 7
and cl, 0x7f
mov byte [rdi + 0x2c], al
mov byte [rdi + 0x2d], cl
cmp dword [r12 + rbp + 0x2a], 0
je 0x1400a9d1d
test bl, 3
je 0x1400a9d1d
mov ecx, dword [r12 + rbp + 0x26]
mov r8d, ecx
mov eax, ecx
shr eax, 0x10
and r8d, 0xff0000
or r8d, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr r8d, 8
or eax, ecx
shl eax, 8
or r8d, eax
mov dword [rdi + 4], r8d
mov ecx, dword [r12 + rbp + 0x2a]
mov edx, ecx
mov eax, ecx
shr eax, 0x10
and edx, 0xff0000
or edx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr edx, 8
or eax, ecx
mov ecx, 0xfffb
shl eax, 8
or edx, eax
movzx eax, word [rdi + 0x2a]
and ax, cx
add edx, r8d
or ax, 2
mov dword [rdi + 8], edx
mov word [rdi + 0x2a], ax
test bl, 2
je 0x1400a9d1d
or ax, 4
mov word [rdi + 0x2a], ax
mov ebp, dword [rsp + 0x3c]
mov ebx, dword [rsp + 0x30]
mov dword [r13 + 0x104a8], r14d
inc r14d
add ebp, 0x32
lea eax, [r14 - 1]
mov dword [rsp + 0x3c], ebp
cmp eax, ebx
jb 0x1400a9ab0
mov r11d, dword [rsp + 0x38]
mov esi, dword [rsp + 0x34]
mov edi, dword [rsp + 0xb8]
mov r14d, dword [rsp + 0xb0]
mov r15d, 0xef
jmp 0x1400a9eb0
cmp r8d, 0x564e4556
jne 0x1400a9ef8
lea eax, [rbp + 1]
xor ebx, ebx
add ebp, 2
movzx edi, byte [rax + r12]
test edi, edi
je 0x1400a9ea5
mov esi, r11d
nop word [rax + rax]
lea rax, [rbp + 0x88]
cmp rax, rsi
ja 0x1400a9e9c
movzx eax, word [r12 + rbp]
lea r9, [r12 + rbp]
rol ax, 8
movzx ecx, ax
lea eax, [rcx - 1]
cmp eax, 0xee
ja 0x1400a9e8c
mov r8, qword [r13 + rcx*8 + 0xd180]
test r8, r8
je 0x1400a9e8c
cmp byte [r9 + 3], 0
je 0x1400a9e8c
test byte [r9 + 2], 1
je 0x1400a9de6
or dword [r8 + 4], 1
test byte [r9 + 2], 2
je 0x1400a9df2
or dword [r8 + 4], 2
test byte [r9 + 2], 4
je 0x1400a9dfe
or dword [r8 + 4], 4
movzx eax, byte [r9 + 3]
inc al
cmp al, 0x20
movzx ecx, al
cmova ecx, r10d
xor r11d, r11d
mov byte [r8 + 0x22c], cl
movzx eax, byte [r9 + 5]
mov byte [r8 + 0x22f], al
movzx eax, byte [r9 + 6]
mov byte [r8 + 0x230], al
movzx eax, byte [r9 + 4]
mov byte [r8 + 0x232], al
mov byte [r8 + 0x231], al
test cl, cl
je 0x1400a9e8c
xor r10d, r10d
nop word [rax + rax]
movzx ecx, word [r9 + r10*2 + 8]
lea eax, [r10 + 1]
lea r10d, [r10 + 2]
rol cx, 8
mov word [r8 + r11*2 + 0xc], cx
movzx eax, byte [r9 + rax*2 + 9]
mov byte [r11 + r8 + 0xcc], al
movzx eax, byte [r8 + 0x22c]
inc r11d
cmp r11d, eax
jb 0x1400a9e50
mov r10d, 0x20
inc ebx
add ebp, 0x88
cmp ebx, edi
jb 0x1400a9d90
mov r11d, dword [rsp + 0x38]
mov esi, dword [rsp + 0x34]
mov edi, dword [rsp + 0xb8]
mov ebx, dword [rsp + 0x30]
lea ecx, [r11 + 0xa]
mov r9d, 0xf0
mov r10d, 0x20
cmp ecx, r14d
jb 0x1400a9a30
mov rbp, qword [rsp + 0x78]
mov r15, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xa0]
mov eax, 1
add rsp, 0x80
pop r14
pop r13
pop r12
ret
cmp r8d, 0x54544150
jne 0x1400aa20e
cmp edi, r9d
mov dword [rsp + 0x44], 0
cmova edi, r9d
mov dword [rsp + 0xb8], edi
test edi, edi
je 0x1400a9eb0
lea rdi, [r13 + 0xe200]
lea rax, [r13 + 0xe980]
mov ecx, r11d
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], rcx
nop
mov ebx, ebp
lea rax, [rbx + 8]
cmp rax, rcx
ja 0x1400aa19b
mov ecx, dword [rbx + r12 + 2]
add ebp, 6
mov r12d, ecx
mov eax, ecx
shr eax, 0x10
and r12d, 0xff0000
or r12d, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr r12d, 8
or eax, ecx
shl eax, 8
or r12d, eax
add ebp, r12d
mov dword [rsp + 0x3c], ebp
cmp ebp, r11d
ja 0x1400aa193
cmp r12d, r11d
ja 0x1400aa193
mov r15, qword [rsp + 0xa8]
movzx eax, word [rbx + r15]
rol ax, 8
movzx esi, ax
mov dword [rsp + 0x40], esi
lea eax, [rsi - 4]
cmp eax, 0xfc
ja 0x1400aa160
mov edx, dword [r13 + 0x10490]
mov ecx, esi
call fcn.140097740
mov r14, rax
test rax, rax
je 0x1400aa15b
mov rax, qword [rsp + 0x48]
lea rbp, [rbx + r15]
xor r15d, r15d
xor ebx, ebx
mov word [rax], si
mov qword [rdi], r14
cmp r12d, 3
jbe 0x1400aa157
lea edi, [rbx + 3]
nop word [rax + rax]
cmp r15d, esi
jae 0x1400aa152
movzx r10d, byte [rbx + rbp + 6]
inc edi
inc ebx
test r10d, r10d
je 0x1400aa1f7
movzx r8d, byte [rbx + rbp + 6]
dec r10d
inc edi
inc ebx
cmp r10d, dword [r13 + 0x10490]
jae 0x1400aa1b2
test r8b, 1
je 0x1400aa074
movzx edx, byte [rbx + rbp + 6]
inc edi
inc ebx
cmp edx, 0x1f
jne 0x1400aa051
mov edx, 0xff
jmp 0x1400aa06c
lea eax, [rdx - 1]
cmp eax, 0xfc
ja 0x1400aa06c
mov eax, edx
and edx, 0xf
shr eax, 4
lea ecx, [rax + rax*2]
lea edx, [rdx + rcx*4]
add edx, 0xd
lea rcx, [r10 + r10*2]
mov byte [r14 + rcx*2], dl
test r8b, 2
je 0x1400aa08c
movzx eax, byte [rbx + rbp + 6]
lea rcx, [r10 + r10*2]
inc ebx
mov byte [r14 + rcx*2 + 1], al
inc edi
test r8b, 0x3c
je 0x1400aa149
mov eax, 0xff
xor r11d, r11d
xor esi, esi
mov r9d, eax
mov edx, eax
test r8b, 4
je 0x1400aa0b5
movzx r9d, byte [rbx + rbp + 6]
inc ebx
inc edi
test r8b, 8
je 0x1400aa0c5
movzx r11d, byte [rbx + rbp + 6]
inc ebx
inc edi
test r8b, 0x10
je 0x1400aa0d4
movzx edx, byte [rbx + rbp + 6]
inc ebx
inc edi
test r8b, 0x20
je 0x1400aa0e3
movzx esi, byte [rbx + rbp + 6]
inc ebx
inc edi
cmp r9d, 0xc
jne 0x1400aa0fa
lea rcx, [r10 + r10*2]
mov byte [r14 + rcx*2 + 2], 1
mov byte [r14 + rcx*2 + 4], r11b
jmp 0x1400aa121
cmp edx, 0xc
jne 0x1400aa110
lea rcx, [r10 + r10*2]
mov edx, eax
mov byte [r14 + rcx*2 + 2], 1
mov byte [r14 + rcx*2 + 4], sil
cmp r9d, 0x13
ja 0x1400aa121
cmp r9d, 0x10
jb 0x1400aa127
cmp edx, 0x10
jae 0x1400aa127
mov r9d, edx
mov r11d, esi
cmp r9d, 0x13
ja 0x1400aa145
lea rcx, [r10 + r10*2]
lea rdx, [r14 + rcx*2]
mov rcx, r13
mov byte [rdx + 3], r9b
mov byte [rdx + 5], r11b
call fcn.1400b1450
mov esi, dword [rsp + 0x40]
cmp edi, r12d
jb 0x1400aa000
mov rdi, qword [rsp + 0x50]
mov ebp, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x44]
add qword [rsp + 0x48], 2
mov r12, qword [rsp + 0xa8]
inc ecx
add rdi, 8
cmp ecx, dword [rsp + 0xb8]
mov dword [rsp + 0x44], ecx
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x50], rdi
jb 0x1400a9f40
mov r12, qword [rsp + 0xa8]
mov esi, dword [rsp + 0x34]
mov r14d, dword [rsp + 0xb0]
mov r15d, 0xef
jmp 0x1400a9ea5
test r8b, 1
je 0x1400aa1bc
inc ebx
inc edi
test r8b, 2
je 0x1400aa1c6
inc ebx
inc edi
test r8b, 4
je 0x1400aa1d0
inc ebx
inc edi
test r8b, 8
je 0x1400aa1da
inc ebx
inc edi
test r8b, 0x10
je 0x1400aa1e4
inc ebx
inc edi
test r8b, 0x20
je 0x1400aa149
inc ebx
inc edi
jmp 0x1400aa149
mov eax, dword [r13 + 0x10490]
inc r15d
lea rcx, [rax + rax*2]
lea r14, [r14 + rcx*2]
jmp 0x1400aa149
cmp r8d, 0x4c504d53
jne 0x1400a9eb0
cmp esi, r9d
mov ebx, 1
cmovae esi, r15d
mov dword [rsp + 0x34], esi
mov dword [r13 + 0x104a4], esi
cmp esi, ebx
jb 0x1400a9eac
mov edi, r11d
nop dword [rax]
lea rax, [rbp + 0xa]
cmp rax, rdi
jae 0x1400a9ea5
mov ecx, dword [r12 + rbp + 4]
lea r9, [r12 + rbp]
lea rdx, [r13 + 0x8e00]
mov eax, ecx
mov r10d, ecx
add ebp, 8
shr eax, 0x10
and r10d, 0xff0000
or r10d, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr r10d, 8
or eax, ecx
mov ecx, dword [r9]
shl eax, 8
mov r8d, ecx
or r10d, eax
mov eax, ecx
and r8d, 0xff0000
shr eax, 0x10
or r8d, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr r8d, 8
or eax, ecx
shl eax, 8
or r8d, eax
mov eax, ebx
lea rcx, [rax + rax*8]
lea rdx, [rdx + rcx*8]
mov dword [rdx], r10d
test r8b, 2
je 0x1400aa2d0
or word [rdx + 0x2a], 1
add r10d, r10d
add ebp, r10d
cmp ebp, r11d
ja 0x1400a9ea5
cmp r10d, r14d
ja 0x1400a9ea5
test r8b, 3
je 0x1400aa310
movzx eax, byte [rdx + 0x2a]
add r9, 8
mov rcx, r13
and al, 1
mov dword [rsp + 0x20], r10d
neg al
sbb r8d, r8d
and r8d, 7
call fcn.140098ae0
mov r11d, dword [rsp + 0x38]
inc ebx
cmp ebx, esi
jbe 0x1400aa240
jmp 0x1400a9ea5
mov r11d, dword [rsp + 0x38]
mov esi, dword [rsp + 0x34]
mov r14d, dword [rsp + 0xb0]
mov r15d, 0xef
jmp 0x1400a9ea5
xor eax, eax
add rsp, 0x80
pop r14
pop r13
pop r12
ret