Function at 0x462250
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49fb28
mov eax, dword fs:[0]
push eax
mov eax, 0x10bd0
call fcn.0049cc20
mov eax, dword [0x4b4d40]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
movzx eax, byte [0x4b4edf]
test eax, eax
je 0x462844
mov ecx, dword [0x4a69e8]
mov dword [ebp - 0x934], ecx
mov dx, word [0x4a69ec]
mov word [ebp - 0x930], dx
call fcn.004283d0
push eax
push str.local_hs_textlocal.xml
lea eax, [ebp - 0xb34]
push eax
call fcn.00429460
add esp, 0xc
push 0x4a6a24
lea ecx, [ebp - 0xb34]
push ecx
call dword [sym.imp.MSVCR90.dll__wfopen]
add esp, 8
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
je 0x46255d
push 0xa
push 0
lea edx, [ebp - 0xb40]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x128]
push eax
push 2
push 1
lea ecx, [ebp - 0xb40]
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
mov edx, dword [0x4a6a2c]
mov dword [ebp - 0xb48], edx
mov ax, word [0x4a6a30]
mov word [ebp - 0xb44], ax
mov ecx, dword [ebp - 0x128]
push ecx
push 0x400
lea edx, [ebp - 0x92c]
push edx
call dword [sym.imp.MSVCR90.dll_fgetws]
add esp, 0xc
test eax, eax
je 0x462548
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
cmp eax, 2
jbe 0x462548
push str._english_
lea ecx, [ebp - 0x92c]
push ecx
call fcn.00463170
add esp, 8
test eax, eax
je 0x462543
push 0x3c
call fcn.0049cc04
add esp, 4
mov dword [ebp - 0x10bb8], eax
mov dword [ebp - 4], 0
cmp dword [ebp - 0x10bb8], 0
je 0x4623bd
mov ecx, dword [ebp - 0x10bb8]
call fcn.00463110
mov dword [ebp - 0x10bd4], eax
jmp 0x4623c7
mov dword [ebp - 0x10bd4], 0
mov edx, dword [ebp - 0x10bd4]
mov dword [ebp - 0x10bb4], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10bb4]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov byte [ecx + 0x38], 0
lea edx, [ebp - 0xb48]
push edx
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.MSVCR90.dll_wcstok]
add esp, 8
mov dword [ebp - 0x124], eax
lea ecx, [ebp - 0xb48]
push ecx
push 0
call dword [sym.imp.MSVCR90.dll_wcstok]
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x4624ba
mov edx, dword [ebp - 0x124]
push edx
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_unsigned_short_int_const__]
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
test eax, eax
jbe 0x4624ba
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
sub eax, 1
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
movzx eax, word [eax]
cmp eax, 0x20
jne 0x4624ba
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
sub eax, 1
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
xor ecx, ecx
mov word [eax], cx
jmp 0x462445
mov edx, dword [ebp - 0x128]
push edx
push 0x400
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.MSVCR90.dll_fgetws]
add esp, 0xc
lea ecx, [ebp - 0xb48]
push ecx
lea edx, [ebp - 0x92c]
push edx
call dword [sym.imp.MSVCR90.dll_wcstok]
add esp, 8
mov dword [ebp - 0x124], eax
lea eax, [ebp - 0xb48]
push eax
push 0
call dword [sym.imp.MSVCR90.dll_wcstok]
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x46252a
mov ecx, dword [ebp - 0x124]
push ecx
mov ecx, dword [ebp - 0x12c]
add ecx, 0x1c
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_unsigned_short_int_const__]
mov edx, dword [ebp - 0x12c]
push edx
mov ecx, 0x4b4fbc
call fcn.004634a0
mov ecx, dword [ebp - 0x12c]
mov dword [eax], ecx
jmp 0x462331
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
jmp 0x462ac8
call fcn.004283d0
push eax
push str.local_hs_textlocal.txt
lea eax, [ebp - 0xb34]
push eax
call fcn.00429460
add esp, 0xc
push 0x4a6a7c
lea ecx, [ebp - 0xb34]
push ecx
call dword [sym.imp.MSVCR90.dll__wfopen]
add esp, 8
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0
jne 0x4625a0
jmp 0x462ac8
push 0xa
push 0
lea edx, [ebp - 0x120]
push edx
call sub.MSVCR90.dll_memset
add esp, 0xc
mov eax, dword [ebp - 0x128]
push eax
push 2
push 1
lea ecx, [ebp - 0x120]
push ecx
call dword [sym.imp.MSVCR90.dll_fread]
add esp, 0x10
mov edx, dword [ebp - 0x128]
push edx
push 0x400
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.MSVCR90.dll_fgetws]
add esp, 0xc
test eax, eax
je 0x46282f
lea ecx, [ebp - 0x92c]
push ecx
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
cmp eax, 2
jbe 0x46282f
push 0x3c
call fcn.0049cc04
add esp, 4
mov dword [ebp - 0x10bc0], eax
mov dword [ebp - 4], 1
cmp dword [ebp - 0x10bc0], 0
je 0x46263e
mov ecx, dword [ebp - 0x10bc0]
call fcn.00463110
mov dword [ebp - 0x10bd8], eax
jmp 0x462648
mov dword [ebp - 0x10bd8], 0
mov edx, dword [ebp - 0x10bd8]
mov dword [ebp - 0x10bbc], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10bbc]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x12c]
mov byte [ecx + 0x38], 0
lea edx, [ebp - 0x934]
push edx
lea eax, [ebp - 0x92c]
push eax
call dword [sym.imp.MSVCR90.dll_wcstok]
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x4627da
mov ecx, dword [ebp - 0x124]
movzx edx, word [ecx]
cmp edx, 0x22
jne 0x462748
mov eax, dword [ebp - 0x124]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
mov ecx, dword [ebp - 0x124]
movzx edx, word [ecx + eax*2 - 2]
cmp edx, 0x22
jne 0x462748
mov eax, dword [ebp - 0x124]
add eax, 2
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy]
add esp, 8
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
sub eax, 1
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
movzx ecx, word [eax]
cmp ecx, 0x22
jne 0x462746
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
sub eax, 1
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
xor edx, edx
mov word [eax], dx
jmp 0x462765
mov eax, dword [ebp - 0x124]
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcscpy]
add esp, 8
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
test eax, eax
jbe 0x4627da
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
sub eax, 1
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
movzx ecx, word [eax]
cmp ecx, 0x20
jne 0x4627da
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_protected:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Myptr_void_]
push eax
call dword [sym.imp.MSVCR90.dll_wcslen]
add esp, 4
sub eax, 1
push eax
mov ecx, dword [ebp - 0x12c]
call dword [sym.imp.MSVCP90.dll_public:_unsigned_short_int____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator___unsigned_int_]
xor edx, edx
mov word [eax], dx
jmp 0x462765
lea eax, [ebp - 0x934]
push eax
push 0
call dword [sym.imp.MSVCR90.dll_wcstok]
add esp, 8
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x462811
mov ecx, dword [ebp - 0x124]
push ecx
mov ecx, dword [ebp - 0x12c]
add ecx, 0x1c
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int______thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::operator_unsigned_short_int_const__]
mov edx, dword [ebp - 0x12c]
push edx
mov ecx, 0x4b4fbc
call fcn.004634a0
mov ecx, dword [ebp - 0x12c]
mov dword [eax], ecx
jmp 0x4625ce
mov edx, dword [ebp - 0x128]
push edx
call dword [sym.imp.MSVCR90.dll_fclose]
add esp, 4
jmp 0x462ac8
call fcn.004283d0
push eax
push str.local_s_textlocal.xml
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.MSVCR90.dll_sprintf]
add esp, 0xc
push 0x4a6a9c
lea ecx, [ebp - 0x114]
push ecx
call fcn.004155e0
add esp, 8
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x462ac8
mov edx, dword [ebp - 0x10]
push edx
call fcn.00415c70
add esp, 4
mov dword [ebp - 0xb54], eax
mov eax, dword [ebp - 0xb54]
add eax, 1
push eax
call fcn.0049cb7c
add esp, 4
mov dword [ebp - 0x10bc4], eax
mov ecx, dword [ebp - 0x10bc4]
mov dword [ebp - 0xb50], ecx
mov edx, dword [ebp - 0x10]
push edx
push 1
mov eax, dword [ebp - 0xb54]
push eax
mov ecx, dword [ebp - 0xb50]
push ecx
call fcn.004158f0
add esp, 0x10
mov dword [ebp - 0xb4c], eax
mov edx, dword [ebp - 0xb50]
add edx, dword [ebp - 0xb54]
mov byte [edx], 0
cmp dword [ebp - 0xb4c], 0
jle 0x462aa1
lea ecx, [ebp - 0x10b9c]
call fcn.00418120
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xb50]
push eax
lea ecx, [ebp - 0x10b9c]
call fcn.00419740
mov dword [ebp - 0x10ba8], 0
mov dword [ebp - 0x10ba4], 0
push 1
push 0
push str.text_file_report
lea ecx, [ebp - 0x10b9c]
call fcn.00418150
mov dword [ebp - 0x10ba4], eax
cmp dword [ebp - 0x10ba4], 0
je 0x462a8f
push 1
push 0
push 0x4a6ab4
mov ecx, dword [ebp - 0x10ba4]
call fcn.00418150
mov dword [ebp - 0x10ba8], eax
cmp dword [ebp - 0x10ba8], 0
je 0x462a8f
push 0x3c
call fcn.0049cc04
add esp, 4
mov dword [ebp - 0x10bcc], eax
mov byte [ebp - 4], 3
cmp dword [ebp - 0x10bcc], 0
je 0x4629aa
mov ecx, dword [ebp - 0x10bcc]
call fcn.00463220
mov dword [ebp - 0x10bdc], eax
jmp 0x4629b4
mov dword [ebp - 0x10bdc], 0
mov ecx, dword [ebp - 0x10bdc]
mov dword [ebp - 0x10bc8], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x10bc8]
mov dword [ebp - 0x10ba0], edx
mov eax, dword [ebp - 0x10ba0]
mov byte [eax + 0x38], 0
push 1
push 0
push str.english
mov ecx, dword [ebp - 0x10ba8]
call fcn.00418150
mov ecx, eax
call fcn.00418300
mov dword [ebp - 0x10bb0], eax
push 1
push 0
push str.translation
mov ecx, dword [ebp - 0x10ba8]
call fcn.00418150
mov ecx, eax
call fcn.00418300
mov dword [ebp - 0x10bac], eax
cmp dword [ebp - 0x10bb0], 0
je 0x462a70
cmp dword [ebp - 0x10bac], 0
je 0x462a70
mov ecx, dword [ebp - 0x10bb0]
push ecx
mov ecx, dword [ebp - 0x10ba0]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov edx, dword [ebp - 0x10bac]
push edx
mov ecx, dword [ebp - 0x10ba0]
add ecx, 0x1c
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov eax, dword [ebp - 0x10ba0]
push eax
mov ecx, 0x4b4f9c
call fcn.00463310
mov ecx, dword [ebp - 0x10ba0]
mov dword [eax], ecx
push 1
push 0
push str.item
mov ecx, dword [ebp - 0x10ba8]
call fcn.004181e0
mov dword [ebp - 0x10ba8], eax
jmp 0x46296d
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10b9c]
call fcn.00418040
mov edx, dword [ebp - 0x10]
push edx
call fcn.00415860
add esp, 4
mov eax, dword [ebp - 0xb50]
mov dword [ebp - 0x10bd0], eax
mov ecx, dword [ebp - 0x10bd0]
push ecx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0049cb8e
mov esp, ebp
pop ebp
ret