Function at 0x453340
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x404c
call fcn.00465040
mov eax, dword [0x4c07e0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x4040], esi
mov eax, dword [edi + 0x4d34]
test eax, eax
jne 0x4535c8
push eax
call fcn.00457a70
add esp, 4
sub eax, dword [edi + 0x4ce8]
sbb edx, dword [edi + 0x4cec]
mov dword [ebp - 0x4048], edx
js 0x4533eb
jg 0x453396
cmp eax, 0x78
jbe 0x4533eb
push dword [edi + 0x5350]
lea esi, [edi + 0x4cf4]
push 0x64
push dword [edi + 0x5508]
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push str.Timed_Out____d__
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov ecx, edi
push 1
push esi
call fcn.00453e30
mov dword [edi + 0x4d34], 1
mov eax, 1
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00464e2f
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0x54ec]
cmp eax, dword [edi + 0x54f0]
jae 0x4535bc
push ebx
push 0x49
lea eax, [edi + 0x4c4c]
mov ecx, esi
push eax
call fcn.00425930
mov ebx, eax
test ebx, ebx
js 0x4535bb
push ebx
mov ecx, esi
call fcn.00407350
mov ecx, eax
call fcn.00457890
mov ecx, dword [ebp - 0x4040]
cdq
and edx, 3
push ebx
lea esi, [edx + eax]
sar esi, 2
call fcn.00407350
mov ecx, eax
call fcn.00425dd0
cmp eax, esi
jge 0x4535bb
mov eax, dword [edi + 0x54ec]
mov ebx, dword [edi + eax*4 + 0x535c]
cmp ebx, dword [edi + 0x5350]
jae 0x4535b5
xor esi, esi
mov eax, ebx
shld esi, eax, 0xe
mov ecx, ebx
shl ecx, 0xe
mov eax, esi
sar eax, 0x1f
mov dword [ebp - 0x4048], ecx
cmp ecx, dword [edi + 0x5354]
jne 0x45348d
cmp esi, dword [edi + 0x5358]
je 0x4534bb
push 0
lea eax, [ebp - 0x4044]
mov dword [ebp - 0x4044], esi
push eax
push ecx
push dword [edi + 0x5344]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [ebp - 0x4048]
mov dword [edi + 0x5354], eax
mov dword [edi + 0x5358], esi
push 0
lea eax, [ebp - 0x403c]
push eax
push 0x4000
lea eax, [ebp - 0x4004]
push eax
push dword [edi + 0x5344]
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [edi + 0x5354]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x403c]
mov dword [ebp - 0x403c], eax
lea ecx, [edx + eax]
mov dword [edi + 0x5354], ecx
cmp ecx, edx
jae 0x453505
inc dword [edi + 0x5358]
push eax
lea eax, [ebp - 0x4004]
push eax
lea ecx, [edi + 0xb5c]
call fcn.00461100
push ebx
lea ecx, [edi + 0xb5c]
call fcn.00457a40
push 0x34
lea eax, [ebp - 0x4038]
push 0
push eax
call fcn.00466b60
add esp, 0xc
lea ecx, [edi + 0xb5c]
call fcn.00460cb0
mov ecx, eax
mov dword [ebp - 0x4008], eax
mov dword [ebp - 0x4024], 0x49
call fcn.004471d0
mov ecx, edi
mov dword [ebp - 0x4020], eax
call fcn.00457880
mov ecx, dword [ebp - 0x4040]
movups xmm0, xmmword [eax]
lea eax, [ebp - 0x4038]
push eax
movups xmmword [ebp - 0x401b], xmm0
call fcn.00425050
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x4cf0], eax
cmp ebx, dword [edi + 0x5508]
jbe 0x45359c
mov dword [edi + 0x5508], ebx
mov eax, dword [edi + 0x5504]
cmp ebx, eax
jbe 0x4535ae
mov dword [edi + 0x5504], ebx
jmp 0x4535b5
inc eax
mov dword [edi + 0x5504], eax
inc dword [edi + 0x54ec]
pop ebx
mov dword [edi + 0x4d34], 0
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00464e2f
mov esp, ebp
pop ebp
ret 4