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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x128
mov rax, qword [rsp + 0x130]
movzx eax, byte [rax + 0x172]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x24], eax
jmp 0x78af71
mov rax, qword [rsp + 0x30]
add rax, 4
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x24]
dec ecx
mov dword [rsp + 0x24], ecx
test eax, eax
je 0x78c00a
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x17
and eax, 0xff
cmp eax, 0xff
jne 0x78b366
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
test eax, eax
je 0x78b279
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
mov ecx, 1
mov dword [rsp + 0x40], ecx
movzx ecx, al
mov eax, dword [rsp + 0x40]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x44]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x44]
cmp rax, 0x10
jne 0x78b0d0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x48]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0x48], rax
jne 0x78b0d0
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x154]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
add eax, 0x17
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x50]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x50]
cmp rax, 0x10
jb 0x78b274
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x158]
shr eax, 0x10
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
sub rax, 0x10
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x58]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x58]
cmp rax, 0x10
jbe 0x78b1fa
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
mov rcx, qword [rsp + 0x130]
mov edx, 0x17
sub edx, dword [rcx + 0x154]
mov ecx, edx
sar eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x60]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0x60], rax
jne 0x78b25b
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
cmp rax, 0x10
jae 0x78b142
jmp 0x78b354
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x68]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x68]
cmp rax, 0x10
jne 0x78b354
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x70]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0x70], rax
jne 0x78b354
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov dword [rsp + 0x20], 0x1000000
mov dword [rsp + 0x38], 0
jmp 0x78b3de
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x17
and eax, 0xff
test eax, eax
je 0x78b3ab
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x17
and eax, 0xff
mov ecx, dword [rsp + 0x28]
sub ecx, eax
mov eax, ecx
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
add eax, 0x800000
mov dword [rsp + 0x20], eax
jmp 0x78b3de
cmp dword [rsp + 0x28], 0
je 0x78b3be
mov eax, dword [rsp + 0x28]
dec eax
mov dword [rsp + 0x78], eax
jmp 0x78b3c6
mov dword [rsp + 0x78], 0
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x38], 0x19
jge 0x78b3f8
mov eax, dword [rsp + 0x38]
movzx ecx, al
mov eax, dword [rsp + 0x20]
sar eax, cl
mov dword [rsp + 0x20], eax
jmp 0x78b400
mov dword [rsp + 0x20], 0
cmp dword [rsp + 0x20], 0
jne 0x78bca1
mov rax, qword [rsp + 0x130]
movzx eax, byte [rax + 0x170]
and eax, 8
test eax, eax
je 0x78bc9c
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x17
and eax, 0xff
test eax, eax
jne 0x78b44c
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
test eax, eax
je 0x78ba51
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
mov ecx, 1
mov dword [rsp + 0x7c], ecx
movzx ecx, al
mov eax, dword [rsp + 0x7c]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x80]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x80]
cmp rax, 0x10
jne 0x78b579
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x88]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0x88], rax
jne 0x78b579
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x154]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
add eax, 0x17
mov dword [rsp + 0x90], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x90]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x90]
cmp rax, 0x10
jb 0x78b738
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x158]
shr eax, 0x10
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
sub rax, 0x10
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x98]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x98]
cmp rax, 0x10
jbe 0x78b6b5
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
mov rcx, qword [rsp + 0x130]
mov edx, 0x17
sub edx, dword [rcx + 0x154]
mov ecx, edx
sar eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xa0]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0xa0], rax
jne 0x78b71f
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
cmp rax, 0x10
jae 0x78b5f4
cmp dword [rsp + 0x28], 0x19
jl 0x78b908
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x17
and eax, 0xff
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x154]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
add eax, 8
mov dword [rsp + 0xa8], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xa8]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xa8]
cmp rax, 0x10
jb 0x78b908
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x158]
shr eax, 0x10
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
sub rax, 0x10
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xb0]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xb0]
cmp rax, 0x10
jbe 0x78b885
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x17
and eax, 0xff
mov rcx, qword [rsp + 0x130]
mov edx, 8
sub edx, dword [rcx + 0x154]
mov ecx, edx
sar eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xb8]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0xb8], rax
jne 0x78b8ef
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
cmp rax, 0x10
jae 0x78b7c1
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x1f
and eax, 1
test eax, eax
je 0x78b95f
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
mov ecx, 1
mov dword [rsp + 0xc0], ecx
movzx ecx, al
mov eax, dword [rsp + 0xc0]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0xc4], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xc4]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xc4]
cmp rax, 0x10
jne 0x78ba4c
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xc8]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0xc8], rax
jne 0x78ba4c
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
jmp 0x78bc9c
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0xd0], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xd0]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xd0]
cmp rax, 0x10
jne 0x78bb3e
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xd8]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0xd8], rax
jne 0x78bb3e
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x130]
movzx eax, byte [rax + 0x170]
and eax, 0x10
test eax, eax
je 0x78bc9c
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
sar eax, 0x1f
and eax, 1
test eax, eax
je 0x78bbaf
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
mov ecx, 1
mov dword [rsp + 0xe0], ecx
movzx ecx, al
mov eax, dword [rsp + 0xe0]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0xe4], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xe4]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xe4]
cmp rax, 0x10
jne 0x78bc9c
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0xe8]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0xe8], rax
jne 0x78bc9c
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
jmp 0x78c005
cmp dword [rsp + 0x38], 0
je 0x78c005
mov rax, qword [rsp + 0x130]
movzx eax, byte [rax + 0x170]
and eax, 4
test eax, eax
je 0x78bea5
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
mov ecx, dword [rsp + 0x38]
mov edx, 1
shl edx, cl
mov ecx, edx
dec ecx
and eax, ecx
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
movzx ecx, al
mov eax, dword [rsp + 0x3c]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x38]
mov eax, dword [rax + 0x154]
add eax, ecx
mov dword [rsp + 0xf0], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xf0]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xf0]
cmp rax, 0x10
jb 0x78bea0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x158]
shr eax, 0x10
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
sub rax, 0x10
mov qword [rsp + 0xf8], rax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0xf8]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0xf8]
cmp rax, 0x10
jbe 0x78be1d
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
mov ecx, dword [rsp + 0x38]
sub ecx, eax
mov eax, ecx
movzx ecx, al
mov eax, dword [rsp + 0x3c]
sar eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x100]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0x100], rax
jne 0x78be87
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
mov rax, qword [rsp + 0x130]
movsxd rax, dword [rax + 0x154]
cmp rax, 0x10
jae 0x78bd60
jmp 0x78c005
mov rax, qword [rsp + 0x130]
movzx eax, byte [rax + 0x170]
and eax, 2
test eax, eax
je 0x78c005
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
and eax, 0x7fffff
and eax, 1
test eax, eax
je 0x78bf18
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
mov ecx, 1
mov dword [rsp + 0x108], ecx
movzx ecx, al
mov eax, dword [rsp + 0x108]
shl eax, cl
mov rcx, qword [rsp + 0x130]
mov ecx, dword [rcx + 0x158]
or ecx, eax
mov eax, ecx
mov rcx, qword [rsp + 0x130]
mov dword [rcx + 0x158], eax
mov rax, qword [rsp + 0x130]
mov eax, dword [rax + 0x154]
inc eax
mov dword [rsp + 0x10c], eax
mov rax, qword [rsp + 0x130]
mov ecx, dword [rsp + 0x10c]
mov dword [rax + 0x154], ecx
movsxd rax, dword [rsp + 0x10c]
cmp rax, 0x10
jne 0x78c005
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
mov rcx, qword [rsp + 0x130]
movzx ecx, word [rcx + 0x158]
mov word [rax], cx
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x154], 0
mov rax, qword [rsp + 0x130]
mov dword [rax + 0x158], 0
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x140]
add rax, 2
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x110]
mov qword [rax + 0x140], rcx
mov rax, qword [rsp + 0x130]
mov rax, qword [rax + 0x138]
cmp qword [rsp + 0x110], rax
jne 0x78c005
mov rax, qword [rsp + 0x130]
add rax, 0x130
mov rcx, rax
mov rax, qword [rsp + 0x130]
call qword [rax + 0x148]
jmp 0x78af63
add rsp, 0x128
ret