Function at 0x4044d7
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x40
mov qword [rbp + 0x10], rcx
mov qword [rbp - 8], 0
mov eax, dword [0x0053c06c]
mov dword [rbp - 0x14], eax
jmp 0x404541
mov rax, qword [0x0053c060]
mov edx, dword [rbp - 0x14]
movsxd rdx, edx
shl rdx, 4
add rax, rdx
mov rax, qword [rax]
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x10]
cmp rax, qword [rbp - 8]
je 0x404549
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0x108]
cmp qword [rbp + 0x10], rax
je 0x40453d
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0x108]
cmp qword [rbp - 8], rax
je 0x40454c
sub dword [rbp - 0x14], 1
cmp dword [rbp - 0x14], 0
jg 0x4044f6
jmp 0x40454d
nop
jmp 0x40454d
nop
cmp dword [rbp - 0x14], 0
jg 0x404584
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r9, rax
mov r8d, 0x29
mov edx, 1
lea rcx, str._find_cycle__couldnt_find_head_of_cycle_n
call sub.msvcrt.dll_fwrite
mov ecx, 1
call fcn.0040bb92
mov rax, qword [0x00527c30]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x4045d9
mov eax, dword [0x0053c06c]
mov edx, dword [rbp - 0x14]
mov r8d, edx
mov edx, eax
lea rcx, str._find_cycle__dfn_depth__d_cycle_top__d
call sub.msvcrt.dll_printf
cmp qword [rbp - 8], 0
je 0x4045c3
mov rax, qword [rbp - 8]
mov rcx, rax
call fcn.0040fb41
jmp 0x4045cf
lea rcx, [0x004f8548]
call sub.msvcrt.dll_printf
mov ecx, 0xa
call sub.msvcrt.dll_putchar
mov eax, dword [0x0053c06c]
cmp dword [rbp - 0x14], eax
jne 0x40461c
mov rax, qword [0x00527c30]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x404857
lea rcx, str._find_cycle_
call sub.msvcrt.dll_printf
mov rcx, qword [rbp + 0x10]
call fcn.0040fb41
mov ecx, 0xa
call sub.msvcrt.dll_putchar
jmp 0x404857
mov rax, qword [rbp - 8]
mov qword [rbp - 0x10], rax
jmp 0x404667
mov rax, qword [0x00527c30]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x404658
lea rcx, str._find_cycle__tail
call sub.msvcrt.dll_printf
mov rax, qword [rbp - 0x10]
mov rcx, rax
call fcn.0040fb41
mov ecx, 0xa
call sub.msvcrt.dll_putchar
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x110]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x110]
test rax, rax
jne 0x404626
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x108]
cmp qword [rbp - 8], rax
je 0x4046c9
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x108]
mov qword [rbp - 8], rax
mov rax, qword [0x00527c30]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x4046c9
lea rcx, str._find_cycle__new_cyclehead
call sub.msvcrt.dll_printf
mov rax, qword [rbp - 8]
mov rcx, rax
call fcn.0040fb41
mov ecx, 0xa
call sub.msvcrt.dll_putchar
mov eax, dword [rbp - 0x14]
add eax, 1
mov dword [rbp - 0x18], eax
jmp 0x404848
mov rax, qword [0x0053c060]
mov edx, dword [rbp - 0x18]
movsxd rdx, edx
shl rdx, 4
add rax, rdx
mov rax, qword [rax]
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0x108]
cmp qword [rbp + 0x10], rax
jne 0x404802
mov rax, qword [rbp - 0x10]
mov rdx, qword [rbp + 0x10]
mov qword [rax + 0x110], rdx
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp - 8]
mov qword [rax + 0x108], rdx
mov rax, qword [0x00527c30]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x40476c
lea rcx, str._find_cycle__glomming
call sub.msvcrt.dll_printf
mov rcx, qword [rbp + 0x10]
call fcn.0040fb41
lea rcx, str._onto
call sub.msvcrt.dll_printf
mov rax, qword [rbp - 8]
mov rcx, rax
call fcn.0040fb41
mov ecx, 0xa
call sub.msvcrt.dll_putchar
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x10], rax
jmp 0x4047ec
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x110]
mov rdx, qword [rbp - 8]
mov qword [rax + 0x108], rdx
mov rax, qword [0x00527c30]
mov eax, dword [rax]
and eax, 2
test eax, eax
je 0x4047dd
lea rcx, str._find_cycle__and_its_tail
call sub.msvcrt.dll_printf
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x110]
mov rcx, rax
call fcn.0040fb41
lea rcx, str._onto
call sub.msvcrt.dll_printf
mov rax, qword [rbp - 8]
mov rcx, rax
call fcn.0040fb41
mov ecx, 0xa
call sub.msvcrt.dll_putchar
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x110]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x110]
test rax, rax
jne 0x404776
jmp 0x404844
mov rax, qword [rbp + 0x10]
mov rax, qword [rax + 0x108]
cmp qword [rbp - 8], rax
je 0x404844
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x60
mov r9, rax
mov r8d, 0x26
mov edx, 1
lea rcx, str._find_cycle__glommed__but_not_to_head_n
call sub.msvcrt.dll_fwrite
mov ecx, 1
call fcn.0040bb92
add dword [rbp - 0x18], 1
mov eax, dword [0x0053c06c]
cmp dword [rbp - 0x18], eax
jle 0x4046d7
nop
add rsp, 0x40
pop rbp
ret