Function at 0x1090c230
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10952820
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], ecx
mov dword [ebp - 4], 0
mov eax, dword [sym.imp.Core.dll_int_GUnicodeOS]
mov edi, dword [ebp + 8]
cmp dword [eax], 0
je 0x1090c283
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
jmp 0x1090c2d5
push edi
mov ebx, dword [sym.imp.Core.dll_int___cdecl_winGetSizeANSI_unsigned_short_int_const__]
call ebx
add esp, 4
test eax, eax
jne 0x1090c297
xor esi, esi
jmp 0x1090c2ad
push edi
call ebx
add esp, 4
add eax, 7
and eax, 0xfffffff8
call fcn.10921890
mov dword [ebp - 0x10], esp
mov esi, esp
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
push edi
call ebx
push eax
push edi
push esi
call dword [sym.imp.Core.dll_char____cdecl_winToANSI_char___unsigned_short_int_const___int_]
add esp, 0x10
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x1090c32a
test byte [ebp + 0xc], 1
je 0x1090c323
mov ecx, dword [sym.imp.Core.dll_int_GLanguageType]
push edi
cmp dword [ecx], 0
jne 0x1090c30c
push 0x1095a020
mov edx, dword [sym.imp.Core.dll_class_FOutputDeviceError__GError]
mov eax, dword [edx]
push eax
call dword [sym.imp.Core.dll_public:_void___cdecl_FOutputDevice::Logf_unsigned_short_int_const__]
add esp, 0xc
xor eax, eax
jmp 0x1090c42d
push str._s_cannot_be_read._r_nPlease_perform_a_Full_Check_and_try_running_it_again.
mov ecx, dword [sym.imp.Core.dll_class_FOutputDeviceError__GError]
mov edx, dword [ecx]
push edx
call dword [sym.imp.Core.dll_public:_void___cdecl_FOutputDevice::Logf_unsigned_short_int_const__]
add esp, 0xc
xor eax, eax
jmp 0x1090c42d
push str.L2DecryptFileReader
push 0x48
call fcn.10901618
add esp, 8
mov ebx, eax
test ebx, ebx
je 0x1090c35a
push edi
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push eax
mov eax, dword [ebp + 0x10]
push eax
push esi
mov ecx, ebx
call fcn.10901686
mov esi, eax
jmp 0x1090c35c
xor esi, esi
push edi
push str.L2.ini
mov ebx, dword [sym.imp.Core.dll_int___cdecl_appStricmp_unsigned_short_int_const___unsigned_short_int_const__]
call ebx
add esp, 8
test eax, eax
jne 0x1090c443
xor ebx, ebx
cmp esi, ebx
je 0x1090c384
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 4], eax
cmp dword [0x1096b004], ebx
je 0x1090c3b7
mov edx, dword [ebp - 0x14]
cmp dword [edx + 4], 0x19d
je 0x1090c3b7
mov eax, dword [sym.imp.Core.dll_int_GIsUCC]
cmp dword [eax], ebx
jne 0x1090c3b7
push str.Files_are_corrupted____Please__full_check
push ebx
call dword [sym.imp.Core.dll_int___cdecl_appMsgf_int__unsigned_short_int_const__const]
push ebx
call dword [sym.imp.Core.dll_void___cdecl_appRequestExit_int_]
add esp, 0xc
cmp dword [esi + 0x3c], 0x19d
jne 0x1090c52d
lea ecx, [ebp + 8]
call fcn.10901681
mov byte [ebp - 4], 1
push str.L2MemArchive
push 0x48
call fcn.10901618
add esp, 8
mov edi, eax
cmp edi, ebx
je 0x1090c3fa
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx + 0x2c]
call eax
push eax
mov ecx, edi
call fcn.109010d7
mov edi, eax
jmp 0x1090c3fc
xor edi, edi
push edi
push esi
lea ecx, [ebp + 8]
call fcn.10901438
mov dword [edi + 0x44], ebx
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x10], 1
mov dword [edi + 0x14], ebx
mov edx, dword [esi]
push 1
mov ecx, esi
mov eax, dword [edx]
call eax
mov byte [ebp - 4], 0
mov dword [ebp + 8], vtable.FL2RSACodec.0
mov eax, edi
lea esp, [ebp - 0x28]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push edi
push str.User.ini
call ebx
add esp, 8
test eax, eax
jne 0x1090c511
xor ebx, ebx
cmp esi, ebx
je 0x1090c465
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 8], eax
cmp dword [0x1096b004], ebx
je 0x1090c498
mov edx, dword [ebp - 0x14]
cmp dword [edx + 8], 0x19d
je 0x1090c498
mov eax, dword [sym.imp.Core.dll_int_GIsUCC]
cmp dword [eax], ebx
jne 0x1090c498
push str.Files_are_corrupted_____Please__full_check
push ebx
call dword [sym.imp.Core.dll_int___cdecl_appMsgf_int__unsigned_short_int_const__const]
push ebx
call dword [sym.imp.Core.dll_void___cdecl_appRequestExit_int_]
add esp, 0xc
cmp dword [esi + 0x3c], 0x19d
jne 0x1090c52d
lea ecx, [ebp + 0xc]
call fcn.10901681
mov byte [ebp - 4], 2
push str.L2MemArchive
push 0x48
call fcn.10901618
add esp, 8
mov edi, eax
cmp edi, ebx
je 0x1090c4db
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx + 0x2c]
call eax
push eax
mov ecx, edi
call fcn.109010d7
mov edi, eax
jmp 0x1090c4dd
xor edi, edi
push edi
push esi
lea ecx, [ebp + 0xc]
call fcn.10901438
mov dword [edi + 0x44], ebx
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x10], 1
mov dword [edi + 0x14], ebx
mov edx, dword [esi]
push 1
mov ecx, esi
mov eax, dword [edx]
call eax
mov byte [ebp - 4], 0
mov dword [ebp + 0xc], vtable.FL2RSACodec.0
jmp 0x1090c42b
push edi
push str.option.ini
call ebx
add esp, 8
test eax, eax
jne 0x1090c534
test esi, esi
je 0x1090c52d
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 0xc], eax
mov eax, esi
jmp 0x1090c42d
push str..utx
push edi
mov ebx, dword [sym.imp.Core.dll_unsigned_short_int____cdecl_appStristr_unsigned_short_int_const___unsigned_short_int_const__]
call ebx
add esp, 8
test eax, eax
je 0x1090c5aa
cmp dword [0x1096b004], 0
je 0x1090c52d
test esi, esi
je 0x1090c52d
cmp dword [esi + 0x3c], 0x79
je 0x1090c52d
mov edx, dword [sym.imp.Core.dll_int_GIsUCC]
cmp dword [edx], 0
jne 0x1090c52d
mov eax, dword [sym.imp.Core.dll_int_GL2ReplayMode]
cmp dword [eax], 0
je 0x1090c57c
mov ecx, dword [sym.imp.Core.dll_int_GL2ReplayLoadResource]
cmp dword [ecx], 0
jne 0x1090c52d
push str.crest.utx
push edi
call ebx
add esp, 8
test eax, eax
jne 0x1090c52d
push edi
push str.Files_are_corrupted_____Please__full_check..___s_
push eax
call dword [sym.imp.Core.dll_int___cdecl_appMsgf_int__unsigned_short_int_const__const]
push 0
call dword [sym.imp.Core.dll_void___cdecl_appRequestExit_int_]
add esp, 0x10
mov eax, esi
jmp 0x1090c42d
push str..l2r
push edi
call ebx
add esp, 8
test eax, eax
je 0x1090c52d
cmp dword [esi + 0x3c], 0x137
jne 0x1090c52d
push str.L2MemArchive
push 0x48
call fcn.10901618
add esp, 8
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x1090c5f6
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx + 0x2c]
call eax
push eax
mov ecx, edi
call fcn.109010d7
mov edi, eax
jmp 0x1090c5f8
xor edi, edi
mov ecx, dword [sym.imp.Core.dll_class_FCodec__GL2DESCodec]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push edi
push esi
mov eax, dword [edx + 0x10]
call eax
mov dword [edi + 0x44], ebx
mov dword [edi + 0x3c], ebx
mov dword [edi + 0x10], 1
mov dword [edi + 0x14], ebx
mov edx, dword [esi]
push 1
mov ecx, esi
mov eax, dword [edx]
call eax
jmp 0x1090c42b