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

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x120
mov rax, qword [0x1801705d0]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rax, qword [rcx]
mov qword [rsp + 0x68], rcx
mov r10, rdx
mov rax, qword [rax]
mov qword [rsp + 0x70], rdx
mov rdx, rcx
mov rcx, qword [rax]
mov rdi, qword [rdx + 0x10]
mov word [rsp + 0x32], r9w
mov qword [rsp + 0x78], rcx
xor ecx, ecx
mov rsi, r8
mov qword [rsp + 0x88], rax
mov ebp, ecx
mov dword [rsp + 0x50], ecx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], rcx
cmp dword [rax + 0x30], ecx
je 0x1800ae24f
mov eax, dword [rax + 0x18]
jmp 0x1800ae9d9
mov eax, dword [rdi + 0x38]
mov ecx, 0x18
mov qword [rsp + 0x118], rbx
test al, 0x20
mov dword [rsp + 0x64], eax
mov eax, 0x1bf
cmovne eax, ecx
test byte [r8 + 0x64], 4
je 0x1800ae277
and eax, 0xffffffc3
movzx r8d, word [rdi + 0x1a]
movzx ecx, word [rdi + 0x18]
mov rdx, qword [rdx + 8]
mov word [rsp + 0x3a], r8w
movzx r8d, word [rdi + 0x1c]
mov word [rsp + 0x30], cx
mov word [rsp + 0x3e], r8w
movzx r8d, word [rdi + 0x3e]
mov r9d, ecx
mov word [rsp + 0x3c], r8w
movzx r8d, word [rdi + 0x3c]
lea rcx, [rsp + 0x90]
mov word [rsp + 0x40], r8w
mov r8, qword [rdi]
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x80], r8
movzx r8d, word [rdi + 0x16]
mov dword [rsp + 0x20], eax
mov word [rsp + 0x36], r8w
mov r8d, dword [r10 + 0x44]
call fcn.1800ab1a0
xor edx, edx
mov word [rdi + 0x12], dx
mov rcx, qword [rsi + 0x10]
mov rbx, rax
movzx eax, word [rcx]
mov word [rsp + 0x60], ax
cmp ax, 0xa
jg 0x1800ae30a
mov word [rsp + 0x38], dx
mov ecx, 0x100
jmp 0x1800ae327
movsx rcx, ax
call fcn.180010e60
mov ecx, 0x100
sub ax, 0x21
xor edx, edx
mov word [rsp + 0x38], ax
jmp 0x1800ae327
xor edx, edx
test rbx, rbx
je 0x1800ae89c
movzx r9d, word [rbx + 0x14]
mov ebp, edx
mov word [rsp + 0x34], r9w
cmp r9w, cx
je 0x1800ae34d
test byte [rbx + 0x12], 0x80
je 0x1800ae40c
movzx r10d, word [rsp + 0x30]
mov rax, qword [rsi + 8]
movsx r8, word [rax + r10*2]
test r8d, r8d
js 0x1800ae3fd
mov rdx, qword [rsi + 0x18]
lea rcx, [r8 + r8*2]
mov rax, qword [rdx + 8]
mov edx, dword [rax + rcx*8 + 8]
and edx, 0xf
jne 0x1800ae875
mov ecx, 0x100
mov rax, qword [rbx + 0x28]
test qword [rdi + 8], rax
jne 0x1800ae875
test word [rbx + 0x12], cx
je 0x1800ae3a2
cmp r9w, 0x10
je 0x1800ae875
mov r11, qword [rsp + 0x70]
movzx edx, byte [r11 + 0x3c]
test dl, 0x58
je 0x1800ae3de
mov rcx, qword [rbx]
mov r8d, dword [rcx + 4]
test r8b, 3
je 0x1800ae875
mov eax, dword [r11 + 0x44]
cmp dword [rcx + 0x34], eax
jne 0x1800ae875
test dl, 0x18
je 0x1800ae3de
test r8b, 2
jne 0x1800ae875
cmp byte [rsi + 0x62], 0
je 0x1800ae417
movzx eax, word [rsi + 0x5e]
movzx ecx, r10w
dec eax
cmp ecx, eax
jne 0x1800ae417
mov rax, qword [rsp + 0x68]
or byte [rax + 0x20], 2
jmp 0x1800ae420
cmp r8d, 0xffffffff
je 0x1800ae875
jmp 0x1800ae37e
movzx r10d, word [rsp + 0x30]
jmp 0x1800ae383
mov rax, qword [rsp + 0x68]
or byte [rax + 0x20], 1
mov eax, dword [rsp + 0x64]
mov word [rdi + 0x18], r10w
mov dword [rdi + 0x38], eax
movzx eax, word [rsp + 0x3a]
mov word [rdi + 0x1a], ax
movzx eax, word [rsp + 0x3e]
mov word [rdi + 0x1c], ax
movzx eax, word [rsp + 0x40]
mov word [rdi + 0x3c], ax
cmp ax, word [rdi + 0x40]
jb 0x1800ae47a
mov rcx, qword [rsp + 0x78]
movzx r8d, ax
mov rdx, rdi
inc r8d
call fcn.1800ad590
test eax, eax
jne 0x1800ae898
movzx r9d, word [rsp + 0x34]
movzx r10d, word [rsp + 0x30]
mov r11, qword [rsp + 0x70]
movzx ecx, word [rdi + 0x3c]
mov rax, qword [rdi + 0x48]
mov qword [rax + rcx*8], rbx
inc word [rdi + 0x3c]
mov rcx, qword [rbx + 0x28]
or rcx, qword [rsp + 0x80]
mov rax, qword [rdi + 8]
not rax
and rcx, rax
mov qword [rdi], rcx
test r9b, 1
je 0x1800ae5a9
mov r8, qword [rbx]
test dword [r8 + 4], 0x1000
je 0x1800ae4f6
movzx eax, word [rdi + 0x3c]
mov ebp, 0x2e
dec eax
test eax, eax
jle 0x1800ae50e
movzx edx, word [rdi + 0x3c]
mov rcx, qword [rdi + 0x48]
dec edx
xor r9d, r9d
cmp qword [rcx], r9
je 0x1800ae4e5
mov rax, qword [rcx]
cmp qword [rax], r8
cmove ebp, r9d
add rcx, 8
dec rdx
jne 0x1800ae4d6
movzx r9d, word [rsp + 0x34]
jmp 0x1800ae50e
mov rax, qword [r8 + 0x20]
test rax, rax
je 0x1800ae50e
movsxd rcx, dword [rax]
test ecx, ecx
je 0x1800ae50e
call fcn.180010e60
movsx ebp, ax
test byte [rsi + 0x64], 0x80
je 0x1800ae57b
movzx r11d, word [rsp + 0x38]
cmp r11w, 0xa
jl 0x1800ae57b
mov rax, qword [rsi + 0x10]
movzx ecx, r10w
movzx r8d, word [rax + rcx*2]
cmp bp, 0xa
jg 0x1800ae538
xor eax, eax
jmp 0x1800ae545
movsx rcx, bp
call fcn.180010e60
sub ax, 0x21
sub ax, bp
sub ax, r11w
add ax, r8w
add ax, 0xa
jns 0x1800ae57b
cmp word [rsp + 0x32], 2
jge 0x1800ae875
mov rax, qword [rsp + 0x78]
test dword [rax + 0x60], 0x20000
jne 0x1800ae875
or dword [rdi + 0x38], 0x100000
or dword [rdi + 0x38], 4
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x48]
mov r10d, 0x100
test byte [rdi + 0x38], 2
je 0x1800ae71c
mov r8, rdi
mov rdx, rax
call fcn.1800ad3b0
jmp 0x1800ae76c
test r9b, 0x82
je 0x1800ae622
mov rax, qword [rsi + 8]
movzx ecx, r10w
movsx edx, word [rax + rcx*2]
or dword [rdi + 0x38], 1
mov ecx, dword [rdi + 0x38]
cmp edx, 0xffffffff
je 0x1800ae601
test edx, edx
js 0x1800ae608
cmp word [rsp + 0x32], 0
jne 0x1800ae608
movzx edx, word [rsi + 0x5e]
movzx r8d, r10w
lea eax, [rdx - 1]
cmp r8d, eax
jne 0x1800ae608
test byte [rsi + 0x64], 8
jne 0x1800ae601
cmp edx, 1
jne 0x1800ae5fb
cmp byte [rsi + 0x62], 0
je 0x1800ae5fb
cmp r9w, 2
je 0x1800ae601
bts ecx, 0x10
jmp 0x1800ae605
bts ecx, 0xc
mov dword [rdi + 0x38], ecx
cmp byte [rsp + 0xb9], 1
jbe 0x1800ae57f
or dword [rdi + 0x38], 0x200000
jmp 0x1800ae57f
mov eax, 0x100
test ax, r9w
je 0x1800ae636
or dword [rdi + 0x38], 8
jmp 0x1800ae57f
mov edx, dword [r11 + 0x44]
mov rcx, qword [rsp + 0x88]
movzx r9d, r10w
mov r8, rsi
mov qword [rsp + 0x20], rbx
call fcn.1800adfe0
movzx r9d, word [rsp + 0x34]
mov r10d, 0x100
test r9b, 0x24
je 0x1800ae6e0
or dword [rdi + 0x38], 0x22
mov word [rdi + 0x1a], ax
xor eax, eax
mov qword [rsp + 0x48], rax
mov rcx, rbx
mov qword [rsp + 0x58], rbx
test word [rbx + 0x12], r10w
je 0x1800ae58f
movzx r8d, word [rdi + 0x3c]
mov rcx, qword [rsp + 0x78]
lea rax, [rbx + 0x38]
inc r8d
mov rdx, rdi
mov qword [rsp + 0x48], rax
call fcn.1800ad590
test eax, eax
jne 0x1800ae898
movzx ecx, word [rdi + 0x3c]
mov rax, qword [rdi + 0x48]
mov r8, qword [rsp + 0x48]
movzx r9d, word [rsp + 0x34]
mov qword [rax + rcx*8], r8
inc word [rdi + 0x3c]
or dword [rdi + 0x38], 0x10
mov eax, 1
mov rcx, rbx
mov word [rdi + 0x1c], ax
mov rax, r8
jmp 0x1800ae589
or dword [rdi + 0x38], 0x12
test byte [rdi + 0x38], 0x20
mov word [rdi + 0x1c], ax
mov rax, rbx
mov qword [rsp + 0x48], rbx
je 0x1800ae710
mov rax, qword [rdi + 0x48]
movzx ecx, word [rdi + 0x3c]
mov rcx, qword [rax + rcx*8 - 0x10]
mov rax, rbx
mov qword [rsp + 0x58], rcx
jmp 0x1800ae58f
xor ecx, ecx
mov qword [rsp + 0x58], rcx
jmp 0x1800ae58f
inc word [rdi + 0x18]
movzx edx, word [rbx + 0x10]
movzx r8d, word [rdi + 0x18]
test dx, dx
jg 0x1800ae747
movzx ecx, word [rsp + 0x30]
mov rax, qword [rsi + 8]
cmp word [rax + rcx*2], 0
jl 0x1800ae747
sub dx, bp
add word [rdi + 0x16], dx
jmp 0x1800ae76c
mov rcx, qword [rsi + 0x10]
movzx eax, word [rcx + r8*2]
sub ax, word [rcx + r8*2 - 2]
add word [rdi + 0x16], ax
movzx eax, word [rdi + 0x16]
test r10w, r9w
je 0x1800ae76c
add ax, 0xa
mov word [rdi + 0x16], ax
mov eax, dword [rsi + 0x64]
and eax, 3
cmp al, 3
jne 0x1800ae780
movzx eax, word [rdi + 0x16]
add ax, 0x10
jmp 0x1800ae7a0
mov rcx, qword [rsp + 0x70]
movsx eax, word [rsi + 0x5c]
mov rcx, qword [rcx + 0x20]
imul eax, eax, 0xf
cdq
movsx r8d, word [rcx + 0x3c]
idiv r8d
add ax, word [rdi + 0x16]
inc ax
movzx ecx, word [rsp + 0x38]
movzx edx, ax
call fcn.180010de0
test dword [rdi + 0x38], 0x4000140
mov word [rdi + 0x14], ax
jne 0x1800ae7ce
movzx edx, word [rdi + 0x16]
movzx ecx, ax
add dx, 0x10
call fcn.180010de0
mov word [rdi + 0x14], ax
movzx ecx, word [rsp + 0x32]
movzx ebx, word [rdi + 0x16]
movzx r8d, word [rsp + 0x60]
lea eax, [rbp + rcx]
mov rdx, rdi
add word [rdi + 0x14], ax
lea eax, [rbp + rcx]
mov rcx, qword [rsp + 0x68]
add word [rdi + 0x16], ax
mov rcx, qword [rcx + 8]
call fcn.1800add70
mov rcx, qword [rsp + 0x68]
mov rdx, rdi
call fcn.1800adc00
mov ecx, dword [rdi + 0x38]
test cl, 2
mov dword [rsp + 0x50], eax
cmovne bx, word [rsp + 0x36]
mov word [rdi + 0x16], bx
test cl, 0x10
jne 0x1800ae86c
movzx ecx, word [rdi + 0x18]
cmp cx, word [rsi + 0x60]
jae 0x1800ae86c
cmp cx, word [rsi + 0x5e]
jb 0x1800ae83d
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, 2
je 0x1800ae86c
cmp cx, 3
jbe 0x1800ae850
mov rcx, qword [rsp + 0x88]
call fcn.18000f040
movzx r9d, word [rsp + 0x32]
mov rdx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
add r9w, bp
mov r8, rsi
call fcn.1800ae1e0
movzx ecx, word [rsp + 0x36]
mov word [rdi + 0x16], cx
lea rcx, [rsp + 0x90]
call fcn.1800aadf0
mov ebp, dword [rsp + 0x50]
mov ecx, 0x100
mov rbx, rax
test ebp, ebp
je 0x1800ae325
jmp 0x1800ae89c
mov ebp, dword [rsp + 0x50]
mov rax, qword [rsp + 0x80]
movzx edx, word [rsp + 0x30]
movzx ecx, word [rsp + 0x3c]
movzx r8d, word [rsp + 0x40]
mov qword [rdi], rax
movzx eax, word [rsp + 0x3a]
mov word [rdi + 0x1a], ax
movzx eax, word [rsp + 0x3e]
mov word [rdi + 0x18], dx
mov word [rdi + 0x1c], ax
mov eax, dword [rsp + 0x64]
mov word [rdi + 0x3e], cx
mov dword [rdi + 0x38], eax
movzx eax, word [rsp + 0x36]
mov word [rdi + 0x3c], r8w
mov word [rdi + 0x16], ax
cmp dx, cx
jne 0x1800ae9cf
movzx ecx, word [rsi + 0x5e]
movzx eax, dx
inc eax
cmp eax, ecx
jge 0x1800ae9cf
cmp dx, r8w
jne 0x1800ae9cf
mov eax, dword [rsi + 0x64]
test al, 0x40
jne 0x1800ae9cf
test al, al
jns 0x1800ae9cf
mov rcx, qword [rsp + 0x78]
test dword [rcx + 0x60], 0x4000
jne 0x1800ae9cf
mov rax, qword [rsi + 0x10]
movzx ebx, dx
cmp word [rax + rbx*2 + 2], 0x2a
jl 0x1800ae9cf
movzx r8d, r8w
mov rdx, rdi
inc r8d
call fcn.1800ad590
mov ebp, eax
test eax, eax
jne 0x1800ae9cf
inc word [rdi + 0x18]
inc word [rdi + 0x3e]
movzx ecx, word [rdi + 0x3c]
mov rax, qword [rdi + 0x48]
mov rdx, qword [rsp + 0x70]
mov r8, rsi
mov qword [rax + rcx*8], 0
inc word [rdi + 0x3c]
or dword [rdi + 0x38], 0x8000
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsp + 0x68]
movzx r9d, word [rax + rbx*2]
sub r9w, word [rax + rbx*2 + 2]
sub word [rdi + 0x16], r9w
add r9w, word [rsp + 0x32]
add r9w, 5
call fcn.1800ae1e0
movzx eax, word [rsp + 0x36]
movzx ecx, word [rsp + 0x30]
movzx r8d, word [rsp + 0x3c]
mov word [rdi + 0x16], ax
mov eax, dword [rsp + 0x64]
mov dword [rdi + 0x38], eax
mov word [rdi + 0x18], cx
mov word [rdi + 0x3e], r8w
mov rbx, qword [rsp + 0x118]
mov eax, ebp
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.180127870
add rsp, 0x120
pop rdi
pop rsi
pop rbp
ret