Function at 0x4241c8
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xd0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov qword [rbp + 0x20], r8
mov qword [rbp + 0x28], r9
mov rax, qword [rbp + 0x10]
add rax, 0x3c
mov ecx, dword [rax]
mov dword [rbp - 0x14], ecx
mov rax, qword [rbp + 0x10]
add rax, 0x538
mov ecx, dword [rax]
mov dword [rbp - 8], ecx
movabs rax, 0x40
mov r8, rax
mov eax, 0
mov r11, rax
lea rax, [rbp - 0x60]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
mov eax, dword [rbp + 0x20]
cmp eax, 0
jle 0x424252
mov eax, 0x38
mov word [rbp - 0x2a], ax
movzx eax, word [rbp + 0x20]
mov word [rbp - 0x28], ax
movabs rax, 0x40
mov qword [rbp - 0x40], rax
mov eax, dword [rbp + 0x30]
add eax, 3
and eax, 0xfffffffc
mov dword [rbp + 0x30], eax
mov eax, 0x7f
mov byte [rbp - 0x60], al
mov eax, 0x45
mov byte [rbp - 0x5f], al
mov eax, 0x4c
mov byte [rbp - 0x5e], al
mov eax, 0x46
mov byte [rbp - 0x5d], al
mov eax, 2
mov byte [rbp - 0x5c], al
mov eax, 1
mov byte [rbp - 0x5b], al
mov eax, 1
mov byte [rbp - 0x5a], al
jmp 0x424304
mov eax, 2
mov word [rbp - 0x50], ax
mov eax, 1
mov r8, rax
lea rax, str._start
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.0041fcca
mov qword [rbp - 0x48], rax
jmp 0x424318
mov eax, 3
mov word [rbp - 0x50], ax
mov rax, qword [0x00450b90]
add rax, 0x38
mov rcx, qword [rax]
mov qword [rbp - 0x48], rcx
jmp 0x424318
mov eax, 1
mov word [rbp - 0x50], ax
jmp 0x424318
mov eax, dword [rbp - 0x14]
cmp eax, 2
je 0x42429b
cmp eax, 3
je 0x4242d1
cmp eax, 4
je 0x4242f1
jmp 0x42429b
mov eax, 0x3e
mov word [rbp - 0x4e], ax
mov eax, 1
mov dword [rbp - 0x4c], eax
mov eax, dword [rbp + 0x30]
movsxd rax, eax
mov qword [rbp - 0x38], rax
mov eax, 0x40
mov word [rbp - 0x2c], ax
mov eax, 0x40
mov word [rbp - 0x26], ax
movzx eax, word [rbp - 8]
mov word [rbp - 0x24], ax
mov eax, dword [rbp - 8]
sub eax, 1
mov word [rbp - 0x22], ax
mov rax, qword [rbp + 0x18]
mov r9, rax
movabs rax, 0x40
mov r8, rax
movabs rax, 1
mov r11, rax
lea rax, [rbp - 0x60]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_fwrite
mov eax, dword [rbp + 0x20]
movsxd rax, eax
movabs rcx, 0x38
imul rax, rcx
mov rcx, qword [rbp + 0x18]
mov r9, rcx
mov r8, rax
movabs rax, 1
mov r11, rax
mov rax, qword [rbp + 0x28]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_fwrite
mov eax, dword [rbp + 0x20]
movsxd rax, eax
movabs rcx, 0x38
imul rax, rcx
add rax, 0x40
mov dword [rbp - 0xc], eax
mov rax, qword [0x00450bd0]
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call fcn.00420982
mov eax, 1
mov dword [rbp - 4], eax
mov rax, qword [rbp + 0x10]
add rax, 0x538
mov ecx, dword [rbp - 4]
mov edx, dword [rax]
cmp ecx, edx
jge 0x424512
jmp 0x424431
mov eax, dword [rbp - 4]
mov rcx, rax
add eax, 1
mov dword [rbp - 4], eax
jmp 0x424406
mov rax, qword [rbp + 0x10]
add rax, 0x530
mov ecx, dword [rbp - 4]
movsxd rcx, ecx
shl rcx, 2
mov rdx, qword [rbp + 0x38]
add rdx, rcx
mov ecx, dword [rdx]
movsxd rcx, ecx
shl rcx, 3
mov rdx, qword [rax]
add rdx, rcx
mov rax, qword [rdx]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
add rax, 0x1c
mov ecx, dword [rax]
cmp ecx, 8
je 0x42450d
mov rax, qword [rbp - 0x20]
add rax, 0x40
mov ecx, dword [rbp - 0xc]
mov edx, dword [rax]
cmp ecx, edx
jae 0x4244b3
mov rax, qword [rbp + 0x18]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_fputc
mov eax, dword [rbp - 0xc]
mov rcx, rax
add eax, 1
mov dword [rbp - 0xc], eax
jmp 0x424476
mov rax, qword [rbp - 0x20]
add rax, 0x30
mov ecx, dword [rax]
mov dword [rbp - 0x10], ecx
mov eax, dword [rbp - 0x10]
cmp eax, 0
je 0x424502
mov rax, qword [rbp - 0x20]
add rax, 8
mov ecx, dword [rbp - 0x10]
movsxd rcx, ecx
mov rdx, qword [rbp + 0x18]
mov r9, rdx
mov r8, rcx
movabs rcx, 1
mov r11, rcx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_fwrite
mov eax, dword [rbp - 0xc]
mov ecx, dword [rbp - 0x10]
add eax, ecx
mov dword [rbp - 0xc], eax
jmp 0x424423
mov eax, dword [rbp - 0xc]
movsxd rax, eax
mov rcx, qword [rbp - 0x38]
cmp rax, rcx
jae 0x42454d
mov rax, qword [rbp + 0x18]
mov r11, rax
mov eax, 0
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_fputc
mov eax, dword [rbp - 0xc]
mov rcx, rax
add eax, 1
mov dword [rbp - 0xc], eax
jmp 0x424512
mov eax, 0
mov dword [rbp - 4], eax
mov rax, qword [rbp + 0x10]
add rax, 0x538
mov ecx, dword [rbp - 4]
mov edx, dword [rax]
cmp ecx, edx
jge 0x424731
jmp 0x424580
mov eax, dword [rbp - 4]
mov rcx, rax
add eax, 1
mov dword [rbp - 4], eax
jmp 0x424555
lea rax, [rbp - 0xa0]
mov qword [rbp - 0xa8], rax
movabs rax, 0x40
mov r8, rax
mov eax, 0
mov r11, rax
mov rax, qword [rbp - 0xa8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_memset
mov rax, qword [rbp + 0x10]
add rax, 0x530
mov ecx, dword [rbp - 4]
movsxd rcx, ecx
shl rcx, 3
mov rdx, qword [rax]
add rdx, rcx
mov rax, qword [rdx]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
cmp rax, 0
je 0x4246f6
mov rax, qword [rbp - 0xa8]
mov rcx, qword [rbp - 0x20]
add rcx, 0x14
mov edx, dword [rcx]
mov dword [rax], edx
mov rax, qword [rbp - 0xa8]
add rax, 4
mov rcx, qword [rbp - 0x20]
add rcx, 0x1c
mov edx, dword [rcx]
mov dword [rax], edx
mov rax, qword [rbp - 0xa8]
add rax, 8
mov rcx, qword [rbp - 0x20]
add rcx, 0x20
mov edx, dword [rcx]
movsxd rdx, edx
mov qword [rax], rdx
mov rax, qword [rbp - 0xa8]
add rax, 0x38
mov rcx, qword [rbp - 0x20]
add rcx, 0x2c
mov edx, dword [rcx]
movsxd rdx, edx
mov qword [rax], rdx
mov rax, qword [rbp - 0xa8]
add rax, 0x2c
mov rcx, qword [rbp - 0x20]
add rcx, 0x24
mov edx, dword [rcx]
mov dword [rax], edx
mov rax, qword [rbp - 0x20]
add rax, 0x48
mov rcx, qword [rax]
cmp rcx, 0
je 0x424692
mov rax, qword [rbp - 0xa8]
add rax, 0x28
mov rcx, qword [rbp - 0x20]
add rcx, 0x48
mov rdx, qword [rcx]
add rdx, 0x18
mov ecx, dword [rdx]
mov dword [rax], ecx
mov rax, qword [rbp - 0xa8]
add rax, 0x30
mov rcx, qword [rbp - 0x20]
add rcx, 0x28
mov edx, dword [rcx]
movsxd rdx, edx
mov qword [rax], rdx
mov rax, qword [rbp - 0xa8]
add rax, 0x10
mov rcx, qword [rbp - 0x20]
add rcx, 0x38
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rax, qword [rbp - 0xa8]
add rax, 0x18
mov rcx, qword [rbp - 0x20]
add rcx, 0x40
mov edx, dword [rcx]
mov qword [rax], rdx
mov rax, qword [rbp - 0xa8]
add rax, 0x20
mov rcx, qword [rbp - 0x20]
add rcx, 0x30
mov edx, dword [rcx]
mov qword [rax], rdx
mov rax, qword [rbp + 0x18]
mov r9, rax
movabs rax, 0x40
mov r8, rax
movabs rax, 1
mov r11, rax
mov rax, qword [rbp - 0xa8]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.msvcrt.dll_fwrite
jmp 0x424572
leave
ret