Function at 0x401530
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
mov eax, 0x1938
call fcn.0040fcd0
sub rsp, rax
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x18e0], ecx
mov qword [rbp + 0x18e8], rdx
call dbg.__main
lea rax, [rbp + 0x40]
movabs rsi, 0x652e6d6f736e6172
mov qword [rax], rsi
mov word [rax + 8], 0x6578
mov byte [rax + 0xa], 0
lea rax, [rbp + 0x440]
movabs rdi, 0x7478742e617372
mov qword [rax], rdi
lea rdx, [rbp + 0x440]
lea rax, [rbp + 0x40]
mov r8, rdx
mov rdx, rax
lea rcx, str._s_n_s_n
call sym.printf
mov ecx, 0
call sym.time
mov ecx, eax
call sym.srand
movabs rax, 0x6867666564636261
mov qword [rbp - 0x60], rax
movabs rax, 0x706f6e6d6c6b6a69
mov qword [rbp - 0x58], rax
movabs rax, 0x7877767574737271
mov qword [rbp - 0x50], rax
movabs rax, 0x3534333231307a79
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x40], 0x39383736
mov byte [rbp - 0x3c], 0
movabs rax, 0x6867666564636261
mov qword [rbp - 0x30], rax
movabs rax, 0x706f6e6d6c6b6a69
mov qword [rbp - 0x28], rax
movabs rax, 0x7877767574737271
mov qword [rbp - 0x20], rax
movabs rax, 0x3534333231307a79
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x10], 0x39383736
mov byte [rbp - 0xc], 0
mov dword [rbp + 0x18ac], 0
jmp 0x4016cf
call sym.rand
mov ecx, eax
mov edx, 0x38e38e39
mov eax, ecx
imul edx
sar edx, 3
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
mov dword [rbp + 0x188c], eax
mov edx, dword [rbp + 0x188c]
mov eax, edx
shl eax, 3
add eax, edx
shl eax, 2
sub ecx, eax
mov eax, ecx
mov dword [rbp + 0x188c], eax
mov eax, dword [rbp + 0x18ac]
cdqe
movzx eax, byte [rbp + rax - 0x30]
mov byte [rbp + 0x188b], al
mov eax, dword [rbp + 0x188c]
cdqe
movzx edx, byte [rbp + rax - 0x30]
mov eax, dword [rbp + 0x18ac]
cdqe
mov byte [rbp + rax - 0x30], dl
mov eax, dword [rbp + 0x188c]
cdqe
movzx edx, byte [rbp + 0x188b]
mov byte [rbp + rax - 0x30], dl
add dword [rbp + 0x18ac], 1
mov eax, dword [rbp + 0x18ac]
cdqe
movzx eax, byte [rbp + rax - 0x30]
test al, al
jne 0x40164d
lea rax, [rbp - 0x30]
mov rdx, rax
lea rcx, str.Decryption_Key_:__s_n
call sym.printf
lea rax, [rbp + 0x440]
lea rdx, [0x0046f01c]
mov rcx, rax
call sym.fopen
mov qword [rbp + 0x1880], rax
cmp qword [rbp + 0x1880], 0
jne 0x401734
lea rcx, str.Cannot_open_rsa_key_file
call sym.printf
mov ebx, 0xffffffff
jmp 0x4021c0
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 4
lea rdx, str.n_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x401802
mov ecx, 0x401
call sym.malloc
mov qword [0x00487040], rax
mov rax, qword [0x00487040]
mov rdx, rax
lea rax, str.cb5664c46c5b5fcc71aa1bd373f0955ff2d60a2971e7315f0e8298b16dfeec60879c91e5c143b04d44d84eabba74ac05c40e7169e3a051db5d3912ec27ef09abd8c64a61a73a5b4cf276c69934866673c6f3aa948f1d89ceaf4dcbda5d98ee5200551c90ff55b65f71e7a4c116f799591ba3fe4b268003d4e69ef6e0cc4e6c570880e45e006bc30f1f74e963b761d7c629e3b72001aae6f37da7d4932e7fb6c80bb48008ec59351d277a3377babcae944a06f9fa210be732c7b016935f19dbc184223a92d5e0b4b22cd5433ba8275d31f4ddb7fa8a4f3ef85336a9857a364fc309859c47a5af65fb8e2535d50e8ab6a5c50635df8a27484148e5b6d3a1af4be98ff9f23dd47250b90af514cd1c5125fd85f33cc4924cc4057f79995281b609ec3fd3ce8bbfee09d1a0b7d7481b9cca84cf406dae06fe4e23d30aa7d0fc27268fb9693d15f2e095cd969ef25d54e9b5ee06e9e1d1528dfab558a08ced53e047283938a2f4f8bdbb5d3b5203f3a9d01b0f75094a1637dbe26d3a73264fb7e5458c6651baf6efb3a36c0f336df76bade318dffa94dc5e37b4aaf3f96c2b72de5e4554eea7ea2824dbe25bc4c92a781a0cfaf8c3196055ed42075363a755b715a8f581d13c40a340e949cb1d7ab42b3f675e86b8bb8993e06f46edaf706d3ee51f83d564af0a68adc9d28bceb6f2c5df1e42699156b810a62404b34e1cc3fc0b6299
mov ecx, 0x401
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, 0x401
call sym.malloc
mov qword [0x004870c0], rax
mov rax, qword [0x004870c0]
lea rdx, [rbp + 0x840]
add rdx, 4
mov r8d, 0x400
mov rcx, rax
call sym.strncpy
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 4
lea rdx, str.e_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x40187c
mov ecx, 6
call sym.malloc
mov qword [0x00487048], rax
mov rax, qword [0x00487048]
mov dword [rax], 0x30303031
mov word [rax + 4], 0x31
mov ecx, 6
call sym.malloc
mov qword [0x004870c8], rax
mov rax, qword [0x004870c8]
lea rdx, [rbp + 0x840]
add rdx, 4
mov r8d, 5
mov rcx, rax
call sym.strncpy
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 4
lea rdx, str.d_
mov rcx, rax
call sym.strncmp
test eax, eax
je 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 4
lea rdx, str.p_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x401969
mov ecx, 0x201
call sym.malloc
mov qword [0x00487050], rax
mov rax, qword [0x00487050]
mov rdx, rax
lea rax, str.fc99bb1c28a5ae006e567faf4cfc0d707c1528e2edb6710ac3396da29026e99fd2659403afa3d9e3ee04fdba370978ee8ec396a20c3750bcde1366398191c0af3ea90521e37d7b0ac20020a2ede80875b2d4f82553c0427d09a7e2b93a79d813f83ec690bc8acc0b6323a28167f0f69d60230685bda880e6bdcf973cb337696579fc8f67332304804845396e9c7978fe118678d93f473f8d71603fd9e222aa3c38ba17be3fa05a00e93d9e8084dcc6303cd50539d3f7ba0b9e3590a8c193d430ad5118add9580722bee389d118711acc5ae966bd700e28f8ba2443c047e11fd85198484df8a343804011b2784f8fab68e19a537e0ee4c0ed3f050f3b6d65cb81
mov ecx, 0x201
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, 0x201
call sym.malloc
mov qword [0x004870d0], rax
mov rax, qword [0x004870d0]
lea rdx, [rbp + 0x840]
add rdx, 4
mov r8d, 0x200
mov rcx, rax
call sym.strncpy
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 4
lea rdx, str.q_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x401a32
mov ecx, 0x201
call sym.malloc
mov qword [0x00487058], rax
mov rax, qword [0x00487058]
mov rdx, rax
lea rax, str.ce12f0967bd216d248cafda3d46ad1368d9f3de1243c4a3290ab7b3648d4280dbb4c1aad12c066f428a28df3c814d3782814dedba4e7910cbeca29dc55d5978a23321f8f7a7e31ad417d86342c037d963a21b62d728eee49e0571c7fcdc9cb2f3c9cb956ac63af940a32a27ff69009293a9f7fee86889b826f2a0e38a805fc9681639f199fc81843fc9a97ed2013adc9a065ef38d62ece4de11db520dfe46256675f88ef4b04a4518e8d1e94a2e3a20fe54cbf225cd7c043b006ca4d69bb350768672df2a9708a5638e2ef8e72582091802ba7c30fdba9fd54bd04d93ee5ac41fb544639b06404ea7272c1f28acc5fe9e9dc5f35e894c112431b1ddb57b80319
mov ecx, 0x201
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, 0x201
call sym.malloc
mov qword [0x004870d8], rax
mov rax, qword [0x004870d8]
lea rdx, [rbp + 0x840]
add rdx, 4
mov r8d, 0x200
mov rcx, rax
call sym.strncpy
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 5
lea rdx, str.dP_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x401afb
mov ecx, 0x201
call sym.malloc
mov qword [0x00487060], rax
mov rax, qword [0x00487060]
mov rdx, rax
lea rax, str.b9802be881f129d727305e945df4bbe9df35aad0fbc0ff42e81b44681d74761ce865b04d04af4f54137796dd298dcb4165963d08c3efdb5ad7bb6756d3d035b07c53a3713f9ee6bcffbb183c8e79d7bc9797cea39add95f63d210d5ef992811c2931f0a059d59402c8cb628ba5c94f5243477582c1c4fce4767ffc90970c1a5a6b3b0e14bb78fbd5393d9cef9df996e0fdfdc2c1c7b68af5544d5a96a77acd896c1f3d50796948af6299ddcc83c59dc5cee6a0efd6ba15e67248e3f30a35859e39a9547657264e173617e31daad564d8adeab98864c20154a75dfa633a6618fcc2ef122a306db52479e88527d545ac9b5911fc3e96b166fcd34ae3e4c0720100
mov ecx, 0x201
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, 0x201
call sym.malloc
mov qword [0x004870e0], rax
mov rax, qword [0x004870e0]
lea rdx, [rbp + 0x840]
add rdx, 5
mov r8d, 0x200
mov rcx, rax
call sym.strncpy
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 5
lea rdx, str.dQ_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x401bc4
mov ecx, 0x201
call sym.malloc
mov qword [0x00487068], rax
mov rax, qword [0x00487068]
mov rdx, rax
lea rax, str.71f6516cb72f1905d3d1c6711aa0b3f07a638d21fc1b07616d5617fe8e4a1d98727304f19fc41d6b7b29625d65d1f69ca575dd4514ae272e2838beeba5e0483cd177ffb22628b1aa41e47c1a5018e213f933f97eaab2d69eae5d1e5aa360ac68041a1bf90dbed733846c3a27902059a09e55e4b6f1598cbe96616899f679d1151e9b0c3a6c7d88c5d8655a0d7dc6c43e13e12b69803144501765896c93c4c6894803b243bb75e6b55fa3353d37d3b1251f46d110dccd47fb66d66a7c63336f811840af4d5a5ced73ff63a8dd5ae8d7a1ff82a4f51fc8f7fa2c29980bd857c56a7be6402bd91b87086ca0801774a0cf8e19919069cca4af1d3d553aaeb994fec9
mov ecx, 0x201
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, 0x201
call sym.malloc
mov qword [0x004870e8], rax
mov rax, qword [0x004870e8]
lea rdx, [rbp + 0x840]
add rdx, 5
mov r8d, 0x200
mov rcx, rax
call sym.strncpy
jmp 0x401c88
lea rax, [rbp + 0x840]
mov r8d, 7
lea rdx, str.qInv_
mov rcx, rax
call sym.strncmp
test eax, eax
jne 0x401c88
mov ecx, 0x201
call sym.malloc
mov qword [0x00487070], rax
mov rax, qword [0x00487070]
mov rdx, rax
lea rax, str.f1ef56e2c0e9babc7b27356a01535d052a8dfd5a61bbdbded4e9ffa34e054b43e162738660d46be1cc509076c958f336ae0a0f88ba54e03168fcf1315fa8c45033ccca8ef2bd878203621969031c3b4548633f70bc64b1885f68b6842bbbae40c88da40b07ecea95122eabeeb36998f9bf75927e8c5bce7fba7942ea04e0039d85a0577170a0be52dd8ad75aaf3203848d49152ccc9919db4f941752a3c164592251364ef14a78f90ac6c9357f955270567591d6eb45a0a88c40f43d38b80289fdc4c15888fb8df9ca90f5b14c846fd827d33d0a5029e6d75cbd14a65d3674b6443dfdfa4d72642e51bee915bfda4c04b85572cecdafecec4b6399fe196ac5b7
mov ecx, 0x201
mov r8, qword [rax]
mov qword [rdx], r8
mov r8d, ecx
add r8, rdx
lea r9, [r8 + 8]
mov r8d, ecx
add r8, rax
add r8, 8
mov r8, qword [r8 - 0x10]
mov qword [r9 - 0x10], r8
lea r8, [rdx + 8]
and r8, 0xfffffffffffffff8
sub rdx, r8
sub rax, rdx
add ecx, edx
and ecx, 0xfffffff8
shr ecx, 3
mov edx, ecx
mov edx, edx
mov rdi, r8
mov rsi, rax
mov rcx, rdx
rep movsq qword [rdi], qword [rsi]
mov ecx, 0x201
call sym.malloc
mov qword [0x004870f0], rax
mov rax, qword [0x004870f0]
lea rdx, [rbp + 0x840]
add rdx, 7
mov r8d, 0x200
mov rcx, rax
call sym.strncpy
mov ecx, 0x1000
mov rdx, qword [rbp + 0x1880]
lea rax, [rbp + 0x840]
mov r8, rdx
mov edx, ecx
mov rcx, rax
call sym.fgets
test rax, rax
setne al
test al, al
jne 0x401739
mov rax, qword [rbp + 0x1880]
mov rcx, rax
call sym.fclose
lea rdx, [rbp - 0x30]
lea rax, [rbp - 0x60]
mov r8, rdx
mov rdx, rax
lea rcx, str._s_n_s_n
call sym.printf
mov dword [rbp + 0x18a8], 2
jmp 0x401df0
mov eax, dword [rbp + 0x18a8]
cdqe
lea rdx, [rax*8]
lea rax, [0x004870c0]
mov rax, qword [rdx + rax]
mov rcx, rax
call sym.puts
mov dword [rbp + 0x18a4], 0
jmp 0x401db8
mov dword [rbp + 0x18a0], 0
jmp 0x401da4
mov eax, dword [rbp + 0x18a8]
cdqe
lea rdx, [rax*8]
lea rax, [0x004870c0]
mov rdx, qword [rdx + rax]
mov eax, dword [rbp + 0x18a4]
cdqe
add rax, rdx
movzx edx, byte [rax]
mov eax, dword [rbp + 0x18a0]
cdqe
movzx eax, byte [rbp + rax - 0x60]
cmp dl, al
jne 0x401d9d
mov eax, dword [rbp + 0x18a8]
cdqe
lea rdx, [rax*8]
lea rax, [0x004870c0]
mov rdx, qword [rdx + rax]
mov eax, dword [rbp + 0x18a4]
cdqe
add rdx, rax
mov eax, dword [rbp + 0x18a0]
cdqe
movzx eax, byte [rbp + rax - 0x30]
mov byte [rdx], al
jmp 0x401db1
add dword [rbp + 0x18a0], 1
cmp dword [rbp + 0x18a0], 0x23
jle 0x401d2c
add dword [rbp + 0x18a4], 1
mov eax, dword [rbp + 0x18a8]
cdqe
lea rdx, [rax*8]
lea rax, [0x004870c0]
mov rdx, qword [rdx + rax]
mov eax, dword [rbp + 0x18a4]
cdqe
add rax, rdx
movzx eax, byte [rax]
test al, al
jne 0x401d20
add dword [rbp + 0x18a8], 1
cmp dword [rbp + 0x18a8], 6
jle 0x401cee
mov rax, qword [0x004870e8]
mov rdx, rax
lea rcx, str.qInv_s_n
call sym.printf
lea rax, [rbp + 0x40]
lea rdx, [0x0046f01c]
mov rcx, rax
call sym.fopen
mov qword [rbp + 0x1878], rax
cmp qword [rbp + 0x1878], 0
jne 0x401e4d
lea rcx, str.Cannot_open_source_binary_file_
call sym.printf
mov ebx, 0xffffffff
jmp 0x4021c0
mov rax, qword [rbp + 0x1878]
mov r8d, 2
mov edx, 0
mov rcx, rax
call sym.fseek
mov rax, qword [rbp + 0x1878]
mov rcx, rax
call sym.ftell
mov dword [rbp + 0x1874], eax
mov rax, qword [rbp + 0x1878]
mov rcx, rax
call sym.rewind
lea rax, [rbp + 0x1866]
mov rcx, rax
call fcn.00444ed0
mov byte [rbp + 0x1867], 0
mov eax, dword [rbp + 0x1874]
movsxd rdx, eax
lea r8, [rbp + 0x1866]
lea rcx, [rbp + 0x1867]
lea rax, [rbp + 0x1840]
mov r9, r8
mov r8, rcx
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector_unsigned_long_long__unsigned_char_const__std::allocator_unsigned_char__const_
lea rax, [rbp + 0x1866]
mov rcx, rax
call sym.std::allocator_unsigned_char_::allocator__
mov eax, dword [rbp + 0x1874]
movsxd rbx, eax
lea rax, [rbp + 0x1840]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.data__
mov rcx, rax
mov rax, qword [rbp + 0x1878]
mov r9, rax
mov r8, rbx
mov edx, 1
call sym.fread
mov dword [rbp + 0x189c], 0
jmp 0x4020b7
mov dword [rbp + 0x1898], 0
jmp 0x4020a3
mov eax, dword [rbp + 0x189c]
movsxd rbx, eax
mov eax, dword [rbp + 0x1898]
cdqe
lea rdx, [rax*8]
lea rax, [0x00487040]
mov rax, qword [rdx + rax]
mov rcx, rax
call sym.strlen
lea rdx, [rbx + rax]
mov eax, dword [rbp + 0x1874]
cdqe
cmp rdx, rax
jbe 0x401f6e
jmp 0x40209c
mov dword [rbp + 0x1894], 1
mov dword [rbp + 0x1890], 0
jmp 0x401ff2
mov edx, dword [rbp + 0x189c]
mov eax, dword [rbp + 0x1890]
add eax, edx
movsxd rdx, eax
lea rax, [rbp + 0x1840]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.operator___unsigned_long_long_
movzx eax, byte [rax]
movzx edx, al
mov eax, dword [rbp + 0x1898]
cdqe
lea rcx, [rax*8]
lea rax, [0x00487040]
mov rcx, qword [rcx + rax]
mov eax, dword [rbp + 0x1890]
cdqe
add rax, rcx
movzx eax, byte [rax]
movsx eax, al
cmp edx, eax
setne al
test al, al
je 0x401feb
mov dword [rbp + 0x1894], 0
jmp 0x402027
add dword [rbp + 0x1890], 1
mov eax, dword [rbp + 0x1890]
movsxd rbx, eax
mov eax, dword [rbp + 0x1898]
cdqe
lea rdx, [rax*8]
lea rax, [0x00487040]
mov rax, qword [rdx + rax]
mov rcx, rax
call sym.strlen
cmp rbx, rax
jb 0x401f84
cmp dword [rbp + 0x1894], 0
je 0x40209c
mov eax, dword [rbp + 0x1898]
cdqe
lea rdx, [rax*8]
lea rax, [0x004870c0]
mov rax, qword [rdx + rax]
mov rcx, rax
call sym.strlen
mov rsi, rax
mov eax, dword [rbp + 0x1898]
cdqe
lea rdx, [rax*8]
lea rax, [0x004870c0]
mov rbx, qword [rdx + rax]
lea rax, [rbp + 0x1840]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.data__
mov rdx, rax
mov eax, dword [rbp + 0x189c]
cdqe
add rax, rdx
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call sym.memcpy
add dword [rbp + 0x1898], 1
cmp dword [rbp + 0x1898], 6
jle 0x401f2c
add dword [rbp + 0x189c], 1
mov eax, dword [rbp + 0x189c]
cmp eax, dword [rbp + 0x1874]
jl 0x401f1d
mov rax, qword [rbp + 0x1878]
mov rcx, rax
call sym.fclose
mov rax, rbp
movabs rsi, 0x5f657361656c6572
mov qword [rax], rsi
mov byte [rax + 8], 0
lea rdx, [rbp - 0x30]
mov rax, rbp
mov rcx, rax
call sym.strcat
mov rax, rbp
mov rcx, 0xffffffffffffffff
mov rdx, rax
mov eax, 0
mov rdi, rdx
repne scasb al, byte [rdi]
mov rax, rcx
not rax
lea rdx, [rax - 1]
mov rax, rbp
add rax, rdx
mov dword [rax], 0x6578652e
mov byte [rax + 4], 0
mov rax, rbp
lea rdx, [0x0046fea8]
mov rcx, rax
call sym.fopen
mov qword [rbp + 0x1868], rax
cmp qword [rbp + 0x1868], 0
jne 0x402162
lea rcx, str.Cannot_write_file_
call sym.printf
mov ebx, 0xffffffff
jmp 0x4021b1
lea rax, [rbp + 0x1840]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.size___const
mov rbx, rax
lea rax, [rbp + 0x1840]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.data__
mov rcx, rax
mov rax, qword [rbp + 0x1868]
mov r9, rax
mov r8, rbx
mov edx, 1
call sym.fwrite
mov rax, qword [rbp + 0x1868]
mov rcx, rax
call sym.fclose
mov ebx, 0
lea rax, [rbp + 0x1840]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector__
mov eax, ebx
jmp 0x4021fe
add rsp, 0x1938
pop rbx
pop rsi
pop rdi
pop rbp
ret