Function at 0x4015fd
Capabilities:
Write file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push esi
push ebx
push ecx
sub esp, 0x1cc
mov ebx, ecx
call dbg.__main
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x1d], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0x4f8f80
lea eax, [ebp - 0x178]
mov ecx, eax
call fcn.004bdf30
mov dword [ebp - 0x2c], 1
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebx]
jge 0x40197c
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4fa04c
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x401748
mov eax, dword [ebp - 0x2c]
add eax, 1
cmp dword [ebx], eax
jle 0x401710
add dword [ebp - 0x2c], 1
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x178]
mov dword [esp + 4], 0x10
mov edx, dword [ebp - 0x30]
mov dword [esp], edx
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.open_char_const__std::_Ios_Openmode_
sub esp, 8
lea eax, [ebp - 0x178]
add eax, 0x70
mov ecx, eax
call method.std::basic_ios_char__std::char_traits_char___.fail___const
test al, al
je 0x401702
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov edx, dword [ebp - 0x30]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Error_opening_file__s_for_writing_n
mov dword [esp], eax
call fcn.004015d0
mov esi, 1
jmp 0x401d0f
lea eax, [ebp - 0x178]
mov dword [ebp - 0x28], eax
jmp 0x401973
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x20
mov dword [esp + 4], 1
mov dword [esp], str.Option__o_requires_a_filename_n
call sym._fwrite
mov esi, 1
jmp 0x401d0f
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4fa099
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x401776
mov byte [ebp - 0x1d], 1
jmp 0x401973
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4fa09c
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x4017fa
mov eax, dword [ebp - 0x2c]
add eax, 1
cmp dword [ebx], eax
jle 0x4017c2
add dword [ebp - 0x2c], 1
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
jmp 0x401973
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x1f
mov dword [esp + 4], 1
mov dword [esp], str.Option__v_requires_a_version_n
call sym._fwrite
mov esi, 1
jmp 0x401d0f
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], str.__help
mov dword [esp], eax
call sym._strcmp
test eax, eax
je 0x401848
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [esp + 4], 0x4fa0c7
mov dword [esp], eax
call sym._strcmp
test eax, eax
jne 0x40195f
mov eax, dword [ebx + 4]
mov ebx, dword [eax]
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Usage:___s__options__input.pyc_n_n
mov dword [esp], eax
call fcn.004015d0
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 9
mov dword [esp + 4], 1
mov dword [esp], str.Options:_n
call sym._fwrite
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x3e
mov dword [esp + 4], 1
mov dword [esp], str.___o__filename___Write_output_to__filename___default:_stdout__n
call sym._fwrite
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x58
mov dword [esp + 4], 1
mov dword [esp], str.___c_____________Specify_loading_a_compiled_code_object._Requires_the_version_to_be_set_n
call sym._fwrite
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x4d
mov dword [esp + 4], 1
mov dword [esp], str.___v__x.y________Specify_a_Python_version_for_loading_a_compiled_code_object_n
call sym._fwrite
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x33
mov dword [esp + 4], 1
mov dword [esp], str.____help_________Show_this_help_text_and_then_exit_n
call sym._fwrite
mov esi, 0
jmp 0x401d0f
mov eax, dword [ebp - 0x2c]
lea edx, [eax*4]
mov eax, dword [ebx + 4]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
add dword [ebp - 0x2c], 1
jmp 0x401647
cmp dword [ebp - 0x1c], 0
jne 0x4019ba
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x18
mov dword [esp + 4], 1
mov dword [esp], str.No_input_file_specified_n
call sym._fwrite
mov esi, 1
jmp 0x401d0f
lea eax, [ebp - 0x1a0]
mov ecx, eax
call fcn.0044ce14
movzx eax, byte [ebp - 0x1d]
xor eax, 1
test al, al
je 0x4019ed
lea eax, [ebp - 0x1a0]
mov edx, dword [ebp - 0x1c]
mov dword [esp], edx
mov ecx, eax
call method.PycModule.loadFromFile_char_const_
sub esp, 4
jmp 0x401bcd
cmp dword [ebp - 0x24], 0
jne 0x401a2b
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x3c
mov dword [esp + 4], 1
mov dword [esp], str.Opening_raw_code_objects_requires_a_version_to_be_specified_n
call sym._fwrite
mov esi, 1
jmp 0x401d01
lea eax, [ebp - 0x7d]
mov ecx, eax
call fcn.00497a50
lea eax, [ebp - 0x1b8]
lea edx, [ebp - 0x7d]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x24]
mov dword [esp], edx
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
sub esp, 8
lea eax, [ebp - 0x7d]
mov ecx, eax
call sym.std::allocator_char_::allocator__
lea eax, [ebp - 0x1b8]
mov dword [esp + 4], 0
mov dword [esp], 0x2e
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.find_char__unsigned_int__const
sub esp, 8
mov dword [ebp - 0x34], eax
cmp dword [ebp - 0x34], 0xffffffff
je 0x401a99
lea eax, [ebp - 0x1b8]
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.size___const
sub eax, 1
cmp dword [ebp - 0x34], eax
jne 0x401aa0
mov eax, 1
jmp 0x401aa5
mov eax, 0
test al, al
je 0x401ae6
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x34
mov dword [esp + 4], 1
mov dword [esp], str.Unable_to_parse_version_string__use_the_format_x.y__n
call sym._fwrite
mov esi, 1
mov ebx, 0
jmp 0x401bb7
lea eax, [ebp - 0x7c]
mov edx, dword [ebp - 0x34]
mov dword [esp + 8], edx
mov dword [esp + 4], 0
lea edx, [ebp - 0x1b8]
mov dword [esp], edx
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_int__unsigned_int__const
sub esp, 0xc
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call method.std::__cxx11.stoi_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__unsigned_int__int_
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x7c]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x1b8]
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.size___const
mov edx, eax
mov eax, dword [ebp - 0x34]
lea ecx, [eax + 1]
lea eax, [ebp - 0x64]
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
lea edx, [ebp - 0x1b8]
mov dword [esp], edx
mov ecx, eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.substr_unsigned_int__unsigned_int__const
sub esp, 0xc
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
lea eax, [ebp - 0x64]
mov dword [esp], eax
call method.std::__cxx11.stoi_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__unsigned_int__int_
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x64]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea eax, [ebp - 0x1a0]
mov edx, dword [ebp - 0x3c]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x38]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x1c]
mov dword [esp], edx
mov ecx, eax
call method.PycModule.loadFromMarshalledFile_char_const__int__int_
sub esp, 0xc
mov ebx, 1
lea eax, [ebp - 0x1b8]
mov ecx, eax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
cmp ebx, 1
jne 0x401d01
lea eax, [ebp - 0x1a0]
mov ecx, eax
call method.PycModule.isValid___const
xor eax, 1
test al, al
je 0x401c10
mov dword [esp], 2
mov eax, dword [dbg.__acrt_iob_func]
call eax
mov edx, dword [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp + 4], str.Could_not_load_file__s_n
mov dword [esp], eax
call fcn.004015d0
mov esi, 1
jmp 0x401d02
mov dword [esp + 4], 0x5c
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym._strrchr
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0
je 0x401c34
mov eax, dword [ebp - 0x44]
add eax, 1
jmp 0x401c37
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
mov dword [esp + 4], str._Source_Generated_with_Decompyle_n
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea eax, [ebp - 0x1a0]
mov ecx, eax
call method.PycModule.majorVer___const
cmp eax, 2
jg 0x401c77
lea eax, [ebp - 0x1a0]
mov ecx, eax
call method.PycModule.isUnicode___const
test al, al
je 0x401c77
mov esi, str._Unicode
jmp 0x401c7c
mov esi, 0x4fa2f2
lea eax, [ebp - 0x1a0]
mov ecx, eax
call method.PycModule.minorVer___const
mov ebx, eax
lea eax, [ebp - 0x1a0]
mov ecx, eax
call method.PycModule.majorVer___const
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov dword [esp + 4], str._File:__s__Python__d._d_s__n_n
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call sym.formatted_print_std::ostream__char_const__..._
lea eax, [ebp - 0x4c]
lea edx, [ebp - 0x1a0]
mov dword [esp], edx
mov ecx, eax
call method.PycModule.code___const
sub esp, 4
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
lea eax, [ebp - 0x1a0]
mov dword [esp + 4], eax
lea eax, [ebp - 0x4c]
mov dword [esp], eax
call sym.decompyle_PycRef_PycCode___PycModule__std::ostream_
lea eax, [ebp - 0x4c]
mov ecx, eax
call method.PycRef_PycCode_.PycRef__
mov esi, 0
jmp 0x401d02
nop
lea eax, [ebp - 0x1a0]
mov ecx, eax
call method.PycModule.PycModule__
lea eax, [ebp - 0x178]
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
mov eax, esi
jmp 0x401e70
lea esp, [ebp - 0xc]
pop ecx
pop ebx
pop esi
pop ebp
lea esp, [ecx - 4]
ret