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

Disassembly:
mov word [rsp + 0x20], r9w
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov rax, rsp
sub rsp, 0x178
mov qword [rax - 8], rbx
mov qword [rax - 0x10], rbp
mov qword [rax - 0x18], rsi
mov qword [rax - 0x30], r13
xor r13d, r13d
mov qword [rax - 0x40], r15
mov rax, qword [rcx]
mov r11, r8
mov rsi, rcx
mov rbp, qword [rax]
movzx eax, word [rsp + 0x1a0]
mov r15, r13
test ax, ax
mov rbx, r13
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x60], rbp
je 0x488e45
test byte [rbp + 0x4c], 0x80
jne 0x488e56
movzx r9d, word [rdx]
cmp r9w, 0x3f
mov word [rsp + 0x30], r9w
jbe 0x488e5d
xor al, al
jmp 0x48982c
mov qword [rsp + 0x150], r12
movzx ecx, r9b
mov r10d, 1
shl r10, cl
mov r12b, 1
mov qword [rsp + 0x140], r14
dec r10
mov qword [rsp + 0x68], r13
mov rbp, r13
mov dword [rsp + 0x20], r12d
mov qword [rsp + 0x50], r13
mov ecx, r13d
mov qword [rsp + 0x78], r10
mov dword [rsp + 0x40], r13d
mov r8, r13
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x158], rdi
nop
cmp rbx, r10
jae 0x4897c4
movzx eax, ax
cmp ecx, eax
jg 0x4897c4
test ecx, ecx
jle 0x488ed1
or rbp, qword [r15 + 8]
mov qword [rsp + 0x50], rbp
cmp ecx, eax
jge 0x488ee4
mov rax, qword [r11 + 0x18]
mov rdi, qword [rax + r8*8]
mov qword [rsp + 0x48], rdi
jmp 0x488ef1
mov rdi, qword [rsp + 0x1a8]
mov qword [rsp + 0x48], rdi
bt dword [rdi + 0x28], 0xa
jb 0x4897ce
movzx ecx, byte [rdi + 0x10]
mov rax, qword [rsi + 8]
movzx r11d, r9w
mov dword [rsp + 0x44], r11d
imul rcx, rcx, 0x78
test r11d, r11d
mov r8d, dword [rcx + rax + 0x50]
mov dword [rsp + 0x34], r8d
jle 0x489174
xor r9d, r9d
mov r15, r11
mov eax, 1
mov r14, r9
mov r13, r9
nop
nop
nop
mov rcx, r14
mov r12, rax
shl r12, cl
test rbx, r12
jne 0x489157
mov rax, qword [rdx + 8]
mov rbx, qword [r13 + rax]
test rbx, rbx
je 0x488f85
mov eax, dword [rbx + 4]
bt eax, 0xc
jae 0x488f85
bt eax, 0x12
jae 0x488f7c
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
mov rbx, qword [rcx]
jmp 0x488f80
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x488f60
cmp byte [rbx], 0x9a
jne 0x48914d
cmp dword [rbx + 0x2c], r8d
jne 0x489141
lea rax, [rsi + 0x158]
lea rcx, [rsp + 0xb0]
mov byte [rsp + 0xc8], 0
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rax
movsx eax, word [rbx + 0x30]
mov rsi, r9
mov qword [rsp + 0xc0], r9
mov dword [rsp + 0xcc], 0x82
mov dword [rsp + 0xd8], eax
mov dword [rsp + 0xd0], r9d
mov dword [rsp + 0xd4], r8d
mov byte [rsp + 0xc9], 2
mov byte [rsp + 0xca], 2
call fcn.00485ac0
test rax, rax
mov rdi, rax
je 0x489040
not rbp
mov rax, qword [rdi + 0x28]
test rbp, rax
jne 0x48902b
test rax, rax
jne 0x489024
test byte [rdi + 0x1a], 2
jne 0x489043
test rsi, rsi
cmove rsi, rdi
lea rcx, [rsp + 0xb0]
call fcn.00485ac0
test rax, rax
mov rdi, rax
jne 0x489010
mov rdi, rsi
test rdi, rdi
je 0x489119
test byte [rdi + 0x1a], 2
je 0x4890df
cmp word [rbx + 0x30], 0
jl 0x4890e9
mov rdx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x180]
mov rdx, qword [rdx + 8]
mov rcx, qword [rsi]
mov rdx, qword [rdx + r13]
call fcn.00480040
test rax, rax
jne 0x489091
mov rbp, qword [rsp + 0x60]
mov rax, qword [rbp + 0x10]
jmp 0x489096
mov rbp, qword [rsp + 0x60]
mov rdx, qword [rdi]
mov rcx, qword [rsi]
mov rbx, qword [rax]
call fcn.00480040
test rax, rax
jne 0x4890ad
mov rax, qword [rbp + 0x10]
mov rdx, qword [rax]
mov rcx, rbx
call fcn.00426380
test eax, eax
je 0x4890f1
mov r8d, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x188]
mov rbp, qword [rsp + 0x50]
xor r9d, r9d
lea eax, [r9 + 1]
jmp 0x489157
mov rsi, qword [rsp + 0x180]
jmp 0x4890f1
mov rsi, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x28]
mov r8d, dword [rsp + 0x34]
mov rdx, qword [rsp + 0x188]
mov rbp, qword [rsp + 0x50]
or rbx, r12
xor r9d, r9d
lea eax, [r9 + 1]
mov qword [rsp + 0x28], rbx
jmp 0x489157
mov r8d, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x180]
mov rbp, qword [rsp + 0x50]
xor r9d, r9d
lea eax, [r9 + 1]
jmp 0x489157
mov rbx, qword [rsp + 0x28]
mov eax, 1
jmp 0x489157
mov rbx, qword [rsp + 0x28]
mov eax, 1
inc r14
add r13, 0x28
dec r15
jne 0x488f40
mov r11d, dword [rsp + 0x44]
mov rdi, qword [rsp + 0x48]
xor r13d, r13d
mov eax, dword [rdi + 0x28]
bt eax, 0xc
jb 0x4894d9
bt eax, 8
jae 0x489197
mov rbp, r13
mov word [rsp + 0x38], 0
mov ax, 1
jmp 0x4891c8
mov rbp, qword [rdi + 0x20]
test rbp, rbp
je 0x48980a
test byte [rbp + 0x64], 4
jne 0x48980a
movzx eax, word [rbp + 0x5e]
cmp byte [rbp + 0x62], 0
setne r12b
mov word [rsp + 0x38], ax
movzx eax, word [rbp + 0x60]
mov dword [rsp + 0x20], r12d
movzx r10d, ax
xor r15b, r15b
xor r9b, r9b
test r10d, r10d
mov byte [rsp + 0x24], r15b
mov dword [rsp + 0x3c], r9d
mov r14d, r13d
mov dword [rsp + 0x58], r10d
jle 0x4894d3
nop
movzx edx, word [rdi + 0x18]
cmp r14d, edx
jge 0x489222
cmp word [rdi + 0x1a], 0
jne 0x489222
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + r13*8]
movzx eax, word [rcx + 0x1a]
test al, 0x82
je 0x489222
test al, al
jns 0x48949d
mov byte [rsp + 0x20], 0
jmp 0x48949d
test rbp, rbp
je 0x48924d
mov rax, qword [rbp + 8]
movsx esi, word [rax + r13*2]
mov rax, qword [rbp + 0x38]
movzx r12d, byte [r13 + rax]
mov rax, qword [rbp + 0x18]
movsx ecx, word [rax + 0x40]
cmp esi, ecx
jne 0x489255
mov esi, 0xffffffff
jmp 0x489255
mov esi, 0xffffffff
xor r12b, r12b
mov r9d, dword [rsp + 0x20]
test r9b, r9b
je 0x48929f
test esi, esi
js 0x48929a
cmp r14d, edx
jl 0x489295
mov rax, qword [rbp + 0x18]
movsxd rcx, esi
movzx r9d, r9b
mov rdx, qword [rax + 8]
lea rax, [rcx + rcx*2]
mov r10d, 0
shl rax, 4
cmp byte [rax + rdx + 0x28], 0
cmove r9d, r10d
mov dword [rsp + 0x20], r9d
jmp 0x4892a2
xor r10d, r10d
jmp 0x4892a2
xor r10d, r10d
jmp 0x4892a2
xor r10d, r10d
mov dil, 1
mov ebx, r10d
nop
nop
cmp ebx, r11d
jge 0x48940b
mov rcx, qword [rsp + 0x28]
movsxd rax, ebx
bt rcx, rax
jb 0x4893c5
mov r9, qword [rsp + 0x188]
lea rcx, [rax + rax*4]
mov rax, qword [r9 + 8]
mov rdx, qword [rax + rcx*8]
test rdx, rdx
mov rax, rdx
je 0x48930c
mov ecx, dword [rax + 4]
bt ecx, 0xc
jae 0x48930c
bt ecx, 0x12
jae 0x489303
mov rax, qword [rax + 0x20]
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
jmp 0x489307
mov rax, qword [rax + 0x10]
test rax, rax
jne 0x4892e7
test word [rsp + 0x198], 0x300
movzx edi, dil
cmove edi, r10d
cmp byte [rax], 0x9a
jne 0x4893c5
cmp dword [rax + 0x2c], r8d
jne 0x4893c5
movsx eax, word [rax + 0x30]
cmp eax, esi
jne 0x4893c5
test esi, esi
js 0x4893e3
mov rax, qword [rsp + 0x180]
mov rcx, qword [rax]
call fcn.00480040
test rax, rax
jne 0x489363
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x40]
mov r8, qword [rax + r13*8]
movzx eax, byte [rdx]
test al, al
je 0x4893a1
lea r9, [0x0069aea0]
nop
movzx ecx, al
movzx eax, byte [r8]
movzx eax, byte [rax + r9]
cmp byte [rcx + r9], al
jne 0x4893a8
mov al, byte [rdx + 1]
inc rdx
inc r8
test al, al
jne 0x489380
jmp 0x4893a8
lea r9, [0x0069aea0]
movzx eax, byte [rdx]
movzx ecx, byte [rax + r9]
movzx eax, byte [r8]
movzx eax, byte [rax + r9]
cmp ecx, eax
je 0x4893d6
mov r11d, dword [rsp + 0x44]
xor r10d, r10d
inc ebx
test dil, dil
je 0x48940b
mov r8d, dword [rsp + 0x34]
jmp 0x4892b0
mov r11d, dword [rsp + 0x44]
mov r9, qword [rsp + 0x188]
bt word [rsp + 0x198], 8
jb 0x489468
test r15b, r15b
je 0x489433
xor r12b, byte [rsp + 0x24]
movsxd rax, ebx
lea rcx, [rax + rax*4]
mov rax, qword [r9 + 8]
cmp r12b, byte [rax + rcx*8 + 0x18]
je 0x489468
test r13, r13
je 0x48941e
movzx eax, word [rsp + 0x38]
cmp r14d, eax
jge 0x4894b2
mov r9d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x28]
xor al, al
mov dword [rsp + 0x20], eax
jmp 0x4894c6
movsxd rax, ebx
lea rcx, [rax + rax*4]
mov rax, qword [r9 + 8]
movzx r8d, byte [rax + rcx*8 + 0x18]
xor r8b, r12b
mov byte [rsp + 0x24], r8b
je 0x489465
mov ecx, dword [rsp + 0x40]
mov eax, 1
shl rax, cl
mov rcx, qword [rsp + 0x1b0]
or qword [rcx], rax
mov r15b, 1
mov r9d, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x58]
mov rdi, qword [rsp + 0x48]
mov ecx, ebx
mov rbx, qword [rsp + 0x28]
test esi, esi
mov eax, 1
movzx r9d, r9b
cmovs r9d, eax
shl rax, cl
or rbx, rax
mov dword [rsp + 0x3c], r9d
mov qword [rsp + 0x28], rbx
inc r14d
inc r13
cmp r14d, r10d
jge 0x4894c2
mov r8d, dword [rsp + 0x34]
jmp 0x4891f0
mov r9d, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x28]
mov eax, dword [rsp + 0x20]
jmp 0x4894c6
mov eax, dword [rsp + 0x20]
test r9b, r9b
je 0x4894dd
mov al, 1
mov dword [rsp + 0x20], eax
jmp 0x4894e5
mov eax, dword [rsp + 0x20]
jmp 0x4894dd
mov eax, dword [rsp + 0x20]
test al, al
je 0x489764
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0x48]
or rbp, qword [r15 + 8]
test r11d, r11d
mov qword [rsp + 0x68], rbp
jle 0x489769
xor r9d, r9d
mov r14d, r11d
mov r15, rbp
mov r12, r9
mov r13, r9
mov r10d, 1
nop
nop
nop
mov rcx, r12
mov rbp, r10
shl rbp, cl
test rbx, rbp
jne 0x48974d
mov rax, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x180]
mov rax, qword [rax + 8]
add rsi, 0x54
mov rdi, qword [r13 + rax]
test rdi, rdi
jne 0x48955c
mov rsi, r9
jmp 0x4895eb
cmp byte [rdi], 0x9a
jne 0x489594
mov edx, dword [rsi]
mov ecx, r9d
test edx, edx
jle 0x489581
mov r8d, dword [rdi + 0x2c]
lea rax, [rsi + 4]
cmp dword [rax], r8d
je 0x489589
inc ecx
add rax, 4
cmp ecx, edx
jl 0x489572
mov rbx, r9
mov rsi, r9
jmp 0x4895e2
mov rbx, r10
shl rbx, cl
mov rsi, rbx
jmp 0x4895e2
mov rdx, qword [rdi + 0x18]
mov rcx, rsi
call fcn.0044b6f0
mov rdx, qword [rdi + 0x10]
mov rcx, rsi
mov rbx, rax
call fcn.0044b6f0
or rbx, rax
bt dword [rdi + 4], 0xb
jae 0x4895ca
mov rdx, qword [rdi + 0x20]
mov rcx, rsi
call fcn.00437330
or rbx, rax
jmp 0x4895d9
mov rdx, qword [rdi + 0x20]
mov rcx, rsi
call fcn.0044b7d0
or rbx, rax
mov rsi, rbx
mov r10d, 1
test rbx, rbx
jne 0x48971e
xor eax, eax
test rdi, rdi
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rax
lea rax, [fcn.00431980]
mov dword [rsp + 0xa8], r10d
mov qword [rsp + 0x80], rax
lea rax, [0x004319e0]
mov qword [rsp + 0x88], rax
je 0x48971e
lea rcx, [rsp + 0x80]
mov rdx, rdi
call fcn.00431980
test eax, eax
jne 0x489714
bt dword [rdi + 4], 0xe
jb 0x489714
mov rdx, qword [rdi + 0x10]
lea rcx, [rsp + 0x80]
call fcn.00444d20
test eax, eax
jne 0x4896fe
mov rdx, qword [rdi + 0x18]
lea rcx, [rsp + 0x80]
call fcn.00444d20
test eax, eax
jne 0x4896f6
bt dword [rdi + 4], 0xb
jae 0x4896b9
mov rdx, qword [rdi + 0x20]
lea rcx, [rsp + 0x80]
call fcn.00430e90
mov r10d, 1
jmp 0x489714
mov rdi, qword [rdi + 0x20]
test rdi, rdi
je 0x489706
mov ebx, dword [rdi]
mov rdi, qword [rdi + 8]
test ebx, ebx
jle 0x48970e
nop
mov rdx, qword [rdi]
lea rcx, [rsp + 0x80]
call fcn.00444d20
test eax, eax
jne 0x4896ee
dec ebx
add rdi, 0x28
test ebx, ebx
jg 0x4896d0
mov r10d, 1
jmp 0x489714
mov r10d, 1
jmp 0x489714
mov r10d, 1
jmp 0x489714
mov r10d, 1
jmp 0x489714
mov r10d, 1
cmp dword [rsp + 0xa8], 0
je 0x489745
mov rax, r15
not rax
test rsi, rax
jne 0x48973b
mov rbx, qword [rsp + 0x28]
or rbx, rbp
xor r9d, r9d
mov qword [rsp + 0x28], rbx
jmp 0x48974d
mov rbx, qword [rsp + 0x28]
xor r9d, r9d
jmp 0x48974d
mov rbx, qword [rsp + 0x28]
xor r9d, r9d
inc r12
add r13, 0x28
dec r14
jne 0x489520
mov r15, qword [rsp + 0x48]
jmp 0x489769
mov r15, qword [rsp + 0x48]
mov ecx, dword [rsp + 0x40]
mov r8, qword [rsp + 0x70]
mov r12d, dword [rsp + 0x20]
mov rdx, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x180]
mov rbp, qword [rsp + 0x50]
mov r9w, word [rsp + 0x30]
mov r10, qword [rsp + 0x78]
mov ax, word [rsp + 0x1a0]
mov r11, qword [rsp + 0x190]
inc ecx
inc r8
test r12b, r12b
mov r13d, 0
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x70], r8
jne 0x488eb0
cmp rbx, r10
jne 0x4897d6
mov al, r9b
jmp 0x489814
cmp byte [rdi + 0x1d], 0
jne 0x4897c9
jmp 0x4897c4
test r12b, r12b
jne 0x489812
movzx ecx, r9w
dec ecx
test ecx, ecx
jle 0x48980a
mov r14d, 1
nop
nop
mov rdx, r14
shl rdx, cl
dec rdx
mov rax, rdx
and rax, rbx
cmp rax, rdx
je 0x48980e
dec ecx
test ecx, ecx
jg 0x4897f0
xor al, al
jmp 0x489814
mov al, cl
jmp 0x489814
mov al, 0xff
mov rdi, qword [rsp + 0x158]
mov r12, qword [rsp + 0x150]
mov r14, qword [rsp + 0x140]
mov r15, qword [rsp + 0x138]
mov r13, qword [rsp + 0x148]
mov rsi, qword [rsp + 0x160]
mov rbp, qword [rsp + 0x168]
mov rbx, qword [rsp + 0x170]
add rsp, 0x178
ret