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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [rcx + 0x10]
mov r15, qword [rcx]
mov r14, rdx
xor edx, edx
mov rbp, r8
mov r13, rcx
lea r8d, [rdx + 0x28]
lea rcx, [rsp + 0x50]
mov rbx, r9
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x88], r15
call fcn.180062a94
xor eax, eax
mov edx, 0x40
cmp rbx, rax
je 0x18005ab03
cmp dword [rbx], edx
cmovge rbx, rax
movzx eax, word [rsp + 0x108]
mov qword [rsp + 0x60], rbx
test byte [r15 + 0x4c], 0x20
je 0x18005ab1f
mov ecx, 0xfbff
and ax, cx
mov r12d, dword [r14]
mov word [rsp + 0x30], ax
cmp r12d, edx
jg 0x18005b438
and ax, dx
mov rcx, r15
mov word [rsp + 0x32], ax
mov eax, 1
cmovne r12d, eax
mov dword [rsp + 0x38], r12d
lea esi, [r12 + r12*4]
shl esi, 4
add esi, 0x347
and esi, 0xfffffff8
lea edx, [rsi + 0x60]
call fcn.180005cd8
mov rdi, rax
mov qword [rsp + 0x80], rax
xor eax, eax
cmp byte [r15 + 0x50], al
je 0x18005ab84
mov rdx, rdi
mov rcx, r15
call fcn.180005a84
jmp 0x18005b438
mov rcx, qword [rsp + 0x40]
or rax, 0xffffffffffffffff
mov byte [rdi + 0x39], r12b
mov qword [rsp + 0x48], rax
mov dword [rdi + 0x50], eax
mov dword [rdi + 0x4c], eax
mov rax, qword [rsp + 0x100]
mov qword [rdi], r13
mov qword [rdi + 8], r14
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x10], rbx
call fcn.18001ec9c
mov dword [rdi + 0x40], eax
mov dword [rdi + 0x44], eax
mov ax, word [rsp + 0x30]
mov word [rdi + 0x32], ax
mov eax, dword [r13 + 0x1d8]
lea r9, [rdi + 0x158]
mov dword [rdi + 0x48], eax
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r9
movsxd rcx, esi
lea rsi, [rdi + 0x54]
mov r8b, 0x48
add rcx, rdi
mov qword [rsp + 0x68], rcx
lea rax, [rcx + 0x40]
mov qword [rcx + 0x30], rax
xor eax, eax
mov word [rcx + 0x2c], ax
mov dword [rcx + 0x28], eax
lea edx, [rax + 4]
mov word [rcx + 0x2e], dx
mov dword [rsi], eax
mov qword [r9 + 8], rax
mov dword [r9 + 0x14], eax
lea rax, [r9 + 0x28]
mov rdx, rbp
mov rcx, r9
mov qword [r9], rdi
mov dword [r9 + 0x18], 8
mov qword [r9 + 0x20], rax
call fcn.18005407c
mov rax, qword [rsp + 0x58]
xor ecx, ecx
cmp dword [rax + 0x14], ecx
mov ebp, ecx
jle 0x18005acae
mov rsi, rcx
cmp r12d, ecx
je 0x18005ac67
mov rax, qword [rax + 0x20]
mov edx, 3
mov rcx, qword [rsi + rax]
call fcn.18002e408
xor ecx, ecx
cmp eax, ecx
je 0x18005ac91
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax + 0x20]
mov r8d, dword [rdi + 0x44]
mov r9d, 8
mov rdx, qword [rdx + rsi]
mov rcx, r13
call fcn.180030fec
mov r11, qword [rsp + 0x58]
mov rax, qword [r11 + 0x20]
or byte [rax + rsi + 0x1c], 4
xor ecx, ecx
mov rax, qword [rsp + 0x58]
mov r9d, 1
add rsi, 0x38
add ebp, r9d
cmp ebp, dword [rax + 0x14]
jl 0x18005ac45
lea rsi, [rdi + 0x54]
jmp 0x18005acb4
mov r9d, 1
mov edx, 0x400
cmp r12d, ecx
jne 0x18005acd8
cmp rbx, rcx
je 0x18005acc8
mov al, byte [rbx]
mov byte [rdi + 0x34], al
mov bp, word [rsp + 0x30]
test dx, bp
je 0x18005acdd
mov byte [rdi + 0x38], r9b
jmp 0x18005acdd
mov bp, word [rsp + 0x30]
cmp dword [r14], ecx
mov r8d, ecx
jle 0x18005ad01
lea rdx, [r14 + 0x50]
mov eax, dword [rdx]
movsxd rcx, dword [rsi]
add r8d, r9d
mov dword [rsi + rcx*4 + 4], eax
add dword [rsi], r9d
add rdx, 0x78
cmp r8d, dword [r14]
jl 0x18005ace9
lea rdx, [rdi + 0x158]
mov rcx, r14
call fcn.180054608
xor r11d, r11d
cmp byte [r15 + 0x50], r11b
jne 0x18005b423
mov eax, 0x400
and bp, ax
mov word [rsp + 0x34], bp
je 0x18005ad69
mov rsi, qword [rsp + 0x100]
lea r8, [rdi + 0x158]
mov rdx, r14
mov r9, rsi
mov rcx, r13
call fcn.1800556f8
xor r11d, r11d
cmp eax, r11d
je 0x18005ad57
mov byte [rdi + 0x38], 1
jmp 0x18005ad69
cmp rbx, r11
jne 0x18005ad69
mov eax, 0x200
mov qword [rdi + 0x10], rsi
or word [rdi + 0x32], ax
cmp r12d, 1
jne 0x18005ad93
mov rcx, qword [rsp + 0x50]
test byte [rcx + 0x32], 0x20
jne 0x18005ad98
mov rdx, rcx
lea rcx, [rsp + 0x50]
call fcn.18005a884
xor r11d, r11d
cmp eax, r11d
jne 0x18005af0a
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
mov rsi, qword [rsp + 0x68]
movzx r8d, byte [rcx + 0x39]
cmp r8d, r11d
mov rax, qword [rax]
mov rdx, qword [rcx + 8]
mov qword [rsp + 0x78], rax
lea rax, [rsi + 0x40]
mov rbp, r11
mov qword [rsi + 0x30], rax
mov eax, 4
mov r14, r11
mov ebx, r11d
mov r10b, r11b
mov word [rsi + 0x2c], r11w
mov word [rsi + 0x2e], ax
mov dword [rsi + 0x28], r11d
mov r12d, r11d
jle 0x18005aea8
mov r15, qword [rsp + 0x78]
lea rax, [rcx + 0x54]
lea r13, [rdx + 0x44]
mov qword [rsp + 0x90], rax
mov edi, r8d
mov byte [rsi + 0x10], r12b
mov edx, dword [r13 + 0xc]
mov rcx, rax
call fcn.1800540dc
lea rcx, [rsp + 0x50]
mov qword [rsi + 8], rax
mov al, byte [r13]
or al, r10b
test al, 0xa
mov al, byte [r13]
cmovne rbp, r14
mov byte [rsp + 0xf8], al
mov rax, qword [r13 - 0x1c]
test byte [rax + 0x48], 0x10
mov rdx, rbp
je 0x18005ae40
call fcn.18005914c
jmp 0x18005ae45
call fcn.180058c2c
xor r11d, r11d
mov ebx, eax
cmp eax, r11d
jne 0x18005ae61
lea rcx, [rsp + 0x50]
mov rdx, rbp
call fcn.18005979c
xor r11d, r11d
mov ebx, eax
or r14, qword [rsi + 8]
cmp ebx, r11d
jne 0x18005ae90
cmp byte [r15 + 0x50], r11b
jne 0x18005ae90
mov rax, qword [rsp + 0x90]
mov r10b, byte [rsp + 0xf8]
inc r12d
add r13, 0x78
cmp r12d, edi
jl 0x18005adfb
mov rdi, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
mov r13, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x78]
mov rdx, rsi
call fcn.180058064
xor eax, eax
cmp ebx, eax
jne 0x18005b423
xor edx, edx
mov rcx, rdi
call fcn.18005a1bc
xor r11d, r11d
cmp byte [r15 + 0x50], r11b
jne 0x18005b423
cmp qword [rdi + 0x10], r11
je 0x18005aef8
movzx edx, word [rdi + 0x30]
mov rcx, rdi
inc dx
call fcn.18005a1bc
xor r11d, r11d
cmp byte [r15 + 0x50], r11b
jne 0x18005b423
movzx ebp, word [rsp + 0x34]
mov r14, qword [rsp + 0xe8]
mov r12d, dword [rsp + 0x38]
cmp qword [rdi + 0x10], r11
jne 0x18005af1d
bt dword [r15 + 0x2c], 0x11
jae 0x18005af1d
or qword [rdi + 0x28], 0xffffffffffffffff
cmp dword [r13 + 0x4c], r11d
jne 0x18005b423
cmp byte [r15 + 0x50], r11b
jne 0x18005b423
cmp byte [rdi + 0x39], 2
jb 0x18005b028
mov rax, qword [rsp + 0x100]
cmp rax, r11
je 0x18005b028
mov ecx, 0x400
test word [r15 + 0x4c], cx
jne 0x18005b028
lea rcx, [rdi + 0x54]
mov rdx, rax
call fcn.180054180
mov rdx, qword [rsp + 0x60]
xor r11d, r11d
mov rbx, rax
cmp rdx, r11
je 0x18005af87
lea rcx, [rdi + 0x54]
call fcn.180054180
or rbx, rax
xor r11d, r11d
cmp byte [rdi + 0x39], 2
jb 0x18005b028
mov r10, qword [rdi + 8]
mov r14d, 1
movzx r8d, byte [rdi + 0x39]
lea rax, [r8 + r8*4]
add rax, rax
mov rcx, qword [rdi + rax*8 + 0x330]
movzx eax, byte [rcx + 0x10]
imul rax, rax, 0x78
test byte [rax + r10 + 0x44], 8
je 0x18005b01b
cmp bp, r11w
jne 0x18005afcc
bt dword [rcx + 0x28], 0xc
jae 0x18005b01b
mov r9, qword [rcx + 8]
test rbx, r9
jne 0x18005b01b
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x20]
movsxd rdx, dword [rax + 0x14]
imul rdx, rdx, 0x38
add rdx, rcx
cmp rcx, rdx
jae 0x18005b00b
test qword [rcx + 0x30], r9
je 0x18005affd
mov rax, qword [rcx]
test byte [rax + 4], r14b
je 0x18005b006
add rcx, 0x38
cmp rcx, rdx
jb 0x18005afee
cmp rcx, rdx
jb 0x18005b01b
sub r8b, r14b
sub r12d, r14d
mov byte [rdi + 0x39], r8b
cmp r8b, 2
jae 0x18005af9b
mov r14, qword [rsp + 0xe8]
mov dword [rsp + 0x38], r12d
movsx eax, word [rdi + 0x30]
mov rcx, qword [rdi]
mov r9w, word [rsp + 0x30]
add dword [rcx + 0x1d8], eax
mov eax, 4
test al, r9b
je 0x18005b069
mov rcx, qword [rdi + 0x380]
bt dword [rcx + 0x28], 0xc
jae 0x18005b069
mov eax, 1
mov byte [rdi + 0x36], al
mov rax, qword [r14 + 0x28]
test byte [rax + 0x48], 0x20
jne 0x18005b069
and dword [rcx + 0x28], 0xffffffbf
cmp r12d, r11d
jle 0x18005b2bb
mov eax, r12d
lea r13, [rdi + 0x380]
mov qword [rsp + 0xf8], rax
jmp 0x18005b08e
mov r14, qword [rsp + 0xe8]
movzx ebp, byte [r13 - 0x1c]
mov rcx, r15
imul rbp, rbp, 0x78
mov rbx, qword [r14 + rbp + 0x28]
mov rdx, qword [rbx + 0x70]
call fcn.180047984
test byte [rbx + 0x48], 2
mov r12, qword [r13]
mov r14d, eax
jne 0x18005b1ef
cmp qword [rbx + 0x18], r11
jne 0x18005b1ef
bt dword [r12 + 0x28], 0xa
jae 0x18005b11e
mov rsi, qword [rbx + 0x60]
jmp 0x18005b0db
cmp qword [rsi], r15
je 0x18005b0e0
mov rsi, qword [rsi + 0x28]
cmp rsi, r11
jne 0x18005b0d2
mov rax, qword [rsp + 0xe8]
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov r8d, dword [rax + rbp + 0x50]
mov edx, 0x96
mov dword [rsp + 0x20], r11d
call fcn.18001eb5c
mov rcx, qword [rsp + 0x40]
mov r9d, 0xfffffff6
mov edx, eax
mov r8, rsi
call fcn.18001f128
jmp 0x18005b1e6
test byte [rbx + 0x48], 0x10
jne 0x18005b1ef
mov eax, 0x40
test byte [r12 + 0x28], al
jne 0x18005b1c7
test r9b, 0x10
jne 0x18005b1c7
mov rsi, qword [rsp + 0xe8]
lea ecx, [rax - 0xb]
cmp byte [rdi + 0x36], r11b
je 0x18005b15d
lea ecx, [rax - 0xa]
mov eax, dword [rsi + rbp + 0x50]
mov dword [rdi + 0x4c], eax
mov edx, dword [rsi + rbp + 0x50]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0xe0]
mov r9, rbx
mov r8d, r14d
call fcn.18003fa38
xor r11d, r11d
cmp byte [rdi + 0x36], r11b
jne 0x18005b1e9
lea eax, [r11 + 0x40]
cmp word [rbx + 0x42], ax
jge 0x18005b1e9
test byte [rbx + 0x48], 0x20
jne 0x18005b1e9
mov rax, qword [rsi + rbp + 0x68]
mov ecx, r11d
cmp rax, r11
je 0x18005b1ac
lea edx, [r11 + 1]
shr rax, 1
add ecx, edx
cmp rax, r11
jne 0x18005b1a2
mov rax, qword [rsp + 0x40]
movsxd r8, ecx
mov r9d, 0xfffffff2
mov edx, dword [rax + 0x3c]
mov rcx, rax
dec edx
jmp 0x18005b114
mov rax, qword [rbx]
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rsp + 0xe0]
xor r9d, r9d
mov edx, r14d
mov qword [rsp + 0x20], rax
call fcn.1800346a8
xor r11d, r11d
mov r9w, word [rsp + 0x30]
bt dword [r12 + 0x28], 9
jae 0x18005b27d
test byte [rbx + 0x48], 0x20
mov rsi, qword [r12 + 0x20]
mov edx, 0x35
je 0x18005b38d
mov eax, dword [rsi + 0x64]
and al, 3
cmp al, 2
movzx eax, word [rsp + 0x32]
jne 0x18005b392
cmp ax, r11w
je 0x18005b392
mov r8d, dword [r13 - 0x3c]
mov edx, r11d
mov rbp, qword [rsp + 0xe0]
mov dword [r13 - 0x38], r8d
cmp edx, r11d
je 0x18005b27d
mov r9d, dword [rsi + 0x58]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x20], r14d
call fcn.18001eb5c
mov rbx, qword [rbp + 0x10]
mov rdx, rsi
mov rcx, rbp
call fcn.180039d38
mov r9d, 0xfffffffa
or edx, 0xffffffff
mov r8, rax
mov rcx, rbx
call fcn.18001f128
xor r11d, r11d
cmp r14d, r11d
jl 0x18005b295
mov rcx, qword [rsp + 0xe0]
mov edx, r14d
call fcn.1800396a8
xor r11d, r11d
mov r9w, word [rsp + 0x30]
add r13, 0x50
sub qword [rsp + 0xf8], 1
jne 0x18005b086
mov r12d, dword [rsp + 0x38]
mov r13, qword [rsp + 0xe0]
mov r14, qword [rsp + 0x40]
mov eax, dword [r14 + 0x3c]
mov dword [rdi + 0x3c], eax
cmp byte [r15 + 0x50], r11b
jne 0x18005b423
cmp r12d, r11d
mov esi, r11d
jle 0x18005b385
mov bp, word [rsp + 0x30]
lea rbx, [rdi + 0x364]
mov rax, qword [rbx + 0x1c]
bt dword [rax + 0x28], 0xe
jae 0x18005b331
movzx eax, byte [rbx]
mov rdx, qword [rsp + 0xe8]
mov r9, qword [rsp + 0x48]
imul rax, rax, 0x78
lea rcx, [rbx - 0x24]
lea r8, [rax + rdx + 8]
lea rdx, [rdi + 0x158]
mov qword [rsp + 0x20], rcx
mov rcx, r13
call fcn.180055948
xor eax, eax
cmp byte [r15 + 0x50], al
jne 0x18005b423
movzx eax, byte [rbx]
mov rdx, qword [rsp + 0xe8]
lea r8, [rbx - 0x24]
mov r9d, esi
mov rcx, r13
mov word [rsp + 0x28], bp
mov dword [rsp + 0x20], eax
call fcn.180056688
mov r11d, dword [r14 + 0x3c]
mov r8, qword [rsp + 0x48]
mov edx, esi
mov rcx, rdi
mov dword [rbx - 4], r11d
call fcn.180056968
inc esi
mov qword [rsp + 0x48], rax
mov eax, dword [rbx - 0xc]
add rbx, 0x50
cmp esi, r12d
mov dword [rdi + 0x40], eax
jl 0x18005b2e9
mov rax, rdi
jmp 0x18005b43a
mov ax, word [rsp + 0x32]
cmp byte [rdi + 0x36], r11b
je 0x18005b3da
mov rax, qword [rsp + 0xe8]
mov r8d, dword [rsp + 0x110]
mov rax, qword [rax + rbp + 0x28]
mov rcx, qword [rax + 0x10]
cmp rcx, r11
je 0x18005b3cc
mov eax, 1
cmp rcx, rsi
je 0x18005b3cc
mov rcx, qword [rcx + 0x28]
add r8d, eax
cmp rcx, r11
jne 0x18005b3bb
mov edx, 0x36
mov dword [rdi + 0x50], r8d
jmp 0x18005b233
cmp dword [rsp + 0x110], r11d
je 0x18005b40b
cmp ax, r11w
je 0x18005b40b
mov r8d, dword [rsp + 0x110]
mov eax, 0x1000
test ax, r9w
je 0x18005b233
mov edx, 0x34
jmp 0x18005b233
mov rbp, qword [rsp + 0xe0]
mov r8d, dword [rbp + 0x50]
lea eax, [r8 + 1]
mov dword [rbp + 0x50], eax
jmp 0x18005b23b
mov eax, dword [rdi + 0x48]
mov rdx, rdi
mov rcx, r15
mov dword [r13 + 0x1d8], eax
call fcn.180058148
xor eax, eax
mov rbx, qword [rsp + 0xf0]
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret