Function at 0x4153f0
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x478f8c
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x4921bc]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push esi
push edi
mov eax, dword [0x4921bc]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov dword [esp + 0xb8], ebx
cmp dword [eax + 0x18], 8
jb 0x41544e
mov eax, dword [eax + 4]
jmp 0x415451
add eax, 4
push ebx
push 0x80
push 3
push ebx
push 1
push 0x120089
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x14], esi
je 0x415787
lea ecx, [esp + 0x1c]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
mov dword [esp + 0x18], eax
jne 0x41549a
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x415780
mov edx, dword [esp + 0x1c]
push 1
push ebx
push ebx
push edx
call fcn.0046d5e0
mov edi, eax
xor eax, eax
add edi, dword [esp + 0x18]
adc edx, eax
mov ecx, edi
or ecx, edx
je 0x415780
cmp edx, ebx
ja 0x415780
jb 0x4154d2
cmp edi, 0x100000
ja 0x415780
cmp edx, ebx
ja 0x4154e3
jb 0x4154dd
cmp edi, 2
jae 0x4154e3
mov byte [esp + 0x13], bl
jmp 0x41553a
push 2
lea esi, [esp + 0x20]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x18]
mov byte [esp + 0x1c], bl
mov byte [esp + 0x1d], bl
mov dword [esp + 0x20], ebx
call fcn.004119f0
test al, al
je 0x415596
cmp dword [esp + 0x1c], 2
jne 0x415596
mov al, byte [esp + 0x18]
cmp al, 0xff
mov cl, byte [esp + 0x19]
jne 0x41552d
cmp cl, 0xfe
jne 0x41552d
mov byte [esp + 0x13], 1
jmp 0x41553a
cmp al, 0xfe
mov byte [esp + 0x13], bl
jne 0x41553a
cmp cl, 0xff
je 0x415596
lea eax, [esp + 0x14]
call fcn.00411b90
cmp byte [esp + 0x13], bl
je 0x415562
push 1
push ebx
push 2
lea esi, [esp + 0x28]
lea eax, [esp + 0x20]
call fcn.00411b30
test al, al
je 0x415596
add edi, 0xfffffffe
lea esi, [esp + 0x1c]
mov dword [esp + 0x30], ebx
call fcn.00408e00
mov byte [esp + 0xb8], 1
mov eax, dword [esp + 0x24]
push edi
lea esi, [esp + 0x34]
lea ecx, [esp + 0x18]
call fcn.004119f0
test al, al
jne 0x4155a4
lea ecx, [esp + 0x1c]
call fcn.00404a80
lea esi, [esp + 0x14]
call fcn.004119d0
jmp 0x415787
mov dword [esp + 0xa4], 7
mov dword [esp + 0xa0], ebx
mov word [esp + 0x90], bx
cmp byte [esp + 0x13], bl
mov byte [esp + 0xb8], 2
je 0x4155e7
mov ecx, dword [esp + 0x24]
shr edi, 1
push edi
lea eax, [esp + 0x58]
call fcn.00417540
lea esi, [esp + 0x54]
call fcn.00432680
jmp 0x41564d
mov edx, dword [esp + 0x24]
push edi
push edx
lea ecx, [esp + 0x40]
mov dword [esp + 0x58], 0xf
mov dword [esp + 0x54], ebx
mov byte [esp + 0x44], bl
call fcn.00404110
lea eax, [esp + 0x38]
lea ecx, [esp + 0x54]
mov byte [esp + 0xb8], 3
call fcn.0041f9c0
push 0xffffffffffffffff
push ebx
push eax
lea eax, [esp + 0x98]
mov byte [esp + 0xc4], 4
call fcn.00401790
lea esi, [esp + 0x54]
call fcn.00432680
lea ecx, [esp + 0x38]
mov byte [esp + 0xb8], 2
call fcn.00403a30
lea eax, [esp + 0x8c]
push eax
lea esi, [esp + 0x74]
call fcn.0041ff10
add esp, 4
push 0x47d668
push 0x47d664
mov eax, esi
mov byte [esp + 0xc0], 5
call fcn.00406cf0
add esp, 8
cmp dword [esp + 0x84], ebx
je 0x415755
mov esi, dword [esp + 0x34]
add esi, 0x164
push str.__r_t_n
lea eax, [esp + 0x74]
call fcn.00406e30
add esp, 4
mov edx, 0x47d668
lea eax, [esp + 0x38]
call fcn.00401720
lea ecx, [esp + 0x38]
push ecx
lea edi, [esp + 0x74]
lea ecx, [esp + 0x58]
mov byte [esp + 0xbc], 6
call fcn.004072d0
add esp, 4
mov edi, 8
mov byte [esp + 0xb8], 8
cmp dword [esp + 0x50], edi
jb 0x4156f0
mov edx, dword [esp + 0x3c]
push edx
call fcn.0046207a
add esp, 4
push str.__r_t_n
lea eax, [esp + 0x58]
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
call fcn.00406e30
add esp, 4
push str.__r_t_n
lea eax, [esp + 0x58]
call fcn.00406ea0
add esp, 4
lea eax, [esp + 0x54]
push eax
call fcn.004088f0
mov byte [esp + 0xb8], 5
cmp dword [esp + 0x6c], edi
jb 0x415748
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0046207a
add esp, 4
cmp dword [esp + 0x84], ebx
jne 0x415694
lea esi, [esp + 0x70]
call fcn.00432680
lea esi, [esp + 0x8c]
call fcn.00432680
lea ecx, [esp + 0x1c]
call fcn.00404a80
lea esi, [esp + 0x14]
call fcn.004119d0
mov al, 1
jmp 0x415789
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.00461f6b
mov esp, ebp
pop ebp
ret 8