Function at 0x45ea90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ad72a
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x616798]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1c0], edi
mov esi, dword [ebp + 0xc]
mov ecx, 0x6190cc
push str.PumaAnim::LoadCompressed
call fcn.00447e60
push esi
mov ecx, 0x6190cc
call fcn.00447e60
test esi, esi
jne 0x45ebd6
push 0x58
lea eax, [ebp - 0x234]
push esi
push eax
call fcn.00556fe0
lea eax, [ebp - 0x90]
mov dword [ebp - 0x234], 0x58
mov dword [ebp - 0x218], eax
add esp, 0xc
mov eax, dword [0x6192d0]
mov byte [ebp - 0x90], 0
mov dword [ebp - 0x208], 0x5bd274
mov dword [ebp - 0x214], 0x80
mov dword [ebp - 0x228], str.PUMA_ANC_files
mov eax, dword [eax + 0x2a3cc]
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x234]
push eax
mov dword [ebp - 0x200], 8
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameA]
test eax, eax
je 0x45f154
lea esi, [ebp - 0x90]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eb73
sub ecx, edx
test ecx, ecx
jle 0x45f154
xor eax, eax
nop word [eax + eax]
cmp byte [ebp + eax - 0x90], 0x2e
je 0x45ed1a
inc eax
cmp eax, ecx
jl 0x45eb90
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x190]
push str._s.anc
push eax
call fcn.0044c340
lea eax, [ebp - 0x190]
push eax
lea eax, [ebp - 0x90]
push 0x5bb3c4
push eax
call fcn.0045dc60
add esp, 0x18
push 0x5bd2ac
push esi
call fcn.00561dfc
mov ebx, eax
add esp, 8
mov dword [ebp - 0x1d0], ebx
test ebx, ebx
je 0x45f154
add edi, 0x150
mov ecx, edi
mov dword [ebp - 0x1c4], edi
call fcn.0044dcb0
mov esi, eax
test esi, esi
je 0x45ec31
nop dword [eax]
push esi
mov ecx, edi
call fcn.0044dea0
test esi, esi
je 0x45ec24
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, edi
call fcn.0044dcb0
mov esi, eax
test esi, esi
jne 0x45ec10
mov esi, dword [ebp - 0x1c0]
mov ecx, dword [0x6192d4]
push dword [esi + 0x108]
call fcn.00466870
push ebx
push 2
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x1b4], 0
push 1
push eax
call fcn.00581b9d
movsx eax, word [ebp - 0x1b4]
push ebx
push 4
mov dword [esi + 0x160], eax
lea eax, [ebp - 0x1bc]
push 1
push eax
call fcn.00581b9d
mov eax, dword [ebp - 0x1bc]
add eax, eax
push eax
call fcn.00554c77
add esp, 0x24
mov dword [ebp - 0x1d4], eax
cmp dword [ebp - 0x1bc], 0
jle 0x45ecd3
mov esi, eax
xor edi, edi
push ebx
push 1
push 1
push esi
call fcn.00581b9d
push ebx
push 1
lea eax, [esi + 1]
push 1
push eax
call fcn.00581b9d
inc edi
add esp, 0x20
add esi, 2
cmp edi, dword [ebp - 0x1bc]
jl 0x45eca5
mov edi, dword [ebp - 0x1c4]
xor esi, esi
xor eax, eax
mov dword [ebp - 0x1c8], esi
cmp ax, word [ebp - 0x1b4]
jge 0x45f131
nop word [eax + eax]
push 0x164
call fcn.00554883
add esp, 4
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x45ed3a
push esi
mov ecx, eax
call fcn.0045dd70
mov esi, eax
jmp 0x45ed3c
cmp eax, ecx
jge 0x45eba3
cmp eax, 0x80
jae 0x45f172
mov byte [ebp + eax - 0x90], 0
jmp 0x45eba3
xor esi, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, edi
test esi, esi
jne 0x45ed7e
call fcn.0044dcb0
mov esi, eax
test esi, esi
je 0x45ee45
push esi
mov ecx, edi
call fcn.0044dea0
test esi, esi
je 0x45ed6c
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, edi
call fcn.0044dcb0
mov esi, eax
test esi, esi
jne 0x45ed58
jmp 0x45ee45
push esi
call fcn.0044daf0
push ebx
push 0xc
lea eax, [esi + 0x11c]
push 1
push eax
call fcn.00581b9d
push ebx
push 0xc
lea eax, [esi + 0x110]
push 1
push eax
call fcn.00581b9d
push ebx
push 0xc
lea eax, [ebp - 0x1a8]
push 1
push eax
call fcn.00581b9d
push ebx
push 0xc
lea eax, [ebp - 0x19c]
push 1
push eax
call fcn.00581b9d
mov eax, dword [ebp - 0x1bc]
add esp, 0x40
mov dword [esi + 0x108], eax
push 0x224
call fcn.00554883
add esp, 4
mov dword [ebp - 0x1dc], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x45ee10
mov ecx, dword [esi + 0x108]
push 0x152
lea ecx, [ecx + ecx*8]
shl ecx, 2
push ecx
mov ecx, eax
call fcn.00466580
jmp 0x45ee12
xor eax, eax
mov dword [esi + 0x10c], eax
mov ecx, dword [0x6192d4]
push eax
mov dword [ebp - 4], 0xffffffff
call fcn.00466860
mov eax, dword [esi + 0x10c]
test eax, eax
jne 0x45ee65
push esi
mov ecx, edi
call fcn.0044dea0
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c8]
mov dword [ecx + 0x160], eax
mov eax, dword [ebp - 0x1b4]
movsx esi, ax
jmp 0x45f121
cmp dword [eax + 0x108], 0
jne 0x45ee98
push esi
mov ecx, edi
call fcn.0044dea0
mov eax, dword [esi]
mov ecx, esi
push 1
call dword [eax]
mov ecx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1b4]
movsx esi, ax
mov dword [ecx + 0x160], esi
jmp 0x45f121
mov ecx, dword [0x6192d4]
push eax
call fcn.00466910
mov edx, dword [esi + 0x108]
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1b8], 0
test edx, edx
jle 0x45ef8d
mov edi, dword [ebp - 0x1d0]
lea ebx, [eax + 0xc]
nop dword [eax + eax]
push edi
push 1
lea eax, [ebp - 0x1a9]
push 1
push eax
call fcn.00581b9d
movsx eax, byte [ebp - 0x1a9]
push edi
push 1
push 1
movd xmm0, eax
lea eax, [ebp - 0x1a9]
cvtdq2ps xmm0, xmm0
push eax
divss xmm0, dword [0x5bd2ec]
movss dword [ebx], xmm0
call fcn.00581b9d
movsx eax, byte [ebp - 0x1a9]
push edi
push 1
push 1
movd xmm0, eax
lea eax, [ebp - 0x1a9]
cvtdq2ps xmm0, xmm0
push eax
divss xmm0, dword [0x5bd2ec]
movss dword [ebx + 4], xmm0
call fcn.00581b9d
movsx eax, byte [ebp - 0x1a9]
add esp, 0x30
movd xmm0, eax
cvtdq2ps xmm0, xmm0
push ebx
push ebx
divss xmm0, dword [0x5bd2ec]
movss dword [ebx + 8], xmm0
call fcn.004012ae
mov eax, dword [ebp - 0x1b8]
add ebx, 0x24
mov edx, dword [esi + 0x108]
inc eax
mov dword [ebp - 0x1b8], eax
cmp eax, edx
jl 0x45eed0
mov edi, dword [ebp - 0x1c4]
mov ebx, dword [ebp - 0x1d0]
mov eax, dword [ebp - 0x1cc]
mov dword [ebp - 0x1b8], 0
test edx, edx
jle 0x45f07c
lea edi, [eax + 8]
push ebx
push 2
lea eax, [ebp - 0x1b0]
push 1
push eax
call fcn.00581b9d
movsx eax, word [ebp - 0x1b0]
push ebx
push 2
push 1
movd xmm0, eax
lea eax, [ebp - 0x1b0]
cvtdq2ps xmm0, xmm0
push eax
divss xmm0, dword [0x5bd2f4]
mulss xmm0, dword [ebp - 0x19c]
addss xmm0, dword [ebp - 0x1a8]
movss dword [edi - 8], xmm0
call fcn.00581b9d
movsx eax, word [ebp - 0x1b0]
push ebx
push 2
push 1
movd xmm0, eax
lea eax, [ebp - 0x1b0]
cvtdq2ps xmm0, xmm0
push eax
divss xmm0, dword [0x5bd2f4]
mulss xmm0, dword [ebp - 0x198]
addss xmm0, dword [ebp - 0x1a4]
movss dword [edi - 4], xmm0
call fcn.00581b9d
movsx eax, word [ebp - 0x1b0]
add esp, 0x30
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov eax, dword [ebp - 0x1b8]
inc eax
mov dword [ebp - 0x1b8], eax
divss xmm0, dword [0x5bd2f4]
mulss xmm0, dword [ebp - 0x194]
addss xmm0, dword [ebp - 0x1a0]
movss dword [edi], xmm0
add edi, 0x24
mov edx, dword [esi + 0x108]
cmp eax, edx
jl 0x45efa2
mov edi, dword [ebp - 0x1c4]
xor ecx, ecx
test edx, edx
jle 0x45f0dd
mov ebx, dword [ebp - 0x1cc]
movss xmm1, dword [0x5bceec]
add ebx, 0x20
mov edi, dword [ebp - 0x1d4]
nop dword [eax]
movzx eax, byte [edi + ecx*2]
lea ebx, [ebx + 0x24]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ebx - 0x28], xmm0
movzx eax, byte [edi + ecx*2 + 1]
inc ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
movss dword [ebx - 0x24], xmm0
mov edx, dword [esi + 0x108]
cmp ecx, edx
jl 0x45f0a0
mov edi, dword [ebp - 0x1c4]
xor ecx, ecx
test edx, edx
jle 0x45f0fe
mov eax, dword [ebp - 0x1cc]
mov edx, dword [ebp + 0x10]
add eax, 0x18
nop
mov dword [eax], edx
lea eax, [eax + 0x24]
inc ecx
cmp ecx, dword [esi + 0x108]
jl 0x45f0f0
push dword [esi + 0x10c]
mov ecx, dword [0x6192d4]
call fcn.004669f0
mov eax, dword [ebp - 0x1b4]
mov ebx, dword [ebp - 0x1d0]
mov esi, dword [ebp - 0x1c8]
inc esi
cwde
mov dword [ebp - 0x1c8], esi
cmp esi, eax
jl 0x45ecf0
push ebx
call fcn.00561aa9
push dword [ebp - 0x1d4]
call fcn.00554c80
add esp, 8
mov ecx, 0x6190cc
push str._DONE_n
call fcn.00447e60
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005548c1
mov esp, ebp
pop ebp
ret 0xc
call fcn.00555745
int3