Function at 0x440ad0
Capabilities:
Get file size

Disassembly:
push 0xffffffffffffffff
push 0x4caffc
mov eax, dword fs:[0]
push eax
sub esp, 0x4b4
mov eax, dword [0x50a4c0]
xor eax, esp
mov dword [esp + 0x4b0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x50a4c0]
xor eax, esp
push eax
lea eax, [esp + 0x4c8]
mov dword fs:[0], eax
mov eax, dword [esp + 0x4dc]
mov ebp, dword [esp + 0x4d8]
xor ebx, ebx
mov edi, ecx
mov dword [esp + 0x2c], eax
mov byte [esp + 0x24], bl
mov dword [esp + 0x20], ebx
mov dword [esp + 0x4d0], ebx
mov ecx, dword [edi + 4]
lea esi, [esp + 0x154]
mov dword [esp + 0x1c], ecx
call fcn.00437080
mov dword [esp + method.t_fileRead.virtual_0], vtable.t_fileRead.0
mov dword [esp + 0x4a8], 0x4f396c
mov dword [esp + 0x4ac], ebx
mov dword [esp + 0x4b0], ebx
lea esi, [ebp + 0x10]
cmp byte [ebp + 0x120], bl
jne 0x440b75
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x30]
call fcn.00430920
lea eax, [esi + 4]
lea edx, [esp + 0x30]
call fcn.00430b00
push ebx
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x38]
lea ecx, [esp + 0x15c]
mov byte [esp + 0x4d8], 3
call fcn.004371d0
test al, al
je 0x440be3
mov ecx, dword [esp + 0x158]
lea eax, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x30], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp esi, 0xffffffff
jne 0x440bd8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
je 0x440bd8
xor eax, eax
jmp 0x440bda
mov eax, esi
mov dword [esp + 0x4ac], eax
mov al, 1
cmp al, bl
mov byte [esp + 0x4d0], 1
sete byte [esp + 0x1b]
mov dword [esp + 0x30], vtable.t_str.0
cmp byte [esp + 0x14c], bl
jne 0x440c18
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x3c]
cmp eax, edx
je 0x440c18
push eax
call fcn.004a4a7f
add esp, 4
cmp byte [esp + 0x1b], bl
jne 0x440c95
mov esi, dword [edi + 0x98]
cmp esi, dword [esp + 0x4ac]
jbe 0x440cce
lea eax, [esp + 0x16c]
cmp byte [esp + 0x27c], bl
jne 0x440c48
mov eax, dword [esp + 0x168]
add eax, 4
push eax
lea eax, [esp + 0x24]
push str.Seek
push eax
call fcn.0042ca40
add esp, 0xc
cmp al, bl
je 0x440c95
mov edx, dword [esp + 0x1c]
push edx
call fcn.004a4b5c
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x1c]
push eax
push esi
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x4b4]
call fcn.0043c200
test al, al
jne 0x440cf0
push esi
call fcn.004a4a7f
add esp, 4
mov byte [esp + 0x4d0], bl
lea ecx, [esp + 0x154]
mov dword [esp + method.t_fileRead.virtual_0], vtable.t_fileRead.0
mov dword [esp + 0x4a8], 0x4f3cb0
call fcn.00437100
lea ecx, [esp + 0x20]
call fcn.0042c930
xor eax, eax
jmp 0x440e18
push esi
lea ecx, [esp + 0x24]
push ecx
lea eax, [esp + 0x15c]
call fcn.00437690
test al, al
je 0x440c95
mov dword [esp + 0x4b0], esi
jmp 0x440c62
mov edx, dword [edi]
lea eax, [edi + 0x18]
imul edx, edx, 0x9ae42313
mov dword [esp + 0x28], eax
mov ecx, esi
cmp byte [eax], bl
je 0x440d12
mov ebp, dword [esp + 0x1c]
mov eax, ebp
call fcn.0043f030
jmp 0x440d25
mov eax, dword [esp + 0x1c]
sub eax, dword [ebp + 0x128]
call fcn.0043f030
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
cmp byte [edx], bl
je 0x440dd0
xor eax, eax
mov dword [esp + 0x4b5], eax
mov dword [esp + 0x4b9], eax
mov dword [esp + 0x4bd], eax
mov word [esp + 0x4c1], ax
mov byte [esp + 0x4c3], al
push ebp
push esi
lea eax, [esp + 0x4bc]
mov byte [esp + 0x4bc], bl
call fcn.0043ec50
add esp, 8
mov eax, 0x10
lea ecx, [edi + 8]
lea edx, [esp + 0x4b4]
mov edi, edi
mov edi, dword [edx]
cmp edi, dword [ecx]
jne 0x440d96
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x440d80
jmp 0x440dd0
movzx edi, byte [ecx]
movzx eax, byte [edx]
sub eax, edi
jne 0x440dc2
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x440dc2
movzx eax, byte [edx + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x440dc2
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
cmp eax, ebx
jne 0x440c95
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
push 1
push ebp
push esi
call fcn.00440a60
mov byte [esp + 0x4d0], bl
lea ecx, [esp + 0x154]
mov dword [esp + method.t_fileRead.virtual_0], vtable.t_fileRead.0
mov dword [esp + 0x4a8], 0x4f3cb0
call fcn.00437100
lea ecx, [esp + 0x20]
call fcn.0042c930
mov eax, 1
mov ecx, dword [esp + 0x4c8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4b0]
xor ecx, esp
call fcn.004a4a25
add esp, 0x4c0
ret 8