Function at 0x40cd25
Capabilities:
Encrypt data using rc4 ksa
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push str.f:_sourcelcc_startepaloadpng.c
push 0x5d0000
push str.LoadPNGfile
mov dword [0x44100c], ebp
sub esp, 0x38
mov ecx, 0xe
dec ecx
mov dword [esp + ecx*4], 0xfffa5a5a
jne 0x40cd45
push ebx
push edi
mov byte [ebp - 8], 1
mov byte [ebp - 8], 6
push 0x4f26f0
push dword [ebp + 0x1c]
call sub.CRTDLL.DLL_fopen
add esp, 8
mov dword [0x44100c], ebp
mov dword [ebp - 0x18], eax
cmp eax, 0
jne 0x40cd84
inc dword [ebp - 8]
mov eax, 0
jmp 0x40d63a
mov byte [ebp - 8], 9
push 2
push 0
push dword [ebp - 0x18]
call sub.CRTDLL.DLL_fseek
add esp, 0xc
mov dword [0x44100c], ebp
inc dword [ebp - 8]
push dword [ebp - 0x18]
call sub.CRTDLL.DLL_ftell
add esp, 4
mov dword [0x44100c], ebp
mov dword [0x43443c], eax
inc dword [ebp - 8]
push dword [ebp - 0x18]
call sub.CRTDLL.DLL_rewind
add esp, 4
mov dword [0x44100c], ebp
inc dword [ebp - 8]
push dword [0x43443c]
push 0
call sub.KERNEL32.dll_GlobalAlloc
mov dword [0x44100c], ebp
mov dword [0x434448], eax
cmp eax, 0
jne 0x40ce0b
inc dword [ebp - 8]
push dword [ebp - 0x18]
call sub.CRTDLL.DLL_fclose
add esp, 4
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov eax, 0
jmp 0x40d63a
mov byte [ebp - 8], 0x11
push dword [ebp - 0x18]
push dword [0x43443c]
push 1
push dword [0x434448]
call sub.CRTDLL.DLL_fread
add esp, 0x10
mov dword [0x44100c], ebp
mov dword [0x43444c], eax
inc dword [ebp - 8]
push dword [ebp - 0x18]
call sub.CRTDLL.DLL_fclose
add esp, 4
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov edi, dword [0x43443c]
cmp dword [0x43444c], edi
je 0x40ce65
inc dword [ebp - 8]
mov eax, 0
jmp 0x40d63a
mov byte [ebp - 8], 0x16
push 8
push 0x4f2559
push dword [0x434448]
call sub.CRTDLL.DLL_memcmp
add esp, 0xc
mov dword [0x44100c], ebp
cmp eax, 0
je 0x40ceaa
inc dword [ebp - 8]
push dword [0x434448]
call sub.KERNEL32.dll_GlobalFree
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov eax, 0
jmp 0x40d63a
mov byte [ebp - 8], 0x1a
mov dword [0x43444c], 8
mov byte [ebp - 8], 0x1c
push 0x52c
push 0
push 0x434458
call sub.CRTDLL.DLL_memset
add esp, 0xc
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov dword [0x434438], 0
mov dword [0x434444], 0
inc dword [ebp - 8]
mov dword [ebp - 0x20], 0
inc dword [ebp - 8]
mov dword [ebp - 0x1c], 0
mov byte [ebp - 8], 0x21
mov dword [ebp - 0x14], 0
jmp 0x40d52e
mov byte [ebp - 8], 0x24
call fcn.0040cbbf
mov dword [0x44100c], ebp
cmp eax, 0
jne 0x40cf32
inc dword [ebp - 8]
mov eax, 0
jmp 0x40d63a
mov byte [ebp - 8], 0x27
mov edi, dword [0x434444]
cmp edi, 0x45544c50
je 0x40d24b
jg 0x40cf77
mov edi, dword [0x434444]
cmp edi, 0x414d4167
je 0x40d161
jl 0x40d52a
cmp dword [0x434444], 0x444e4549
je 0x40d44d
jmp 0x40d52a
mov edi, dword [0x434444]
cmp edi, 0x534e5274
je 0x40d293
jg 0x40cf9c
cmp dword [0x434444], 0x52444849
je 0x40cfb1
jmp 0x40d52a
cmp dword [0x434444], 0x54414449
je 0x40d3d9
jmp 0x40d52a
mov byte [ebp - 8], 0x2a
push dword [0x434440]
call fcn.0040cb5c
add esp, 4
mov dword [0x44100c], ebp
mov dword [0x434458], eax
inc dword [ebp - 8]
mov edi, dword [0x434440]
add edi, 4
push edi
call fcn.0040cb5c
add esp, 4
mov dword [0x44100c], ebp
mov dword [0x43445c], eax
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov bl, byte [edi + 8]
mov byte [0x434460], bl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov bl, byte [edi + 9]
mov byte [0x434461], bl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov bl, byte [edi + 0xa]
mov byte [0x434462], bl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov bl, byte [edi + 0xb]
mov byte [0x434463], bl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov bl, byte [edi + 0xc]
mov byte [0x434464], bl
mov byte [ebp - 8], 0x32
mov edi, dword [ebp + 0x14]
mov dword [0x434870], edi
inc dword [ebp - 8]
mov dword [ebp - 0x10], 0
mov byte [ebp - 8], 0x34
mov edi, dword [ebp - 0x10]
mov ebx, edi
mov byte [edi + 0x434874], bl
mov byte [ebp - 8], 0x33
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x100
jl 0x40d05f
mov byte [ebp - 8], 0x36
cmp byte [0x434462], 0
jne 0x40d095
cmp byte [0x434463], 0
je 0x40d0a5
mov byte [ebp - 8], 0x37
mov dword [ebp - 0x14], 0xffffffff
jmp 0x40d52a
mov byte [ebp - 8], 0x38
cmp byte [0x434464], 0
je 0x40d0ca
cmp byte [0x434464], 1
je 0x40d0ca
inc dword [ebp - 8]
mov dword [ebp - 0x14], 0xffffffff
jmp 0x40d52a
mov byte [ebp - 8], 0x3a
cmp byte [0x434460], 1
je 0x40d10a
cmp byte [0x434460], 2
je 0x40d10a
cmp byte [0x434460], 4
je 0x40d10a
cmp byte [0x434460], 8
je 0x40d10a
cmp byte [0x434460], 0x10
je 0x40d10a
inc dword [ebp - 8]
mov dword [ebp - 0x14], 0xffffffff
jmp 0x40d52a
mov byte [ebp - 8], 0x3c
cmp byte [0x434461], 0
je 0x40d52a
cmp byte [0x434461], 2
je 0x40d52a
cmp byte [0x434461], 3
je 0x40d52a
cmp byte [0x434461], 4
je 0x40d52a
cmp byte [0x434461], 6
je 0x40d52a
inc dword [ebp - 8]
mov dword [ebp - 0x14], 0xffffffff
inc dword [ebp - 8]
jmp 0x40d52a
mov byte [ebp - 8], 0x41
cmp dword [ebp + 0x18], 0
je 0x40d52a
inc dword [ebp - 8]
push dword [0x434440]
call fcn.0040cb5c
add esp, 4
mov dword [0x44100c], ebp
mov dword [ebp - 0x28], eax
inc dword [ebp - 8]
cmp dword [ebp - 0x28], 0x186a0
je 0x40d52a
inc dword [ebp - 8]
push dword [0x434440]
call fcn.0040cb5c
add esp, 4
mov dword [0x44100c], ebp
fld1
push 0
push eax
fild qword [esp]
add esp, 8
fdiv qword [0x4f26e8]
fdivp st(1)
fstp qword [ebp - 0x34]
inc dword [ebp - 8]
mov dword [ebp - 0x10], 0
mov byte [ebp - 8], 0x46
fld qword [ebp - 0x34]
sub esp, 8
fstp qword [esp]
mov edi, dword [ebp - 0x10]
fld qword [0x4f26d8]
fstp qword [ebp - 0x3c]
push edi
fild dword [esp]
add esp, 4
fdiv qword [ebp - 0x3c]
sub esp, 8
fstp qword [esp]
call sub.CRTDLL.DLL_pow
add esp, 0x10
mov dword [0x44100c], ebp
fstp qword [ebp - 0x44]
fld qword [ebp - 0x3c]
fmul qword [ebp - 0x44]
fadd qword [0x4f26c8]
push eax
call fcn.00427c40
xchg dword [esp], eax
mov bl, byte [esp]
add esp, 4
mov byte [edi + 0x434874], bl
mov byte [ebp - 8], 0x45
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x100
jl 0x40d1d0
mov byte [ebp - 8], 0x47
inc dword [ebp - 8]
inc dword [ebp - 8]
jmp 0x40d52a
mov byte [ebp - 8], 0x4c
push dword [0x434438]
push dword [0x434440]
push 0x434469
call sub.CRTDLL.DLL_memcpy
add esp, 0xc
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov eax, dword [0x434438]
mov ecx, 3
xor edx, edx
div ecx
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x28]
mov dword [0x434465], edi
inc dword [ebp - 8]
jmp 0x40d52a
mov byte [ebp - 8], 0x51
mov edi, dword [0x434438]
mov dword [0x434769], edi
inc dword [ebp - 8]
movzx ebx, byte [0x434461]
cmp ebx, 0
je 0x40d2c5
cmp ebx, 2
je 0x40d303
cmp ebx, 3
je 0x40d38a
jmp 0x40d52a
mov byte [ebp - 8], 0x53
cmp byte [0x434460], 0x10
jne 0x40d2e8
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dl, byte [edi]
mov byte [0x43476e], dl
jmp 0x40d52a
mov byte [ebp - 8], 0x56
mov edi, dword [0x434440]
mov dl, byte [edi + 1]
mov byte [0x43476e], dl
inc dword [ebp - 8]
jmp 0x40d52a
mov byte [ebp - 8], 0x59
cmp byte [0x434460], 0x10
jne 0x40d34a
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dl, byte [edi]
mov byte [0x43476d], dl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dl, byte [edi + 2]
mov byte [0x43476e], dl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dl, byte [edi + 4]
mov byte [0x43476f], dl
jmp 0x40d52a
mov byte [ebp - 8], 0x5f
mov edi, dword [0x434440]
mov dl, byte [edi + 1]
mov byte [0x43476d], dl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dl, byte [edi + 3]
mov byte [0x43476e], dl
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dl, byte [edi + 5]
mov byte [0x43476f], dl
mov byte [ebp - 8], 0x63
jmp 0x40d52a
mov byte [ebp - 8], 0x65
push 0x100
push 0xff
push 0x434770
call sub.CRTDLL.DLL_memset
add esp, 0xc
mov dword [0x44100c], ebp
inc dword [ebp - 8]
push dword [0x434438]
push dword [0x434440]
push 0x434770
call sub.CRTDLL.DLL_memcpy
add esp, 0xc
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov byte [ebp - 8], 0x69
jmp 0x40d52a
mov byte [ebp - 8], 0x6c
cmp dword [0x434458], 0
je 0x40d52a
inc dword [ebp - 8]
cmp dword [ebp - 0x1c], 0
jne 0x40d410
inc dword [ebp - 8]
mov edi, dword [0x434440]
mov dword [ebp - 0x1c], edi
inc dword [ebp - 8]
mov edi, dword [0x434438]
mov dword [ebp - 0x20], edi
jmp 0x40d52a
mov byte [ebp - 8], 0x72
push dword [0x434438]
push dword [0x434440]
mov edi, dword [ebp - 0x20]
add edi, dword [ebp - 0x1c]
push edi
call sub.CRTDLL.DLL_memmove
add esp, 0xc
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov edi, dword [0x434438]
add dword [ebp - 0x20], edi
mov byte [ebp - 8], 0x75
inc dword [ebp - 8]
jmp 0x40d52a
mov byte [ebp - 8], 0x79
cmp dword [ebp - 0x14], 0
jne 0x40d52a
cmp dword [ebp - 0x1c], 0
je 0x40d52a
inc dword [ebp - 8]
movzx edx, byte [0x434461]
push edx
movzx edx, byte [0x434460]
push edx
push dword [0x434458]
call fcn.0040d655
add esp, 0xc
mov dword [0x44100c], ebp
mov dword [0x434974], eax
inc dword [ebp - 8]
mov eax, dword [0x434974]
add eax, 8
mov edi, dword [0x43445c]
add edi, 1
mul edi
mov dword [ebp - 0x2c], eax
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x24], edi
inc dword [ebp - 8]
push dword [ebp - 0x24]
push 0x40
call sub.KERNEL32.dll_GlobalAlloc
mov dword [0x44100c], ebp
mov dword [0x434978], eax
cmp eax, 0
je 0x40d52a
inc dword [ebp - 8]
mov edi, dword [0x434978]
mov dword [0x43497c], edi
inc dword [ebp - 8]
mov edi, dword [0x434974]
add edi, dword [0x43497c]
mov dword [0x434980], edi
inc dword [ebp - 8]
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
lea edi, [ebp - 0x24]
push edi
push dword [0x434980]
call fcn.00427044
add esp, 0x10
mov dword [0x44100c], ebp
cmp eax, 0
jne 0x40d52a
inc dword [ebp - 8]
mov dword [ebp - 0x14], 1
inc dword [ebp - 8]
inc dword [ebp - 8]
inc dword [ebp - 8]
mov byte [ebp - 8], 0x8e
mov byte [ebp - 8], 0x22
cmp dword [ebp - 0x14], 0
je 0x40cf11
mov byte [ebp - 8], 0x90
push dword [0x434448]
call sub.KERNEL32.dll_GlobalFree
mov dword [0x44100c], ebp
mov byte [ebp - 8], 0x92
cmp dword [ebp - 0x14], 0
jle 0x40d622
inc dword [ebp - 8]
mov eax, dword [0x434974]
mul dword [0x43445c]
mov dword [ebp - 0x28], eax
mov edi, dword [ebp - 0x28]
push dword [ebp - 0x28]
push 0x40
call sub.KERNEL32.dll_GlobalAlloc
mov dword [0x44100c], ebp
mov dword [0x434448], eax
cmp eax, 0
jne 0x40d5ae
inc dword [ebp - 8]
push dword [0x434978]
call sub.KERNEL32.dll_GlobalFree
mov dword [0x44100c], ebp
inc dword [ebp - 8]
mov eax, 0
jmp 0x40d63a
mov byte [ebp - 8], 0x98
cmp byte [0x434464], 0
jne 0x40d5cb
inc dword [ebp - 8]
call fcn.0040d6e9
mov dword [0x44100c], ebp
jmp 0x40d5da
mov byte [ebp - 8], 0x9b
call fcn.0040da61
mov dword [0x44100c], ebp
mov byte [ebp - 8], 0x9d
push dword [0x434978]
call sub.KERNEL32.dll_GlobalFree
mov dword [0x44100c], ebp
mov byte [ebp - 8], 0xaa
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040e21e
add esp, 0xc
mov dword [0x44100c], ebp
mov dword [ebp - 0x14], eax
mov byte [ebp - 8], 0xac
push dword [0x434448]
call sub.KERNEL32.dll_GlobalFree
mov dword [0x44100c], ebp
mov byte [ebp - 8], 0xaf
cmp dword [ebp - 0x14], 0
jle 0x40d633
mov ebx, 1
jmp 0x40d638
mov ebx, 0
mov eax, ebx
mov byte [ebp - 8], 0xb0
cmp dword [ebp - 0xc], 0x4f2578
je 0x40d651
push 0
call fcn.0042b684
add esp, 4
pop edi
pop ebx
leave
ret