Function at 0x41dc70
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x10054
call fcn.00442810
mov eax, dword [0x468100]
xor eax, esp
mov dword [esp + 0x10050], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov esi, edx
push esi
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x34], ecx
push str.file_path_:__s
push str.Decrypt::DecryptFileToMemory
mov ebx, str.DecryptUtil
lea edi, [eax + 3]
lea ecx, [eax + 0x1a]
mov edx, str.R:TempViewMiscSetup3BackupDownloaderUtilDecryptUtil.cpp
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
call fcn.0040e5f0
add esp, 0xc
push 0
push 0x8000000
push edi
push 0
push edi
push closesocket
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x41dd20
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Open_file_failed__error_code_:__u
push str.Decrypt::DecryptFileToMemory
lea ecx, [edi + 0x23]
mov edx, str.R:TempViewMiscSetup3BackupDownloaderUtilDecryptUtil.cpp
call fcn.0040e5f0
jmp 0x41e00b
lea edx, [esp + 0x38]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x41dd5a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Get_file_size_failed__error_code_:__u
push str.Decrypt::DecryptFileToMemory
mov ebx, str.DecryptUtil
mov ecx, 0x2c
mov edx, str.R:TempViewMiscSetup3BackupDownloaderUtilDecryptUtil.cpp
call fcn.0040e5f0
jmp 0x41e00b
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x41dd86
push eax
push str.File_size_too_large__HighPart___u
push str.Decrypt::DecryptFileToMemory
mov ebx, str.DecryptUtil
mov ecx, 0x32
mov edx, str.R:TempViewMiscSetup3BackupDownloaderUtilDecryptUtil.cpp
call fcn.0040e5f0
jmp 0x41e00b
mov eax, dword [esp + 0x38]
push eax
mov dword [esp + 0x14], eax
xor edi, edi
call fcn.0043e1b9
mov ebx, eax
add esp, 4
mov dword [esp + 0x20], ebx
test ebx, ebx
jne 0x41ddb7
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x14], str.New_contents_failed
push 0x3b
jmp 0x41dfed
mov ecx, dword [esp + 0x10]
push ecx
push 0
push ebx
call fcn.00442420
add esp, 0xc
push 0
lea edx, [esp + 0x28]
push edx
push 0x10000
lea eax, [esp + 0x64]
push eax
push esi
mov dword [esp + 0x38], edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x41de21
mov eax, dword [esp + 0x24]
test eax, eax
je 0x41de21
push eax
lea ecx, [esp + 0x5c]
push ecx
lea edx, [edi + ebx]
push edx
call fcn.004424a0
add edi, dword [esp + 0x30]
add esp, 0xc
push 0
lea eax, [esp + 0x28]
push eax
push 0x10000
lea ecx, [esp + 0x64]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x41dde7
cmp edi, dword [esp + 0x10]
je 0x41de3b
lea edx, [esp + 0x10]
push edx
mov dword [esp + 0x14], str.pos___file_len
push 0x4f
jmp 0x41dfed
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movzx ebx, byte [ebx]
xor eax, eax
mov dword [esp + 0x49], eax
mov dword [esp + 0x4d], eax
mov dword [esp + 0x51], eax
mov word [esp + 0x55], ax
mov byte [esp + 0x57], al
mov eax, dword [esp + 0x10]
add eax, 0xfffffffc
xor esi, esi
mov byte [esp + 0x48], 0
mov dword [esp + 0x1c], ebx
cmp ebx, eax
ja 0x41dfde
cmp ebx, 0x80
ja 0x41dfde
push ebx
call fcn.0043e1b9
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
jne 0x41dea7
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x14], str.New_rsa_encrypt_failed
push 0x63
jmp 0x41dfed
mov edx, dword [esp + 0x20]
push ebx
add edx, 4
push edx
push eax
call fcn.004424a0
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x24]
add esp, 0xc
push eax
lea edi, [esp + 0x4c]
mov edx, ebx
mov dword [esp + 0x1c], 0x10
call fcn.0040c180
add esp, 4
test eax, eax
jne 0x41def0
lea ecx, [esp + 0x18]
push ecx
mov dword [esp + 0x1c], str.Decrypt_RSA_error
push 0x6c
jmp 0x41dfed
mov edi, dword [esp + 0x10]
sub edi, ebx
add edi, 0xfffffffc
mov dword [esp + 0x14], edi
jne 0x41df37
lea edx, [esp + 0x18]
push edx
push 0x72
push str.R:TempViewMiscSetup3BackupDownloaderUtilDecryptUtil.cpp
mov edx, 0x45a7a8
mov ebx, str.DecryptUtil
mov edi, 3
mov ecx, str.Decrypt::DecryptFileToMemory
mov dword [esp + 0x24], str.File_len_error
call fcn.00407520
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
add esp, 0xc
push edi
call fcn.0043e1b9
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
jne 0x41df5c
lea eax, [esp + 0x1c]
push eax
mov dword [esp + 0x20], str.New_encrpt_context_failed
push 0x79
jmp 0x41dfed
mov ecx, dword [esp + 0x20]
push edi
lea edx, [ebx + ecx + 4]
push edx
push eax
call fcn.004424a0
add esp, 0xc
push edi
mov dword [esp + 0x14], edi
call fcn.0043e1b9
mov edx, dword [esp + 0x18]
mov ebx, eax
add esp, 4
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x4c]
push ecx
push edi
mov ecx, ebx
mov dword [esp + 0x40], ebx
call fcn.0040c2f0
add esp, 0xc
test eax, eax
jne 0x41dfb3
lea edx, [esp + 0x1c]
push edx
mov dword [esp + 0x20], str.Decrypt_TEA_error
push 0x85
jmp 0x41dfed
mov edi, dword [esp + 0x10]
push edi
call fcn.0043e1b9
mov ecx, dword [esp + 0x48]
add esp, 4
push edi
push ebx
push eax
mov dword [ecx], eax
call fcn.004424a0
mov edx, dword [esp + 0x3c]
mov dword [edx], edi
mov dword [esp + 0x34], 1
jmp 0x41e00b
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x34], str.Rsa_encrypt_len_error
push 0x5c
push str.R:TempViewMiscSetup3BackupDownloaderUtilDecryptUtil.cpp
mov edx, 0x45a7a8
mov ebx, str.DecryptUtil
mov edi, 3
mov ecx, str.Decrypt::DecryptFileToMemory
call fcn.00407520
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41e026
push eax
call fcn.0043f601
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x41e037
push eax
call fcn.0043f601
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41e048
push eax
call fcn.0043f601
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x41e059
push eax
call fcn.0043f601
add esp, 4
mov ecx, dword [esp + 0x1005c]
mov eax, dword [esp + 0x28]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0043e1c4
mov esp, ebp
pop ebp
ret