Function at 0x405570
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x11c
mov eax, dword [0x422004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x118]
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x11c], ebx
xorps xmm0, xmm0
mov ecx, ebx
push eax
movlpd qword [ebp - 0x118], xmm0
call fcn.00405910
mov esi, eax
add esp, 4
test esi, esi
jne 0x4055db
cmp dword [ebp + 0x10], eax
jne 0x4055c6
push eax
push str.file_not_found
push ebx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405e47
mov esp, ebp
pop ebp
ret 0x10
mov ebx, dword [ebp - 0x118]
mov eax, ebx
or eax, dword [ebp - 0x114]
jne 0x4055f6
push esi
call fcn.0040833b
jmp 0x40583b
lea eax, [ebx + 0x412]
push eax
call fcn.00406096
add esp, 4
mov dword [ebp - 0x114], eax
add eax, 0x3f
and eax, 0xffffffc0
mov dword [ebp - 0x10c], eax
push esi
jne 0x40564b
call fcn.0040833b
add esp, 4
push 0
push str.ERROR
push 0x420278
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00405e47
mov esp, ebp
pop ebp
ret 0x10
push ebx
mov ebx, eax
push 1
push ebx
call fcn.0040a93e
push esi
mov dword [ebp - 0x110], eax
call fcn.0040833b
mov esi, dword [ebp - 0x110]
add esp, 0x14
test esi, esi
jns 0x4056a1
push esi
push dword [ebp - 0x11c]
lea eax, [ebp - 0x108]
push str.namelist
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x108]
push 0
push str.ftell
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp dword [ebp + 0xc], 0
je 0x405719
xor ecx, ecx
test esi, esi
jle 0x405719
cmp esi, 0x40
jb 0x40570d
mov eax, esi
and eax, 0x8000003f
jns 0x4056c0
dec eax
or eax, 0xffffffc0
inc eax
movups xmm1, xmmword [0x4202f0]
mov edx, esi
sub edx, eax
nop dword [eax + eax]
movups xmm0, xmmword [ebx + ecx]
pandn xmm0, xmm1
movups xmmword [ebx + ecx], xmm0
movups xmm0, xmmword [ebx + ecx + 0x10]
pandn xmm0, xmm1
movups xmmword [ebx + ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + ecx + 0x20]
pandn xmm0, xmm1
movups xmmword [ebx + ecx + 0x20], xmm0
movups xmm0, xmmword [ebx + ecx + 0x30]
pandn xmm0, xmm1
movups xmmword [ebx + ecx + 0x30], xmm0
add ecx, 0x40
cmp ecx, edx
jl 0x4056d0
cmp ecx, esi
jge 0x405719
not byte [ecx + ebx]
inc ecx
cmp ecx, esi
jl 0x405711
mov word [ebx + esi], 0
xor ebx, ebx
test esi, esi
jle 0x405808
nop dword [eax]
mov eax, dword [ebp - 0x10c]
lea edx, [ebx + eax]
mov al, byte [edx]
lea ecx, [edx + 1]
mov ah, al
cmp al, 0x2c
jne 0x405746
mov al, byte [ecx]
cmp ah, 0x2c
cmovne ecx, edx
xor edx, edx
cmp ah, 0x2c
sete dl
cmp al, 0x20
je 0x405764
cmp al, 9
je 0x405764
cmp al, 0xa
je 0x405764
cmp al, 0xd
jne 0x40576b
mov al, byte [ecx + 1]
inc ecx
inc edx
jmp 0x405754
add ebx, edx
cmp ebx, esi
jge 0x405808
mov eax, dword [ebp - 0x10c]
xor esi, esi
lea edx, [ebx + eax]
mov ecx, edx
mov al, byte [ecx]
test al, al
je 0x4057ad
cmp al, 0x20
je 0x4057a5
cmp al, 9
je 0x4057a5
cmp al, 0x2c
je 0x4057a5
cmp al, 0xa
je 0x4057a5
cmp al, 0xd
je 0x4057a5
mov al, byte [ecx + 1]
inc ecx
inc esi
test al, al
jne 0x405788
cmp esi, 0x80
jg 0x4057f4
mov eax, dword [edi + 8]
push esi
shl eax, 7
add eax, dword [edi + 0xc]
push edx
push eax
call fcn.00407d50
mov eax, dword [edi + 8]
add esp, 0xc
shl eax, 7
add ebx, esi
add eax, dword [edi + 0xc]
mov byte [eax + esi], 0
inc dword [edi + 8]
mov eax, dword [edi + 8]
cmp eax, dword [edi + 4]
jl 0x4057e4
push 0x64
mov ecx, edi
call fcn.004053e0
mov esi, dword [ebp - 0x110]
cmp ebx, esi
jl 0x405730
jmp 0x405808
push 0
push str.ERROR
push 0x420224
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [edi + 8]
cmp ecx, dword [edi + 4]
jge 0x405829
mov edx, ecx
shl edx, 7
mov eax, dword [edi + 0xc]
lea edx, [edx + 0x80]
inc ecx
mov byte [edx + eax - 0x80], 0
cmp ecx, dword [edi + 4]
jl 0x405815
push dword [ebp - 0x114]
call fcn.00405e58
mov dword [edi + 0x10], 0
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
mov eax, 1
pop edi
pop esi
pop ebx
call fcn.00405e47
mov esp, ebp
pop ebp
ret 0x10