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

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x78
cmp byte [rcx + 0x13], 0
mov rsi, rcx
je 0x180023f64
cmp dword [rcx + 0x30], 0xffffffff
jne 0x180023cbd
cmp dword [rcx + 0x118], 2
jne 0x180023c24
mov rcx, qword [rcx + 0x78]
mov eax, dword [rcx + 0x3c]
xor edi, edi
mov dword [rbp + 0x28], eax
test eax, eax
jle 0x180024432
lea rax, [rcx + 0x38]
mov qword [rbp + 0x38], rax
nop dword [rax]
mov edx, edi
mov rcx, rax
call fcn.180061ff0
cmp dword [rsi + 0x118], 2
mov rbx, rax
jne 0x180023c5a
mov rbx, qword [rax + 0x70]
mov rcx, rbx
call fcn.180023bf0
add rbx, 0x100
mov rcx, rbx
mov qword [rbp + 0x30], rbx
call fcn.18003f410
test al, al
jne 0x180023ca9
mov rcx, rbx
call fcn.18003f400
mov rcx, qword [rbp + 0x30]
xor edx, edx
mov ebx, eax
call fcn.18003f3f0
lea rcx, [rsi + 0x100]
mov rdx, rax
mov r8d, ebx
call fcn.18003f9f0
mov rcx, qword [rbp + 0x30]
call fcn.180040060
mov rax, qword [rbp + 0x38]
inc edi
cmp edi, dword [rbp + 0x28]
jl 0x180023c40
add rsp, 0x78
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor edi, edi
cmp dword [rcx + 0x118], 2
jne 0x180023ef0
test byte [rcx + 0x88], 8
je 0x180023ef0
cmp dword [rcx + 0x11c], 3
jne 0x180023ef0
cmp dword [rcx + 0x54], edi
jne 0x180023ef0
lea ecx, [rdi + 0x60]
call fcn.180046860
mov rbx, rax
lea rax, [0x180080050]
test rbx, rbx
je 0x180023d41
lea rcx, [rbx + 0x30]
xor edx, edx
mov dword [rbx + 8], edi
mov qword [rbx], rax
mov dword [rbx + 0x10], 2
mov dword [rbx + 0x14], 0xb
mov byte [rbx + 0x18], dil
mov word [rbx + 0x20], di
mov dword [rbx + 0x24], edi
mov byte [rbx + 0x28], dil
call fcn.18003f890
lea rcx, [rbx + 0x48]
xor edx, edx
call fcn.18003f890
jmp 0x180023d44
mov rbx, rdi
mov dword [rbx + 0x14], 1
mov eax, dword [rsi + 0x30]
lea rdx, [rbp - 0x40]
mov rcx, rsi
mov dword [rbx + 0x1c], eax
call fcn.180022d00
mov rcx, qword [rsi + 0x20]
lea rdx, [rbp - 0x28]
mov r8, rax
call fcn.180021950
lea rcx, [rbx + 0x30]
mov rdx, rax
call fcn.18003f970
lea rcx, [rbp - 0x28]
call fcn.18003f3e0
lea rcx, [rbp - 0x40]
call fcn.1800441f0
lea rcx, [rsi + 0x50]
or r8d, 0xffffffff
mov rdx, rbx
mov byte [rbx + 0x18], 4
call fcn.180062150
lea rcx, [rsi + 0xe8]
call fcn.18003f410
test al, al
jne 0x180023ee4
lea rdx, [rsi + 0xe8]
lea rcx, [rbp - 0x28]
call fcn.18003f8c0
lea rcx, [rbp - 0x28]
call fcn.18003f400
lea rcx, [rbp - 0x28]
cdq
and edx, 0x3fff
add eax, edx
sar eax, 0xe
mov dword [rbp + 0x30], eax
call fcn.18003f400
mov ecx, eax
and ecx, 0x80003fff
mov dword [rbp + 0x38], ecx
jge 0x180023dfe
dec ecx
or ecx, 0xffffc000
inc ecx
mov dword [rbp + 0x38], ecx
mov edx, dword [rbp + 0x30]
mov eax, edi
mov dword [rbp + 0x28], eax
test edx, edx
js 0x180023edb
cmp eax, edx
jne 0x180023e1a
test ecx, ecx
je 0x180023edb
mov rcx, rbx
call fcn.180021e70
mov ecx, 0x60
call fcn.180046860
mov rbx, rax
test rax, rax
je 0x180023e76
mov dword [rax + 8], edi
lea rax, [0x180080050]
lea rcx, [rbx + 0x30]
xor edx, edx
mov dword [rbx + 0x10], 2
mov dword [rbx + 0x14], 0xb
mov qword [rbx], rax
mov byte [rbx + 0x18], dil
mov word [rbx + 0x20], di
mov dword [rbx + 0x24], edi
mov byte [rbx + 0x28], dil
call fcn.18003f890
lea rcx, [rbx + 0x48]
xor edx, edx
call fcn.18003f890
jmp 0x180023e79
mov rbx, rdi
mov dword [rbx + 0x14], edi
mov eax, dword [rsi + 0x30]
mov r8d, 0x4000
mov dword [rbx + 0x1c], eax
mov eax, dword [rbp + 0x30]
lea rdx, [rbp - 0x40]
cmp dword [rbp + 0x28], eax
lea rcx, [rbp - 0x28]
cmove r8d, dword [rbp + 0x38]
call fcn.18003fb10
lea rcx, [rbx + 0x30]
mov rdx, rax
call fcn.18003f970
lea rcx, [rbp - 0x40]
call fcn.18003f3e0
lea rcx, [rsi + 0x50]
or r8d, 0xffffffff
mov rdx, rbx
call fcn.180062150
mov eax, dword [rbp + 0x28]
mov edx, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x38]
inc eax
mov dword [rbp + 0x28], eax
cmp eax, edx
jle 0x180023e10
lea rcx, [rbp - 0x28]
call fcn.18003f3e0
or byte [rbx + 0x18], 1
mov rcx, rbx
call fcn.180021e70
mov eax, dword [rsi + 0x54]
mov dword [rbp + 0x28], eax
test eax, eax
jle 0x180024432
lea rax, [rsi + 0x50]
mov edx, edi
mov rcx, rax
call fcn.180061ff0
lea rbx, [rax + 0x48]
mov rcx, rbx
mov qword [rbp + 0x30], rbx
call fcn.18003f410
test al, al
jne 0x180023f50
mov rcx, rbx
call fcn.18003f400
mov rcx, qword [rbp + 0x30]
xor edx, edx
mov ebx, eax
call fcn.18003f3f0
lea rcx, [rsi + 0x100]
mov rdx, rax
mov r8d, ebx
call fcn.18003f9f0
mov rcx, qword [rbp + 0x30]
call fcn.180040060
inc edi
lea rax, [rsi + 0x50]
cmp edi, dword [rbp + 0x28]
jl 0x180023f02
add rsp, 0x78
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rdi, [rcx + 0xe8]
mov rcx, rdi
mov qword [rbp - 0x48], rdi
call fcn.18003f400
test eax, eax
je 0x180023fcb
cmp byte [rsi + 0x1f0], 0
jne 0x180023fcb
lea rcx, [rbp - 0x40]
mov edx, 0xb
call fcn.180030a50
mov rcx, rdi
mov rbx, qword [rax]
call fcn.18003f400
lea rcx, [rbp - 0x58]
mov edx, eax
xor r8d, r8d
call fcn.180044e60
mov rdx, rbx
mov rcx, rsi
mov r8, qword [rax]
call fcn.180022c40
lea rcx, [rbp - 0x58]
call fcn.1800403c0
lea rcx, [rbp - 0x40]
call fcn.1800403c0
lea rdi, [rsi + 0x100]
mov rcx, rdi
mov qword [rbp - 0x58], rdi
call fcn.180040060
cmp dword [rsi + 0x118], 1
jne 0x1800240ae
mov rcx, qword [rsi + 0x138]
mov edx, 0x7fffffff
call fcn.1800404b0
mov rdx, qword [rsi + 0x138]
mov rcx, rdi
mov r8d, eax
call fcn.18003f9f0
lea rdx, [rbp + 0x30]
mov r8d, 1
mov rcx, rax
mov byte [rbp + 0x30], 0x20
call fcn.18003f9f0
mov rcx, qword [rsi + 0x148]
mov edx, 0x7fffffff
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rsi + 0x148]
mov r8d, eax
mov rcx, rbx
call fcn.18003f9f0
lea rdx, [rbp + 0x38]
mov r8d, 1
mov rcx, rax
mov byte [rbp + 0x38], 0x20
call fcn.18003f9f0
lea rcx, [rbp - 0x40]
mov edx, 9
mov rdi, rax
call fcn.180030a20
mov edx, 0x7fffffff
mov rcx, qword [rax]
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rbx]
mov rcx, rdi
mov r8d, eax
mov byte [rbp + 0x40], 0x31
call fcn.18003f9f0
lea rdx, [rbp + 0x40]
mov r8d, 1
mov rcx, rax
call fcn.18003f9f0
lea rcx, [rbp - 0x40]
jmp 0x180024182
lea rcx, [rbp - 0x40]
mov edx, 9
call fcn.180030a20
mov edx, 0x7fffffff
mov rcx, qword [rax]
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rbx]
mov rcx, rdi
mov r8d, eax
call fcn.18003f9f0
lea rdx, [rbp + 0x30]
mov r8d, 1
mov rcx, rax
mov byte [rbp + 0x30], 0x31
call fcn.18003f9f0
lea rdx, [rbp + 0x38]
mov r8d, 1
mov rcx, rax
mov byte [rbp + 0x38], 0x20
call fcn.18003f9f0
mov edx, dword [rsi + 0x158]
lea rcx, [rbp - 0x28]
xor r8d, r8d
mov rdi, rax
call fcn.180044e60
mov edx, 0x7fffffff
mov rcx, qword [rax]
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rbx]
mov rcx, rdi
mov r8d, eax
call fcn.18003f9f0
lea rdx, [rbp + 0x40]
mov r8d, 1
mov rcx, rax
mov byte [rbp + 0x40], 0x20
call fcn.18003f9f0
mov rcx, qword [rsi + 0x160]
mov edx, 0x7fffffff
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rsi + 0x160]
mov r8d, eax
mov rcx, rbx
call fcn.18003f9f0
lea rcx, [rbp - 0x40]
call fcn.1800403c0
lea rcx, [rbp - 0x28]
call fcn.1800403c0
mov eax, 0xa0d
lea rdx, [rbp + 0x30]
lea rcx, [rsi + 0x100]
mov r8d, 2
mov word [rbp + 0x30], ax
call fcn.18003f9f0
lea rax, [rsi + 0xb8]
xor edi, edi
mov qword [rbp + 0x38], rax
cmp dword [rax], edi
jle 0x180024211
mov rsi, qword [rbp - 0x58]
nop dword [rax + rax]
mov edx, edi
mov rcx, rax
call fcn.1800409c0
mov edx, 0x7fffffff
mov rcx, qword [rax]
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rbx]
mov rcx, rsi
mov r8d, eax
call fcn.18003f9f0
mov eax, 0xa0d
lea rdx, [rbp + 0x30]
mov r8d, 2
mov rcx, rsi
mov word [rbp + 0x30], ax
call fcn.18003f9f0
mov rax, qword [rbp + 0x38]
inc edi
cmp edi, dword [rax]
jl 0x1800241c0
mov rsi, qword [rbp + 0x28]
mov eax, 0xa0d
lea rdi, [rsi + 0x100]
lea rdx, [rbp + 0x28]
mov rcx, rdi
mov r8d, 2
mov word [rbp + 0x28], ax
call fcn.18003f9f0
cmp byte [rsi + 0x1f0], 0
je 0x18002440c
lea rcx, [rsi + 0xe8]
call fcn.18003f400
lea rcx, [rsi + 0xe8]
cdq
sub eax, edx
sar eax, 1
mov edi, eax
call fcn.18003f400
lea rcx, [rbp - 0x28]
mov esi, eax
xor r8d, r8d
mov edx, edi
sub esi, edi
call fcn.180044ff0
mov edx, 0x7fffffff
mov rcx, qword [rax]
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rbx]
mov rbx, qword [rbp - 0x58]
mov rcx, rbx
mov r8d, eax
call fcn.18003f9f0
lea rcx, [rbp - 0x28]
call fcn.1800403c0
mov eax, 0xa0d
lea rdx, [rbp + 0x28]
mov r8d, 2
mov rcx, rbx
mov word [rbp + 0x28], ax
call fcn.18003f9f0
mov rcx, qword [rbp - 0x48]
lea rdx, [rbp - 0x28]
mov r8d, edi
call fcn.18003fb10
mov rcx, rax
mov rbx, rax
call fcn.18003f400
xor edx, edx
mov rcx, rbx
mov edi, eax
call fcn.18003f3f0
mov r8d, edi
mov rdi, qword [rbp - 0x58]
mov rdx, rax
mov rcx, rdi
call fcn.18003f9f0
lea rcx, [rbp - 0x28]
call fcn.18003f3e0
mov eax, 0xa0d
lea rdx, [rbp + 0x28]
mov r8d, 2
mov rcx, rdi
mov word [rbp + 0x28], ax
call fcn.18003f9f0
lea rcx, [rbp - 0x28]
xor r8d, r8d
mov edx, esi
call fcn.180044ff0
mov edx, 0x7fffffff
mov rcx, qword [rax]
mov rbx, rax
call fcn.1800404b0
mov rdx, qword [rbx]
mov rcx, rdi
mov r8d, eax
call fcn.18003f9f0
lea rcx, [rbp - 0x28]
call fcn.1800403c0
mov eax, 0xa0d
lea rdx, [rbp + 0x28]
mov r8d, 2
mov rcx, rdi
mov word [rbp + 0x28], ax
call fcn.18003f9f0
mov rcx, qword [rbp - 0x48]
lea rdx, [rbp - 0x28]
mov r8d, esi
call fcn.18003fb10
mov rbx, rax
mov rcx, rax
call fcn.18003f400
xor edx, edx
mov rcx, rbx
mov edi, eax
call fcn.18003f3f0
mov rbx, qword [rbp - 0x58]
mov rcx, rbx
mov rdx, rax
mov r8d, edi
call fcn.18003f9f0
lea rcx, [rbp - 0x28]
call fcn.18003f3e0
lea rdx, [rbp + 0x28]
mov edi, 0xa0d
mov r8d, 2
mov rcx, rbx
mov word [rbp + 0x28], di
call fcn.18003f9f0
lea rdx, [rbp + 0x28]
mov r8d, 1
mov rcx, rbx
mov byte [rbp + 0x28], 0x30
call fcn.18003f9f0
lea rdx, [rbp + 0x28]
mov r8d, 2
mov rcx, rbx
mov word [rbp + 0x28], di
call fcn.18003f9f0
lea rdx, [rbp + 0x28]
mov r8d, 2
mov rcx, rbx
mov word [rbp + 0x28], di
call fcn.18003f9f0
add rsp, 0x78
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rsi, qword [rbp - 0x48]
mov rcx, rsi
call fcn.18003f400
xor edx, edx
mov rcx, rsi
mov ebx, eax
call fcn.18003f3f0
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
call fcn.18003f9f0
add rsp, 0x78
pop rdi
pop rsi
pop rbx
pop rbp
ret