Function at 0x44522e
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x100
mov ecx, 0x45c76c
push ebx
push esi
push edi
call fcn.0042534b
mov dword [0x469158], 2
mov ecx, str.vc41.pch
call fcn.0042305c
push 0x456f28
mov eax, dword [0x45c4d0]
push eax
call dword [sym.imp.MSVCRT40.dll_fopen]
add esp, 8
mov dword [0x466490], eax
test eax, eax
je 0x44546f
push eax
mov ebx, dword [sym.imp.MSVCRT40.dll_fread]
push 0x68
push 1
push 0x468ce0
call ebx
add esp, 0x10
mov ecx, dword [0x466490]
test byte [ecx + 0xc], 0x20
je 0x4452ac
mov eax, dword [0x45c4d0]
mov edx, 0x158
push eax
mov ecx, 0x54
call fcn.004472b0
mov eax, 0x468ce0
mov ecx, 0x456f20
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x44550e
or dl, dl
je 0x4452da
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x44550e
add eax, 2
add ecx, 2
or dl, dl
jne 0x4452b6
xor eax, eax
test eax, eax
jne 0x44546f
cmp dword [0x468cec], 0x10157885
jne 0x44546f
cmp dword [0x468cf0], 0xb146808
jne 0x44546f
test byte [0x468d44], 2
je 0x445345
mov eax, 0x468cf4
mov ecx, 0x45c714
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x445518
or dl, dl
je 0x44533b
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x445518
add eax, 2
add ecx, 2
or dl, dl
jne 0x445317
xor eax, eax
test eax, eax
jne 0x44546f
cmp dword [0x468d2c], 0
je 0x44546f
test byte [0x468d44], 1
jne 0x44546f
mov eax, dword [0x466490]
push eax
push 0x408
push 1
push 0x468d50
call ebx
add esp, 0x10
cmp dword [0x45c178], 0
je 0x4453a3
mov edx, 0x468e24
mov ecx, 0x45c17c
call fcn.00423084
test eax, eax
je 0x4453a3
mov esi, 0x468e24
mov edi, 0x45c17c
mov ecx, 0x40
rep movsd dword es:[edi], dword [esi]
mov esi, 0x45c0a8
mov edi, 0x468d50
mov ecx, 0x408
repe cmpsb byte [esi], byte es:[edi]
jne 0x44546f
mov ecx, dword [0x468d2c]
call fcn.0040e85e
push 0
mov ecx, dword [0x466490]
mov dword [0x468cd8], eax
mov eax, dword [0x468d30]
push eax
push ecx
call dword [sym.imp.MSVCRT40.dll_fseek]
add esp, 0xc
mov dword [0x469160], eax
test eax, eax
je 0x44540a
push 0x328
mov eax, dword [0x45c4d0]
push str.pch.c
mov edx, 0x158
push eax
mov ecx, 0x56
call fcn.0044725e
mov eax, dword [0x466490]
mov ecx, dword [0x468d2c]
push eax
mov edx, dword [0x468cd8]
push ecx
push 1
xor di, di
push edx
call ebx
add esp, 0x10
mov ecx, dword [0x468cd8]
mov esi, dword [0x466150]
mov ebx, 1
mov dword [0x468cd0], ecx
test esi, esi
je 0x445522
cmp word [esi], di
jle 0x445522
mov edx, dword [esi + 8]
push 0
movsx eax, di
inc di
mov ecx, 0x4521f4
mov edx, dword [edx + eax*4]
call fcn.00444a32
cmp dword [0x469158], ebx
jne 0x44543f
cmp dword [0x4664f4], 0
jne 0x4454ff
cmp dword [0x45c780], 0
jne 0x4454ff
cmp dword [0x466490], 0
mov eax, dword [0x45c4d0]
push eax
je 0x44559b
push 0x160
mov ecx, 0x385
push 0x161
push 0x100
call fcn.00423321
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00414fda
add esp, 0x18
lea edi, [esp + 0xc]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
call fcn.0040e85e
lea edi, [esp + 0xc]
mov ecx, 0xffffffff
mov dword [0x45c780], eax
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, dword [0x45c780]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00444e5e
pop edi
pop esi
pop ebx
add esp, 0x100
ret
sbb eax, eax
sbb eax, 0xffffffff
jmp 0x4452dc
sbb eax, eax
sbb eax, 0xffffffff
jmp 0x44533d
call fcn.00425303
push eax
xor edx, edx
mov ecx, 7
call fcn.00444990
cmp dword [0x469158], 1
je 0x44546f
xor di, di
mov esi, dword [0x460a84]
mov ebx, 1
test esi, esi
je 0x44557e
cmp word [esi], di
jle 0x44557e
mov eax, dword [esi + 8]
xor edx, edx
movsx ecx, di
inc di
mov ecx, dword [eax + ecx*4]
push ecx
mov ecx, 7
call fcn.00444990
cmp dword [0x469158], ebx
je 0x44546f
jmp 0x44554f
mov dword [0x45b57c], 1
mov word [0x45c770], 0
pop edi
pop esi
pop ebx
add esp, 0x100
ret
push 0x15f
mov ecx, 0x386
push 0x100
call fcn.00423321
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00414fda
add esp, 0x14
jmp 0x4454bf