Function at 0x4206db
Capabilities:
Write file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0xa0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov dword [rbp - 0x14], 1
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 0x38]
mov eax, eax
shl rax, 5
mov rcx, rax
call fcn.00464276
mov rdx, rax
mov rax, qword [rbp + 0x18]
mov qword [rax + 0x40], rdx
mov dword [rbp - 0x10], 0
mov dword [rbp - 0xc], 0
jmp 0x4207b2
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x30]
mov edx, dword [rbp - 0xc]
shl rdx, 5
add rax, rdx
mov rax, qword [rax]
test rax, rax
je 0x4207ae
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x30]
mov edx, dword [rbp - 0xc]
shl rdx, 5
add rax, rdx
movzx eax, byte [rax + 0x14]
movzx eax, al
and eax, 0xf
cmp eax, 2
jne 0x4207ae
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x30]
mov edx, dword [rbp - 0xc]
shl rdx, 5
lea r8, [rax + rdx]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax + 0x40]
mov eax, dword [rbp - 0x10]
lea edx, [rax + 1]
mov dword [rbp - 0x10], edx
mov eax, eax
shl rax, 5
add rcx, rax
mov rax, qword [r8]
mov rdx, qword [r8 + 8]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov rax, qword [r8 + 0x10]
mov rdx, qword [r8 + 0x18]
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rdx
add dword [rbp - 0xc], 1
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 0x38]
cmp dword [rbp - 0xc], eax
jb 0x420728
mov rax, qword [rbp + 0x18]
mov edx, dword [rbp - 0x10]
mov dword [rax + 0x48], edx
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 0x48]
mov edx, eax
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x40]
lea r9, [0x0042067c]
mov r8d, 0x20
mov rcx, rax
call sub.msvcrt.dll_qsort
mov rax, qword [rbp + 0x18]
mov rax, qword [rax]
mov qword [rbp - 8], rax
jmp 0x420be1
mov rax, qword [rbp + 0x18]
mov r8d, dword [rax + 0x58]
mov rax, qword [rbp + 0x18]
mov r9, qword [rax + 0x50]
mov rax, qword [rbp + 0x18]
mov r10d, dword [rax + 0x48]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax + 0x40]
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rax]
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rdx
lea rax, [rbp - 0x48]
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r8d
mov r8d, r10d
mov rdx, rcx
mov rcx, qword [rbp + 0x10]
call fcn.004204c9
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x30
mov r9, rax
mov r8d, 2
mov edx, 1
lea rcx, [0x0048ac90]
call sub.msvcrt.dll_fwrite
mov rax, qword [rbp - 0x50]
test rax, rax
je 0x4208c8
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
lea rdx, [rax + 0x30]
mov rax, qword [rbp - 0x50]
mov rcx, rax
call sub.msvcrt.dll_fputs
mov rax, qword [rbp - 0x48]
test rax, rax
je 0x4208c8
mov rax, qword [rbp - 0x48]
mov edx, eax
lea rcx, [0x0048ac93]
call sub.msvcrt.dll_printf
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x30
mov r9, rax
mov r8d, 4
mov edx, 1
lea rcx, str._:__
call sub.msvcrt.dll_fwrite
mov rax, qword [rbp - 8]
mov rax, qword [rax + 8]
mov edx, 4
mov rcx, rax
call fcn.0040c0ea
mov rax, qword [sym.imp.msvcrt.dll___iob_func]
call rax
add rax, 0x30
mov rdx, rax
mov ecx, 0x2d
call sub.msvcrt.dll_fputc
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov edx, 4
mov rcx, rax
call fcn.0040c0ea
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x28]
mov edx, eax
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x28]
sub edx, eax
mov eax, edx
mov edx, eax
lea rcx, str.___info_at_0x_lx_n
call sub.msvcrt.dll_printf
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x420bdb
mov rax, qword [rbp - 8]
movzx eax, word [rax + 0x20]
test ax, ax
je 0x4209aa
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 0x68]
mov rax, qword [rbp - 8]
movzx eax, word [rax + 0x20]
movzx edx, ax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 4
add rax, rcx
mov rdx, qword [rax + 0x10]
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x28]
add rax, rdx
jmp 0x4209b2
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x28]
mov rdx, qword [rbp + 0x18]
mov rdx, qword [rdx + 0x20]
sub rax, rdx
mov rdx, rax
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 0x18]
mov eax, eax
cmp rdx, rax
jb 0x420a1b
mov rdx, qword [rbp - 8]
mov rax, qword [rbp + 0x18]
mov rax, qword [rax]
sub rdx, rax
mov rax, rdx
sar rax, 4
mov rdx, rax
movabs rax, 0xaaaaaaaaaaaaaaab
imul rax, rdx
mov edx, eax
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x28]
mov r8d, edx
mov edx, eax
lea rcx, str.Invalid_offset__lx_in_table_entry__ld_n
call fcn.0045d7fb
mov dword [rbp - 0x14], 0
jmp 0x420bdc
mov rax, qword [rbp + 0x18]
mov rcx, qword [rax + 0x10]
mov rax, qword [rbp - 8]
movzx eax, word [rax + 0x20]
test ax, ax
je 0x420a65
mov rax, qword [rbp + 0x10]
mov r8, qword [rax + 0x68]
mov rax, qword [rbp - 8]
movzx eax, word [rax + 0x20]
movzx edx, ax
mov rax, rdx
shl rax, 2
add rax, rdx
shl rax, 4
add rax, r8
mov rdx, qword [rax + 0x10]
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x28]
add rax, rdx
jmp 0x420a6d
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x28]
mov rdx, qword [rbp + 0x18]
mov rdx, qword [rdx + 0x20]
sub rax, rdx
add rax, rcx
mov qword [rbp - 0x30], rax
mov rax, qword [0x004a2e00]
mov rax, qword [rax]
mov rcx, qword [rbp - 0x30]
mov edx, 8
call rax
mov qword [rbp - 0x38], rax
mov rax, qword [rbp - 0x38]
mov edx, eax
mov rax, qword [0x004a2fd0]
mov eax, dword [rax]
mov ecx, edx
imul ecx, eax
movabs rax, 0x200000000
and rax, qword [rbp - 0x38]
test rax, rax
je 0x420ac8
lea rax, str._uhandler
jmp 0x420acf
lea rax, [0x00488d34]
movabs rdx, 0x100000000
and rdx, qword [rbp - 0x38]
test rdx, rdx
je 0x420aeb
lea rdx, str._ehandler
jmp 0x420af2
lea rdx, [0x00488d34]
mov r8, qword [rbp - 0x38]
shr r8, 0x20
movzx r8d, r8w
mov r9, qword [rbp - 0x38]
shr r9, 0x30
mov r10d, r9d
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov r9, rdx
mov edx, r10d
lea rcx, str.__v_u__flags0x_lx___s_s___len_lu_bytes_n
call sub.msvcrt.dll_printf
mov rax, qword [rbp - 0x38]
shr rax, 0x30
cmp rax, 1
je 0x420b43
lea rcx, str._tUnknown_version.
call sub.msvcrt.dll_puts
jmp 0x420bdc
mov dword [rbp - 0x3c], 0
mov rax, qword [0x004a2fd0]
mov eax, dword [rax]
mov edx, eax
mov rax, qword [rbp - 0x38]
mov eax, eax
imul rax, rdx
lea rdx, [rax + 8]
mov rax, qword [rbp - 0x30]
add rax, rdx
mov qword [rbp - 0x28], rax
mov rax, qword [rbp + 0x18]
mov rdx, qword [rax + 0x10]
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 0x18]
mov eax, eax
add rax, rdx
cmp qword [rbp - 0x28], rax
jbe 0x420ba0
mov rax, qword [rbp + 0x18]
mov rdx, qword [rax + 0x10]
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 0x18]
mov eax, eax
add rax, rdx
mov qword [rbp - 0x28], rax
mov rax, qword [rbp - 0x30]
add rax, 8
mov qword [rbp - 0x20], rax
jmp 0x420bcf
mov edx, dword [rbp - 0x3c]
mov r8, qword [rbp - 0x28]
lea rcx, [rbp - 0x3c]
mov rax, qword [rbp - 0x20]
mov r9, r8
mov r8, rcx
mov rcx, rax
call fcn.0043e90b
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
cmp rax, qword [rbp - 0x28]
jb 0x420bae
jmp 0x420bdc
nop
add qword [rbp - 8], 0x30
mov rax, qword [rbp + 0x18]
mov rdx, qword [rax]
mov rax, qword [rbp + 0x18]
mov eax, dword [rax + 8]
mov ecx, eax
mov rax, rcx
add rax, rax
add rax, rcx
shl rax, 4
add rax, rdx
cmp qword [rbp - 8], rax
jb 0x420802
mov rax, qword [rbp + 0x18]
mov rax, qword [rax + 0x40]
mov rcx, rax
call sub.msvcrt.dll_free
mov eax, dword [rbp - 0x14]
add rsp, 0xa0
pop rbp
ret