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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x128
mov rax, qword [0x14015a100]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rax, qword [rcx]
mov r10, rcx
movzx r13d, r9w
mov word [rsp + 0x46], r9w
xor r9d, r9d
mov qword [rsp + 0x60], rcx
mov rsi, r8
mov qword [rsp + 0x58], rdx
mov rax, qword [rax]
mov r8, rdx
mov rbx, qword [r10 + 0x10]
mov ebp, r9d
mov qword [rsp + 0x80], rax
mov r15d, r9d
mov dword [rsp + 0x4c], r9d
mov r12d, r9d
mov rcx, qword [rax]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x98], rbx
cmp dword [rax + 0x30], r9d
je 0x1400aa218
mov eax, dword [rax + 0x18]
jmp 0x1400aac07
mov eax, dword [rbx + 0x38]
mov edi, pe_nt_image_headers64
mov dword [rsp + 0x50], eax
mov r11d, 2
and al, 0x20
neg al
sbb ecx, ecx
and ecx, 0xfffffe59
add ecx, 0x1bf
test dword [rsi + 0x64], 0x104
je 0x1400aa264
mov edx, ecx
and edx, 0xffffffc3
test byte [rsi + 0x64], 4
cmove edx, ecx
mov ecx, edx
test dword [rsi + 0x64], edi
je 0x1400aa264
test byte [r8 + 0x40], r11b
jne 0x1400aa264
and ecx, 0xffffff7c
movzx eax, word [rbx + 0x1a]
movzx edx, word [rbx + 0x3c]
movzx r14d, word [rbx + 0x18]
mov r8d, dword [r8 + 0x44]
mov r9d, r14d
mov word [rsp + 0x3a], ax
movzx eax, word [rbx + 0x1c]
mov word [rsp + 0x3c], ax
movzx eax, word [rbx + 0x3e]
mov word [rsp + 0x4a], ax
mov rax, qword [rbx]
mov qword [rsp + 0x88], rax
movzx eax, word [rbx + 0x16]
mov word [rsp + 0x3e], dx
mov rdx, qword [r10 + 8]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0xa0]
mov word [rsp + 0x36], ax
mov word [rsp + 0x44], r14w
call fcn.1400a83c0
xor r9d, r9d
mov qword [rsp + 0x70], rax
mov word [rbx + 0x12], r9w
mov rdi, rax
mov rcx, qword [rsi + 0x10]
movsx rax, word [rcx]
lea ecx, [r9 + 0xa]
mov word [rsp + 0x48], ax
cmp ax, cx
jg 0x1400aa2f6
mov word [rsp + 0x34], r9w
jmp 0x1400aa307
mov rcx, rax
call fcn.14003f01c
sub ax, 0x21
mov word [rsp + 0x34], ax
mov edx, 3
lea r8d, [rdx + 0xd]
lea r10d, [rdx - 2]
test rdi, rdi
je 0x1400aaae2
movzx r11d, word [rdi + 0x14]
mov ecx, pe_nt_image_headers64
mov word [rsp + 0x38], r11w
mov dword [rsp + 0x30], r9d
cmp r11w, cx
je 0x1400aa33e
test byte [rdi + 0x12], 0x80
je 0x1400aa386
mov rax, qword [rsi + 8]
movzx ecx, r14w
movsx r8, word [rax + rcx*2]
test r8d, r8d
js 0x1400aa371
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
test dword [rax + rcx*8 + 8], 0xf
jne 0x1400aaab6
mov edx, 3
jmp 0x1400aa37b
cmp r8d, 0xffffffff
je 0x1400aaab6
mov r8d, 0x10
mov ecx, pe_nt_image_headers64
mov rax, qword [rdi + 0x28]
test qword [rbx + 8], rax
jne 0x1400aaab6
test word [rdi + 0x12], cx
je 0x1400aa3a4
cmp r11w, r8w
je 0x1400aaab6
mov r8, qword [rsp + 0x58]
test byte [r8 + 0x3c], 0x58
je 0x1400aa3e0
mov rcx, qword [rdi]
test byte [rcx + 4], dl
je 0x1400aaab6
mov eax, dword [r8 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1400aaab6
test byte [r8 + 0x3c], 0x18
mov edx, 2
je 0x1400aa3e5
test byte [rcx + 4], dl
jne 0x1400aaab6
jmp 0x1400aa3e5
mov edx, 2
cmp byte [rsi + 0x62], r9b
je 0x1400aa404
movzx eax, word [rsi + 0x5e]
sub eax, r10d
movzx ecx, r14w
cmp ecx, eax
jne 0x1400aa404
mov rax, qword [rsp + 0x60]
or byte [rax + 0x20], dl
jmp 0x1400aa40d
mov rax, qword [rsp + 0x60]
or byte [rax + 0x20], r10b
mov eax, dword [rsp + 0x50]
mov dword [rbx + 0x38], eax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3c], ax
cmp ax, word [rbx + 0x40]
jb 0x1400aa465
mov rcx, qword [rsp + 0x68]
lea r8d, [r10 + rax]
mov rdx, rbx
call fcn.1400a99dc
xor r9d, r9d
lea r10d, [r9 + 1]
test eax, eax
jne 0x1400aaae2
movzx r11d, word [rsp + 0x38]
mov r8, qword [rsp + 0x58]
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdi
movzx edx, word [rbx + 0x3c]
mov rcx, qword [rsp + 0x88]
add dx, r10w
mov rax, qword [rbx + 8]
mov word [rbx + 0x3c], dx
not rax
or rcx, qword [rdi + 0x28]
and rcx, rax
mov qword [rbx], rcx
test r10b, r11b
je 0x1400aa588
mov r8, qword [rdi]
test dword [r8 + 4], 0x1000
je 0x1400aa4e6
movzx ecx, dx
mov r10d, 0x2e
dec ecx
mov dword [rsp + 0x30], r10d
test ecx, ecx
jle 0x1400aa507
mov rax, qword [rbx + 0x48]
mov edx, ecx
mov rcx, qword [rax]
test rcx, rcx
je 0x1400aa4d5
cmp qword [rcx], r8
cmove r10d, r9d
add rax, 8
sub rdx, 1
jne 0x1400aa4c6
mov dword [rsp + 0x30], r10d
jmp 0x1400aa507
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1400aa502
cmp dword [rax], r9d
je 0x1400aa502
movsxd rcx, dword [rax]
call fcn.14003f01c
movsx r10d, ax
jmp 0x1400aa4df
mov r10d, dword [rsp + 0x30]
test byte [rsi + 0x64], 0x80
je 0x1400aa579
mov edx, 0xa
cmp word [rsp + 0x34], dx
jl 0x1400aa579
mov rax, qword [rsi + 0x10]
movzx ecx, r14w
movzx r9d, word [rax + rcx*2]
cmp r10w, dx
jg 0x1400aa533
xor edx, edx
movzx eax, dx
jmp 0x1400aa540
movsx rcx, r10w
call fcn.14003f01c
sub ax, 0x21
sub ax, r10w
sub ax, word [rsp + 0x34]
add ax, r9w
add ax, 0xa
jns 0x1400aa579
mov eax, 2
cmp r13w, ax
jge 0x1400aaab6
mov rax, qword [rsp + 0x68]
test dword [rax + 0x60], 0x20000
jne 0x1400aaab6
bts dword [rbx + 0x38], 0x14
or dword [rbx + 0x38], 4
mov edx, dword [rbx + 0x38]
xor r9d, r9d
jmp 0x1400aa879
test r11b, 0x82
je 0x1400aa615
mov rax, qword [rsi + 8]
movzx ecx, r14w
movsx r8d, word [rax + rcx*2]
mov ecx, dword [rbx + 0x38]
or ecx, r10d
mov dword [rbx + 0x38], ecx
cmp r8d, 0xffffffff
je 0x1400aa5f3
mov edx, ecx
test r8d, r8d
js 0x1400aa5fc
test r13w, r13w
jne 0x1400aa5fc
movzx r8d, word [rsi + 0x5e]
mov eax, r8d
movzx r9d, r14w
sub eax, r10d
cmp r9d, eax
jne 0x1400aa5fc
test byte [rsi + 0x64], 8
jne 0x1400aa5f3
cmp r8w, r10w
jne 0x1400aa5eb
xor edx, edx
cmp byte [rsi + 0x62], dl
je 0x1400aa5eb
lea eax, [rdx + 2]
cmp r11w, ax
je 0x1400aa5f3
mov edx, ecx
bts edx, 0x10
jmp 0x1400aa5f9
mov edx, ecx
bts edx, 0xc
mov dword [rbx + 0x38], edx
cmp byte [rsp + 0xc9], r10b
jbe 0x1400aa60d
bts edx, 0x15
mov dword [rbx + 0x38], edx
xor r9d, r9d
jmp 0x1400aa87f
bt r11w, 8
jae 0x1400aa626
or dword [rbx + 0x38], 8
mov edx, dword [rbx + 0x38]
jmp 0x1400aa60d
mov rcx, qword [rdi]
mov r10d, dword [r8 + 0x44]
mov dword [rsp + 0x54], r10d
mov rcx, qword [rcx + 0x10]
call fcn.14006b2d0
movzx ecx, word [rsi + 0x60]
mov r8d, 1
movzx edx, r14w
mov r9d, r8d
sub ecx, edx
mov dword [rsp + 0x40], r8d
cmp eax, ecx
mov r15d, r8d
cmovl ecx, eax
movsxd rax, ecx
mov ecx, r8d
cmp rax, r8
jle 0x1400aa7cd
lea ebp, [r8 + 0x1f]
mov r12d, edx
lea r8, [rdx*2 + 2]
mov rbx, rax
mov qword [rsp + 0x78], r8
lea r13, [rdx*8 + 8]
mov rdx, qword [rdi]
mov rax, qword [rdx + 0x10]
mov rcx, qword [rax + 0x20]
mov rax, qword [rdx + 0x18]
mov rdi, qword [rcx + rbp + 8]
test dword [rax + 4], 0x1000
mov rcx, qword [rax + 0x20]
je 0x1400aa6b5
mov rax, qword [rcx + 0x20]
mov r14, qword [rax + rbp + 8]
jmp 0x1400aa6ba
mov r14, qword [rcx + rbp + 8]
cmp byte [rdi], 0xa7
jne 0x1400aa7a5
cmp dword [rdi + 0x2c], r10d
jne 0x1400aa7a5
mov rax, qword [rsi + 8]
movzx ecx, word [r8 + rax]
cmp word [rdi + 0x30], cx
jne 0x1400aa7a5
mov rax, qword [rsi + 0x38]
lea rcx, [rax + r12]
mov al, byte [rax + r12]
cmp byte [rcx + r15], al
jne 0x1400aa7a5
mov rcx, rdi
call fcn.14006ac5c
mov dl, al
mov rcx, r14
call fcn.14006b0d8
movsx rcx, word [rdi + 0x30]
test cx, cx
js 0x1400aa72c
mov r8, qword [rsi + 0x18]
cmp cx, word [r8 + 0x36]
jge 0x1400aa72c
lea rdx, [rcx + rcx*2]
mov rcx, qword [r8 + 8]
mov r8b, byte [rcx + rdx*8 + 0xc]
jmp 0x1400aa72f
mov r8b, 0x44
cmp al, r8b
jne 0x1400aa7a0
mov rcx, qword [rsp + 0x80]
mov r8, r14
mov rdx, rdi
call fcn.14006b1a0
test rax, rax
je 0x1400aa7a0
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + r13]
call fcn.14003d72c
mov r9d, dword [rsp + 0x40]
mov ecx, 1
test eax, eax
jne 0x1400aa7aa
mov r8, qword [rsp + 0x78]
add r9d, ecx
mov r10d, dword [rsp + 0x54]
add r8, 2
mov rdi, qword [rsp + 0x70]
add r15, rcx
add r13, 8
mov dword [rsp + 0x40], r9d
add rbp, 0x20
mov qword [rsp + 0x78], r8
cmp r15, rbx
jl 0x1400aa689
jmp 0x1400aa7aa
mov r9d, dword [rsp + 0x40]
mov ecx, 1
mov rbx, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x70]
mov ebp, dword [rsp + 0x4c]
movzx r11d, word [rsp + 0x38]
movzx r14d, word [rsp + 0x44]
movzx r13d, word [rsp + 0x46]
mov edx, dword [rbx + 0x38]
test r11b, 0x24
je 0x1400aa851
xor eax, eax
mov word [rbx + 0x1a], r9w
or edx, 0x22
mov r15d, eax
mov eax, pe_nt_image_headers64
mov dword [rbx + 0x38], edx
mov r12, rdi
test word [rdi + 0x12], ax
je 0x1400aa843
movzx r8d, word [rbx + 0x3c]
lea r15, [rdi + 0x38]
add r8d, ecx
mov rdx, rbx
mov rcx, qword [rsp + 0x68]
call fcn.1400a99dc
mov r10d, 1
test eax, eax
jne 0x1400aaae2
movzx ecx, word [rbx + 0x3c]
lea ebp, [r10 + 0xf]
mov rax, qword [rbx + 0x48]
movzx r11d, word [rsp + 0x38]
mov qword [rax + rcx*8], r15
add word [rbx + 0x3c], r10w
or dword [rbx + 0x38], ebp
mov edx, dword [rbx + 0x38]
mov word [rbx + 0x1c], r10w
jmp 0x1400aa84c
mov ebp, 0x10
lea r10d, [rbp - 0xf]
xor r9d, r9d
jmp 0x1400aa884
or edx, 0x12
mov word [rbx + 0x1c], r9w
xor r9d, r9d
mov dword [rbx + 0x38], edx
mov r15, rdi
test dl, 0x20
je 0x1400aa876
movzx ecx, word [rbx + 0x3c]
mov rax, qword [rbx + 0x48]
mov r12, qword [rax + rcx*8 - 0x10]
jmp 0x1400aa879
mov r12, r9
mov r10d, 1
mov ebp, 0x10
mov eax, 2
test al, dl
je 0x1400aa924
movsx edx, word [rbx + 0x16]
mov edi, edx
test r12, r12
je 0x1400aa8b8
cmp word [r12 + 0x10], r9w
jg 0x1400aa8ac
add dx, word [r12 + 0x10]
jmp 0x1400aa8b8
test byte [r12 + 0x12], 0x80
jne 0x1400aa8b8
add dx, 0xffec
test r15, r15
je 0x1400aa8d7
movzx eax, word [r15 + 0x10]
test ax, ax
jg 0x1400aa8cc
add dx, ax
jmp 0x1400aa8d7
test byte [r15 + 0x12], 0x80
jne 0x1400aa8d7
sub dx, 0x14
test r12, r12
je 0x1400aa8f4
cmp word [r12 + 0x10], r9w
jle 0x1400aa8f4
test r15, r15
je 0x1400aa8f4
cmp word [r15 + 0x10], r9w
jle 0x1400aa8f4
sub dx, 0x14
test r12, r12
mov eax, r9d
mov ecx, r9d
setne cl
test r15, r15
setne al
add ecx, eax
mov eax, 0xa
sub edi, ecx
cmp dx, ax
jge 0x1400aa916
mov edx, eax
movzx eax, dx
cmp eax, edi
cmovl edi, eax
mov word [rbx + 0x16], di
jmp 0x1400aa992
movzx r8d, word [rbx + 0x18]
add r8w, r10w
mov word [rbx + 0x18], r8w
movzx edx, word [rdi + 0x10]
test dx, dx
jg 0x1400aa960
mov rax, qword [rsi + 8]
movzx ecx, r14w
cmp word [rax + rcx*2], r9w
jl 0x1400aa960
mov r11d, dword [rsp + 0x30]
sub dx, r11w
add dx, word [rbx + 0x16]
mov word [rbx + 0x16], dx
movzx edi, dx
jmp 0x1400aa997
mov rax, qword [rsi + 0x10]
movzx ecx, r8w
movzx edx, word [rax + rcx*2]
sub dx, word [rax + rcx*2 - 2]
add dx, word [rbx + 0x16]
bt r11w, 8
mov word [rbx + 0x16], dx
movzx eax, dx
movzx edi, dx
jae 0x1400aa992
add ax, 0xa
mov word [rbx + 0x16], ax
movzx edi, ax
mov r11d, dword [rsp + 0x30]
mov eax, dword [rsi + 0x64]
lea r10d, [rdi + rbp]
mov ecx, 3
and eax, ecx
cmp al, cl
jne 0x1400aa9af
movzx eax, r10w
jmp 0x1400aa9ce
mov rcx, qword [rsp + 0x58]
movsx eax, word [rsi + 0x5c]
imul eax, eax, 0xf
mov rcx, qword [rcx + 0x20]
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
inc ax
add ax, di
movzx ecx, word [rsp + 0x34]
movzx edx, ax
call fcn.14003efac
test dword [rbx + 0x38], 0x4000140
jne 0x1400aa9f0
movzx edx, r10w
movzx ecx, ax
call fcn.14003efac
mov rbp, qword [rsp + 0x60]
lea ecx, [rax + r11]
movzx r8d, word [rsp + 0x48]
lea eax, [rdi + r11]
add cx, r13w
add ax, r13w
mov word [rbx + 0x16], ax
mov rdx, rbx
mov word [rbx + 0x14], cx
mov rcx, qword [rbp + 8]
call fcn.1400a9fc0
mov rdx, rbx
mov rcx, rbp
call fcn.1400a9c8c
mov ecx, dword [rbx + 0x38]
mov edx, 2
test dl, cl
mov dword [rsp + 0x4c], eax
mov ebp, eax
cmovne di, word [rsp + 0x36]
lea eax, [rdx + 0xe]
mov word [rbx + 0x16], di
test al, cl
jne 0x1400aaaad
movzx ecx, word [rbx + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1400aaaad
lea r8d, [rdx + 1]
cmp cx, word [rsi + 0x5e]
jb 0x1400aaa69
mov eax, dword [rsi + 0x64]
and al, r8b
cmp al, dl
je 0x1400aaaad
cmp cx, r8w
jbe 0x1400aaa93
mov rdx, qword [rsp + 0x80]
mov rax, qword [rdx]
mov ecx, dword [rax + 0x188]
test ecx, ecx
je 0x1400aaa93
mov eax, 1
mov dword [rdx + 0x18], 9
add dword [rdx + 0x30], eax
mov r9d, dword [rsp + 0x30]
mov r8, rsi
mov rdx, qword [rsp + 0x58]
add r9d, r13d
mov rcx, qword [rsp + 0x60]
call fcn.1400aa194
movzx ecx, word [rsp + 0x36]
mov word [rbx + 0x16], cx
lea rcx, [rsp + 0xa0]
call fcn.1400a8128
xor r9d, r9d
mov qword [rsp + 0x70], rax
mov rdi, rax
lea edx, [r9 + 3]
lea r10d, [r9 + 1]
lea r8d, [r9 + 0x10]
test ebp, ebp
je 0x1400aa314
mov rax, qword [rsp + 0x88]
movzx r12d, word [rsp + 0x4a]
movzx edx, word [rsp + 0x3e]
mov r15d, dword [rsp + 0x50]
mov qword [rbx], rax
movzx eax, word [rsp + 0x3a]
mov word [rbx + 0x1a], ax
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x1c], ax
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], r12w
mov dword [rbx + 0x38], r15d
mov word [rbx + 0x3c], dx
cmp r14w, r12w
jne 0x1400aac05
movzx ecx, word [rsi + 0x5e]
movzx eax, r14w
add eax, r10d
cmp eax, ecx
jae 0x1400aac05
cmp r14w, dx
jne 0x1400aac05
test byte [rsi + 0x64], 0x40
jne 0x1400aac05
test byte [rsi + 0x64], 0x80
je 0x1400aac05
mov rcx, qword [rsp + 0x68]
test dword [rcx + 0x60], 0x4000
jne 0x1400aac05
mov rax, qword [rsi + 0x10]
movzx edi, r14w
cmp word [rax + rdi*2 + 2], 0x2a
jl 0x1400aac05
lea r8d, [r10 + rdx]
mov rdx, rbx
call fcn.1400a99dc
xor edx, edx
mov ebp, eax
test eax, eax
jne 0x1400aac05
movzx ecx, word [rbx + 0x3c]
lea r8d, [rax + 1]
add word [rbx + 0x18], r8w
add word [rbx + 0x3e], r8w
mov rax, qword [rbx + 0x48]
mov qword [rax + rcx*8], rdx
add word [rbx + 0x3c], r8w
mov r8, rsi
bts dword [rbx + 0x38], 0xf
mov rax, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
movzx r9d, word [rax + rdi*2]
sub r9w, word [rax + rdi*2 + 2]
sub word [rbx + 0x16], r9w
add r9w, 5
add r9w, r13w
call fcn.1400aa194
movzx eax, word [rsp + 0x36]
mov word [rbx + 0x16], ax
mov word [rbx + 0x18], r14w
mov word [rbx + 0x3e], r12w
mov dword [rbx + 0x38], r15d
mov eax, ebp
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.1400f2140
add rsp, 0x128
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret