Function at 0x1400ad160
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 0x1400adc2b
cmp r8d, 0x84
jbe 0x1400adc2b
cmp word [rdx + 0x4c], 0
je 0x1400adc2b
cmp dword [rdx], 0x304d4244
jne 0x1400adc2b
cmp word [rdx + 0x48], 0
je 0x1400adc2b
cmp dword [rdx + 0x4e], 0x474e4f53
jne 0x1400adc2b
cmp dword [rdx + 8], 0x454d414e
jne 0x1400adc2b
cmp dword [rdx + 0xc], 0x2c000000
jne 0x1400adc2b
cmp dword [rdx + 0x3c], 0x4f464e49
jne 0x1400adc2b
cmp dword [rdx + 0x40], 0xa000000
jne 0x1400adc2b
movzx eax, word [rdx + 0x82]
rol ax, 8
movzx r10d, ax
lea eax, [r10*2 + 0x9c]
cmp eax, r8d
jae 0x1400adc2b
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 0x1400ad293
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 0x1400ad2f0
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 0x1400ad2f0
inc r9d
add edx, 2
inc r8
cmp r9d, r10d
jb 0x1400ad2d0
lea r11d, [r10*2 + 0x84]
lea eax, [r11 + 0xa]
cmp eax, r14d
jae 0x1400ad7c3
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 0x1400ad7b9
cmp edx, r14d
ja 0x1400ad7b9
cmp r8d, 0x54534e49
jne 0x1400ad655
cmp ebx, r9d
cmovae ebx, r15d
mov dword [rsp + 0x30], ebx
test ebx, ebx
je 0x1400ad7a0
mov r15d, r11d
mov r14d, 1
nop
lea rax, [rbp + 0x32]
cmp rax, r15
ja 0x1400ad632
mov ecx, 0x278
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
mov rbx, rax
test rax, rax
je 0x1400adc0f
movzx eax, word [r12 + rbp + 0x1e]
rol ax, 8
movzx esi, ax
lea eax, [rsi - 1]
cmp eax, 0xee
ja 0x1400ad3eb
lea rcx, [rsi + rsi*8]
lea rdi, [r13 + 0x8e00]
lea rdi, [rdi + rcx*8]
jmp 0x1400ad3ed
xor edi, edi
xor edx, edx
mov r8d, 0x278
mov rcx, rbx
call sub.msvcrt.dll_memset
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 0x1400ad479
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 0x1400ad4b9
mov dword [rbx + 4], 0x200
jmp 0x1400ad4c2
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 0x1400ad4e0
test rdi, rdi
je 0x1400ad60d
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 0x1400ad532
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.14009be10
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 0x1400ad60d
test bl, 3
je 0x1400ad60d
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 0x1400ad60d
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 0x1400ad3a0
mov r11d, dword [rsp + 0x38]
mov esi, dword [rsp + 0x34]
mov edi, dword [rsp + 0xb8]
mov r14d, dword [rsp + 0xb0]
mov r15d, 0xef
jmp 0x1400ad7a0
cmp r8d, 0x564e4556
jne 0x1400ad7e8
lea eax, [rbp + 1]
xor ebx, ebx
add ebp, 2
movzx edi, byte [rax + r12]
test edi, edi
je 0x1400ad795
mov esi, r11d
nop word [rax + rax]
lea rax, [rbp + 0x88]
cmp rax, rsi
ja 0x1400ad78c
movzx eax, word [r12 + rbp]
lea r9, [r12 + rbp]
rol ax, 8
movzx ecx, ax
lea eax, [rcx - 1]
cmp eax, 0xee
ja 0x1400ad77c
mov r8, qword [r13 + rcx*8 + 0xd180]
test r8, r8
je 0x1400ad77c
cmp byte [r9 + 3], 0
je 0x1400ad77c
test byte [r9 + 2], 1
je 0x1400ad6d6
or dword [r8 + 4], 1
test byte [r9 + 2], 2
je 0x1400ad6e2
or dword [r8 + 4], 2
test byte [r9 + 2], 4
je 0x1400ad6ee
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 0x1400ad77c
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 0x1400ad740
mov r10d, 0x20
inc ebx
add ebp, 0x88
cmp ebx, edi
jb 0x1400ad680
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 0x1400ad320
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 0x1400adafe
cmp edi, r9d
mov dword [rsp + 0x44], 0
cmova edi, r9d
mov dword [rsp + 0xb8], edi
test edi, edi
je 0x1400ad7a0
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 0x1400ada8b
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 0x1400ada83
cmp r12d, r11d
ja 0x1400ada83
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 0x1400ada50
mov edx, dword [r13 + 0x10490]
mov ecx, esi
call fcn.14009b030
mov r14, rax
test rax, rax
je 0x1400ada4b
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 0x1400ada47
lea edi, [rbx + 3]
nop word [rax + rax]
cmp r15d, esi
jae 0x1400ada42
movzx r10d, byte [rbx + rbp + 6]
inc edi
inc ebx
test r10d, r10d
je 0x1400adae7
movzx r8d, byte [rbx + rbp + 6]
dec r10d
inc edi
inc ebx
cmp r10d, dword [r13 + 0x10490]
jae 0x1400adaa2
test r8b, 1
je 0x1400ad964
movzx edx, byte [rbx + rbp + 6]
inc edi
inc ebx
cmp edx, 0x1f
jne 0x1400ad941
mov edx, 0xff
jmp 0x1400ad95c
lea eax, [rdx - 1]
cmp eax, 0xfc
ja 0x1400ad95c
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 0x1400ad97c
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 0x1400ada39
mov eax, 0xff
xor r11d, r11d
xor esi, esi
mov r9d, eax
mov edx, eax
test r8b, 4
je 0x1400ad9a5
movzx r9d, byte [rbx + rbp + 6]
inc ebx
inc edi
test r8b, 8
je 0x1400ad9b5
movzx r11d, byte [rbx + rbp + 6]
inc ebx
inc edi
test r8b, 0x10
je 0x1400ad9c4
movzx edx, byte [rbx + rbp + 6]
inc ebx
inc edi
test r8b, 0x20
je 0x1400ad9d3
movzx esi, byte [rbx + rbp + 6]
inc ebx
inc edi
cmp r9d, 0xc
jne 0x1400ad9ea
lea rcx, [r10 + r10*2]
mov byte [r14 + rcx*2 + 2], 1
mov byte [r14 + rcx*2 + 4], r11b
jmp 0x1400ada11
cmp edx, 0xc
jne 0x1400ada00
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 0x1400ada11
cmp r9d, 0x10
jb 0x1400ada17
cmp edx, 0x10
jae 0x1400ada17
mov r9d, edx
mov r11d, esi
cmp r9d, 0x13
ja 0x1400ada35
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.1400b4d40
mov esi, dword [rsp + 0x40]
cmp edi, r12d
jb 0x1400ad8f0
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 0x1400ad830
mov r12, qword [rsp + 0xa8]
mov esi, dword [rsp + 0x34]
mov r14d, dword [rsp + 0xb0]
mov r15d, 0xef
jmp 0x1400ad795
test r8b, 1
je 0x1400adaac
inc ebx
inc edi
test r8b, 2
je 0x1400adab6
inc ebx
inc edi
test r8b, 4
je 0x1400adac0
inc ebx
inc edi
test r8b, 8
je 0x1400adaca
inc ebx
inc edi
test r8b, 0x10
je 0x1400adad4
inc ebx
inc edi
test r8b, 0x20
je 0x1400ada39
inc ebx
inc edi
jmp 0x1400ada39
mov eax, dword [r13 + 0x10490]
inc r15d
lea rcx, [rax + rax*2]
lea r14, [r14 + rcx*2]
jmp 0x1400ada39
cmp r8d, 0x4c504d53
jne 0x1400ad7a0
cmp esi, r9d
mov ebx, 1
cmovae esi, r15d
mov dword [rsp + 0x34], esi
mov dword [r13 + 0x104a4], esi
cmp esi, ebx
jb 0x1400ad79c
mov edi, r11d
nop dword [rax]
lea rax, [rbp + 0xa]
cmp rax, rdi
jae 0x1400ad795
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 0x1400adbc0
or word [rdx + 0x2a], 1
add r10d, r10d
add ebp, r10d
cmp ebp, r11d
ja 0x1400ad795
cmp r10d, r14d
ja 0x1400ad795
test r8b, 3
je 0x1400adc00
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.14009c3d0
mov r11d, dword [rsp + 0x38]
inc ebx
cmp ebx, esi
jbe 0x1400adb30
jmp 0x1400ad795
mov r11d, dword [rsp + 0x38]
mov esi, dword [rsp + 0x34]
mov r14d, dword [rsp + 0xb0]
mov r15d, 0xef
jmp 0x1400ad795
xor eax, eax
add rsp, 0x80
pop r14
pop r13
pop r12
ret