Function at 0x415d30
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46d7d9
mov eax, dword fs:[0]
push eax
sub esp, 0x2c4
mov eax, dword [0x485310]
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 ebx, dword [ebp + 8]
lea ecx, [ebp - 0x298]
mov dword [ebp - 0x2b0], ebx
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x294], 0
call fcn.00416d10
mov dword [ebp - 0x298], eax
push dword [eax + 4]
lea ecx, [ebp - 0x298]
mov dword [ebp - 4], 1
call fcn.00416de0
mov eax, dword [ebp - 0x298]
push ebx
push 4
push 1
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x298]
mov byte [ebp - 4], 0
mov dword [eax], eax
mov eax, dword [ebp - 0x298]
mov dword [eax + 8], eax
lea eax, [ebp - 0x2ac]
push eax
mov dword [ebp - 0x294], 0
mov dword [ebp - 0x2ac], 0
call fcn.004369a9
lea eax, [ebp - 0x2ac]
push 4
push eax
call fcn.00423470
mov eax, dword [ebp - 0x2ac]
add esp, 0x18
test eax, eax
jne 0x415e0b
mov dword [ebp - 4], 2
jmp 0x41617d
mov dword [ebp - 0x2a8], 0
test eax, eax
je 0x416124
nop dword [eax]
xor esi, esi
mov dword [ebp - 0x2b4], 0
xor edi, edi
mov byte [ebp - 0x28d], 0
mov dword [ebp - 0x2a4], esi
mov dword [ebp - 0x29c], edi
push dword [ebp - 0x2b0]
lea eax, [ebp - 0x2b4]
mov byte [ebp - 4], 3
push 4
push 1
xor ebx, ebx
push eax
mov dword [ebp - 0x2a0], ebx
call fcn.004369a9
lea eax, [ebp - 0x2b4]
push 4
push eax
call fcn.00423470
push dword [ebp - 0x2b0]
lea eax, [ebp - 0x28d]
push 1
push 1
push eax
call fcn.004369a9
lea eax, [ebp - 0x28d]
push 1
push eax
call fcn.00423470
add esp, 0x30
mov dword [ebp - 0x2b8], ebx
cmp byte [ebp - 0x28d], bl
jbe 0x415f88
nop word [eax + eax]
push dword [ebp - 0x2b0]
lea eax, [ebp - 0x28c]
push 0x78
push 1
push eax
call fcn.004369a9
lea eax, [ebp - 0x28c]
push 0x78
push eax
call fcn.00423470
lea eax, [ebp - 0x28c]
add esp, 0x18
cmp eax, ebx
jae 0x415f2d
cmp esi, eax
ja 0x415f2d
mov ecx, eax
mov eax, 0x88888889
sub ecx, esi
imul ecx
add edx, ecx
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp ebx, dword [ebp - 0x29c]
jne 0x415f1d
push 1
lea ecx, [ebp - 0x2a4]
call fcn.00416fa0
mov ebx, dword [ebp - 0x2a0]
mov esi, dword [ebp - 0x2a4]
mov eax, edi
shl eax, 4
sub eax, edi
lea esi, [esi + eax*8]
test ebx, ebx
je 0x415f57
jmp 0x415f4e
cmp ebx, edi
jne 0x415f44
push 1
lea ecx, [ebp - 0x2a4]
call fcn.00416fa0
mov ebx, dword [ebp - 0x2a0]
test ebx, ebx
je 0x415f57
lea esi, [ebp - 0x28c]
mov ecx, 0x1e
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x2b8]
add ebx, 0x78
movzx eax, byte [ebp - 0x28d]
inc ecx
mov esi, dword [ebp - 0x2a4]
mov edi, dword [ebp - 0x29c]
mov dword [ebp - 0x2a0], ebx
mov dword [ebp - 0x2b8], ecx
cmp ecx, eax
jl 0x415eb0
mov eax, dword [ebp - 0x2b4]
lea ecx, [ebp - 0x2c4]
mov dword [ebp - 0x2c8], eax
lea eax, [ebp - 0x2a4]
push eax
call fcn.00415b10
lea eax, [ebp - 0x2c8]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x298]
call fcn.004157e0
push eax
add eax, 0x10
lea ecx, [ebp - 0x298]
push eax
push 0
lea eax, [ebp - 0x2d0]
push eax
call fcn.004159f0
mov ebx, dword [ebp - 0x2c4]
mov byte [ebp - 4], 3
test ebx, ebx
je 0x416070
mov ecx, dword [ebp - 0x2bc]
mov eax, 0x88888889
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x2222222
ja 0x41615b
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 3
cmp eax, 0x1000
jb 0x416049
test bl, 0x1f
jne 0x41615b
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x41615b
sub ebx, eax
cmp ebx, 4
jb 0x41615b
cmp ebx, 0x23
ja 0x41615b
mov ebx, eax
push ebx
call fcn.00423c22
add esp, 4
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2c0], 0
mov dword [ebp - 0x2bc], 0
mov ebx, dword [ebp - 0x2a4]
mov byte [ebp - 4], 0
test ebx, ebx
je 0x41610b
mov ecx, dword [ebp - 0x29c]
mov eax, 0x88888889
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ecx, 0x2222222
ja 0x41615b
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 3
cmp eax, 0x1000
jb 0x4160e4
test bl, 0x1f
jne 0x41615b
mov eax, dword [ebx - 4]
cmp eax, ebx
jae 0x41615b
sub ebx, eax
cmp ebx, 4
jb 0x41615b
cmp ebx, 0x23
ja 0x41615b
mov ebx, eax
push ebx
call fcn.00423c22
add esp, 4
mov dword [ebp - 0x2a4], 0
mov dword [ebp - 0x2a0], 0
mov dword [ebp - 0x29c], 0
mov eax, dword [ebp - 0x2a8]
inc eax
mov dword [ebp - 0x2a8], eax
cmp eax, dword [ebp - 0x2ac]
jb 0x415e20
lea eax, [ebp - 0x214]
mov byte [ebp - 0x14], 0
push eax
call fcn.00404e40
add esp, 4
test eax, eax
jne 0x416160
push eax
push str.ERROR_
push str.Failed_to_save_the_file_
push dword [0x48f0a0]
call dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp - 4], 5
jmp 0x41617d
call fcn.0042e588
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.004169b0
add esp, 8
mov dword [ebp - 4], 6
mov eax, dword [ebp - 0x298]
lea ecx, [ebp - 0x298]
push eax
push dword [eax]
lea eax, [ebp - 0x2a8]
push eax
call fcn.00417180
push dword [ebp - 0x298]
call fcn.00423c22
add esp, 4
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.00424024
mov esp, ebp
pop ebp
ret