Function at 0x41d0b3
Capabilities:
Check if file exists
Get file attributes
Get file size
Move file
Read file on windows
Set file attributes

Disassembly:
push 0x238
mov eax, 0x46b77e
call fcn.004676d8
mov edi, ecx
mov dword [ebp - 0xcc], edi
lea esi, [edi + 8]
cmp dword [esi + 0x14], 8
jb 0x41d0d7
mov eax, dword [esi]
jmp 0x41d0d9
mov eax, esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push eax
call ebx
cmp eax, 0xffffffff
jne 0x41d11a
add edi, 0x20
cmp dword [edi + 0x14], 8
jb 0x41d0f4
mov eax, dword [edi]
jmp 0x41d0f6
mov eax, edi
push eax
call ebx
cmp eax, 0xffffffff
je 0x41d11a
cmp dword [esi + 0x14], 8
jb 0x41d108
mov eax, dword [esi]
jmp 0x41d10a
mov eax, esi
cmp dword [edi + 0x14], 8
jb 0x41d112
mov edi, dword [edi]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
cmp dword [esi + 0x14], 8
jb 0x41d124
mov eax, dword [esi]
jmp 0x41d126
mov eax, esi
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov ecx, esi
call fcn.0041ced5
mov edi, eax
push ecx
lea ecx, [ebp - 0x194]
mov dword [ebp - 0xc8], edi
call fcn.00422989
push ecx
push ecx
xor ebx, ebx
lea ecx, [ebp - 0x244]
mov dword [ebp - 4], ebx
call fcn.004222e5
mov dword [ebp - 0x48], 0xf
mov dword [ebp - 0x4c], ebx
mov byte [ebp - 0x5c], bl
push 7
pop ecx
xor eax, eax
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x44], ax
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], ebx
mov word [ebp - 0x2c], ax
mov dword [ebp - 0xa8], ecx
mov dword [ebp - 0xac], ebx
mov word [ebp - 0xbc], ax
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x94], ebx
mov word [ebp - 0xa4], ax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x7c], ebx
mov word [ebp - 0x8c], ax
mov byte [ebp - 4], cl
push 2
pop eax
test edi, edi
jne 0x41d281
cmp dword [esi + 0x14], 8
jb 0x41d1ce
mov esi, dword [esi]
push ecx
xor ebx, ebx
lea ecx, [ebp - 0x194]
inc ebx
push ebx
push esi
call fcn.0042354b
mov eax, dword [ebp - 0x194]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x188], 6
jne 0x41d94c
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x194]
call fcn.00423b8f
mov esi, dword [ebp - 0x4c]
push 2
pop edx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax + 0xc]
and al, 6
neg al
sbb al, al
inc esi
inc al
xor ecx, ecx
mov dword [ebp - 0xc0], eax
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004665c2
pop ecx
lea ecx, [esi + esi]
mov edi, eax
push ecx
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae ecx, dword [ebp - 0x5c]
push esi
push edi
push dword [ebp - 0x4c]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, edi
call fcn.00405fc5
push eax
push edi
lea ecx, [ebp - 0x2c]
call fcn.00406202
push edi
call fcn.004665cb
pop ecx
xor edi, edi
jmp 0x41d4c6
xor ebx, ebx
inc ebx
cmp edi, ebx
jne 0x41d3c3
cmp dword [esi + 0x14], 8
jb 0x41d294
mov esi, dword [esi]
xor edi, edi
push edi
push 0x80
push 3
push edi
push ecx
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xc0], eax
cmp eax, 0xffffffff
je 0x41d94c
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd4], edi
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test esi, esi
je 0x41d330
lea ecx, [esi + 2]
push ecx
call fcn.004665c2
mov edi, eax
xor eax, eax
pop ecx
push eax
mov word [edi + esi], ax
mov dword [ebp - 0xd0], eax
lea eax, [ebp - 0xd0]
push eax
push esi
mov esi, dword [ebp - 0xc0]
push edi
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x41d325
push 0x423d39
push ecx
lea edx, [edi + 2]
lea ecx, [ebp - 0x234]
call fcn.00409102
pop ecx
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______thiscall_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t_______cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t_____]
push edi
call fcn.004665cb
pop ecx
xor edi, edi
jmp 0x41d336
mov esi, dword [ebp - 0xc0]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x244]
lea ecx, [ebp - 0x244]
push 0xa
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_wchar_t___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::widen_char_const]
movzx eax, ax
lea edx, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x244]
call fcn.00425630
pop ecx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax + 0xc]
and al, 6
neg al
sbb al, al
inc al
cmp dword [ebp - 0x34], 0
mov byte [ebp - 0xc0], al
je 0x41d4b7
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
mov ecx, 0xfeff
cmovae eax, dword [ebp - 0x44]
cmp word [eax], cx
jne 0x41d4b7
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0042221c
jmp 0x41d4b7
cmp edi, eax
jne 0x41d92b
cmp dword [esi + 0x14], 8
jb 0x41d3d3
mov esi, dword [esi]
push ecx
push ebx
push esi
lea ecx, [ebp - 0x194]
call fcn.0042354b
mov eax, dword [ebp - 0x194]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x188], 6
jne 0x41d94c
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x194]
call fcn.00423b8f
mov esi, dword [ebp - 0x4c]
push 2
pop edx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax + 0xc]
and al, 6
neg al
sbb al, al
inc esi
inc al
xor ecx, ecx
mov byte [ebp - 0xc0], al
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004665c2
pop ecx
lea ecx, [esi + esi]
mov edi, eax
push ecx
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae ecx, dword [ebp - 0x5c]
push esi
push edi
push dword [ebp - 0x4c]
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, edi
call fcn.00405fc5
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.00406202
cmp dword [ebp - 0x34], 0
je 0x41d4ae
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
mov ecx, 0xfeff
cmovae eax, dword [ebp - 0x44]
cmp word [eax], cx
jne 0x41d4ae
cmp dword [ebp - 0x30], 8
lea eax, [ebp - 0x44]
lea ecx, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0042221c
push edi
call fcn.004665cb
pop ecx
xor edi, edi
push 0xffffffffffffffff
push edi
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040631c
mov eax, dword [ebp - 0xc0]
test al, al
je 0x41d925
cmp dword [ebp - 0x1c], 0
je 0x41d5f4
push 9
lea eax, [ebp - 0x2c]
push eax
call fcn.0041e16e
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 0x2c]
mov edx, dword [ebp - 0x2c]
cmp ecx, 8
mov esi, dword [ebp - 0x1c]
cmovae eax, edx
cmp word [eax + esi*2 - 2], 0xd
jne 0x41d52d
lea eax, [esi - 1]
push eax
push edi
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004220c4
push eax
lea ecx, [ebp - 0x2c]
call fcn.00407877
push edi
push ebx
lea ecx, [ebp - 0x74]
call fcn.004061ab
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x2c]
cmp dword [ebp - 0x1c], 0
je 0x41d5ee
cmp ecx, 8
lea eax, [ebp - 0x2c]
cmovae eax, edx
movzx eax, word [eax]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_iswprint]
pop ecx
test eax, eax
je 0x41d8f4
push ecx
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00422172
mov esi, eax
cmp esi, 0xffffffff
je 0x41d5ee
cmp dword [ebp - 0x18], 8
lea ecx, [ebp - 0x2c]
cmovae ecx, dword [ebp - 0x2c]
movzx ecx, word [ecx + esi*2]
sub ecx, 0x23
je 0x41d76f
push 0x18
pop eax
sub ecx, eax
je 0x41d76f
push 2
pop edx
sub ecx, edx
je 0x41d68e
sub ecx, 0x1e
jne 0x41d7d7
push ecx
push ecx
lea ecx, [ebp - 0x2c]
call fcn.004220f7
cmp eax, 0xffffffff
je 0x41d5ee
cmp eax, esi
jbe 0x41d5ee
sub eax, esi
lea ecx, [ebp - 0x2c]
dec eax
push eax
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.004220c4
push eax
lea ecx, [ebp - 0xbc]
call fcn.00407877
push edi
push ebx
lea ecx, [ebp - 0x74]
call fcn.004061ab
mov ecx, dword [ebp - 0xcc]
lea eax, [ebp - 0xbc]
push eax
call fcn.0041dd8e
mov eax, dword [ebp - 0xc0]
push 2
pop edx
mov edi, dword [ebp - 0xc8]
test edi, edi
jne 0x41d7e2
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x194]
call fcn.00423b8f
mov esi, dword [ebp - 0x4c]
push 2
pop edx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax + 0xc]
and al, 6
neg al
sbb al, al
inc esi
inc al
xor ecx, ecx
mov byte [ebp - 0xc0], al
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004665c2
pop ecx
lea ecx, [esi + esi]
mov edi, eax
push ecx
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae ecx, dword [ebp - 0x5c]
push esi
push edi
push dword [ebp - 0x4c]
push ecx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, edi
call fcn.00405fc5
push eax
push edi
lea ecx, [ebp - 0x2c]
call fcn.00406202
push edi
call fcn.004665cb
pop ecx
jmp 0x41d8dd
push esi
push edi
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004220c4
push eax
lea ecx, [ebp - 0xa4]
call fcn.00407877
push edi
push ebx
lea ecx, [ebp - 0x74]
call fcn.004061ab
push 0xffffffffffffffff
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004220c4
push eax
lea ecx, [ebp - 0x8c]
call fcn.00407877
push edi
push ebx
lea ecx, [ebp - 0x74]
call fcn.004061ab
push 0x20
pop esi
push esi
lea eax, [ebp - 0xa4]
push eax
call fcn.0041e16e
push esi
lea eax, [ebp - 0xa4]
push eax
call fcn.0041e1af
push 9
lea eax, [ebp - 0xa4]
push eax
call fcn.0041e16e
push 9
lea eax, [ebp - 0xa4]
push eax
call fcn.0041e1af
push esi
lea eax, [ebp - 0x8c]
push eax
call fcn.0041e16e
push esi
lea eax, [ebp - 0x8c]
push eax
call fcn.0041e1af
push 9
lea eax, [ebp - 0x8c]
push eax
call fcn.0041e16e
push 9
lea eax, [ebp - 0x8c]
push eax
call fcn.0041e1af
push ecx
mov ecx, dword [ebp - 0xcc]
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xbc]
push eax
call fcn.0041dfbe
jmp 0x41d5ee
mov edi, dword [ebp - 0xcc]
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
lea eax, [ebp - 0x74]
cmp dword [edi + 0x3c], 0
lea ecx, [ebp - 0x2c]
push eax
jne 0x41d7bd
call fcn.004220c4
mov esi, eax
lea ecx, [edi + 0x40]
mov byte [ebp - 4], 8
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
push 0x18
pop edi
cdq
idiv edi
push esi
inc eax
push eax
call fcn.00421fdc
push 0
push ebx
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 7
call fcn.004061ab
jmp 0x41d5ee
call fcn.004220c4
push eax
lea eax, [ebp - 0xbc]
mov byte [ebp - 4], 9
push eax
mov ecx, edi
call fcn.0041e0d3
jmp 0x41d7a9
mov eax, dword [ebp - 0xc0]
jmp 0x41d5f7
cmp edi, ebx
jne 0x41d83e
mov eax, dword [ebp - 0x244]
lea ecx, [ebp - 0x244]
push 0xa
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_wchar_t___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::widen_char_const]
movzx eax, ax
lea edx, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x244]
call fcn.00425630
pop ecx
push 0xffffffffffffffff
push 0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax + 0xc]
lea ecx, [ebp - 0x2c]
and al, 6
neg al
sbb al, al
inc al
mov byte [ebp - 0xc0], al
lea eax, [ebp - 0x44]
push eax
call fcn.0040631c
jmp 0x41d8e3
cmp edi, edx
jne 0x41d8e9
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x194]
call fcn.00423b8f
mov esi, dword [ebp - 0x4c]
push 2
pop edx
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov eax, dword [ecx + eax + 0xc]
and al, 6
neg al
sbb al, al
inc esi
inc al
xor ecx, ecx
mov byte [ebp - 0xc0], al
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004665c2
pop ecx
lea ecx, [esi + esi]
mov edi, eax
push ecx
push 0
push edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
cmovae ecx, dword [ebp - 0x5c]
push esi
push edi
push dword [ebp - 0x4c]
push ecx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, edi
call fcn.00405fc5
push eax
push edi
lea ecx, [ebp - 0x44]
call fcn.00406202
push edi
call fcn.004665cb
pop ecx
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040631c
mov edi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc0]
test al, al
je 0x41d92b
xor edi, edi
jmp 0x41d4d4
cmp dword [ebp - 0x18], 8
lea eax, [ebp - 0x2c]
cmovae eax, dword [ebp - 0x2c]
movzx eax, word [eax]
push eax
push str.Failing_on_char__d_n
call fcn.0041cbc8
cmp dword [ebp - 0xc8], 0
pop ecx
pop ecx
jne 0x41d94c
lea ecx, [ebp - 0x194]
call fcn.00422938
jmp 0x41d94c
mov edi, dword [ebp - 0xc8]
test edi, edi
jne 0x41d93a
lea ecx, [ebp - 0x194]
call fcn.00422938
mov eax, dword [ebp - 0xcc]
mov byte [ebp - 0xc1], bl
cmp dword [eax + 0x3c], 0
jne 0x41d953
mov byte [ebp - 0xc1], 0
push 0
push ebx
lea ecx, [ebp - 0x8c]
call fcn.004061ab
xor esi, esi
lea ecx, [ebp - 0xa4]
push esi
push ebx
call fcn.004061ab
push esi
push ebx
lea ecx, [ebp - 0xbc]
call fcn.004061ab
push esi
push ebx
lea ecx, [ebp - 0x2c]
call fcn.004061ab
push esi
push ebx
lea ecx, [ebp - 0x44]
call fcn.004061ab
push esi
push ebx
lea ecx, [ebp - 0x5c]
call fcn.00401c5e
lea ecx, [ebp - 0x1dc]
call fcn.004222b5
lea ecx, [ebp - 0x1dc]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_wchar_t__struct_std::char_traits_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x11c]
call fcn.00422959
lea ecx, [ebp - 0x11c]
call dword [sym.imp.MSVCP140.dll_public_virtual:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::destructor_void_]
mov al, byte [ebp - 0xc1]
call fcn.00467682
ret 4