Function at 0x40cc6a
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x588]
sub esp, 0x608
mov eax, dword [0x488548]
xor eax, ebp
mov dword [ebp + 0x584], eax
mov eax, dword [ebp + 0x5a4]
xor ecx, ecx
push ebx
xor ebx, ebx
cmp dword [0x48aa10], 2
push esi
mov esi, dword [ebp + 0x594]
setne cl
push edi
mov edi, dword [ebp + 0x590]
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x50], ebx
dec ecx
and ecx, 0xc0000
add ecx, 0x40000
cmp dword [0x48aa04], 6
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x44], ecx
jb 0x40ccf8
lea eax, [ebp - 0x70]
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 0x48000000
call fcn.00424f73
mov dword [ebp - 0x48], eax
cmp eax, ebx
jne 0x40cd05
push 8
pop eax
jmp 0x40ce7a
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], 0x8000000
mov dword [ebp - 0x48], ebx
mov ecx, dword [ebp - 0x44]
call fcn.00424f73
mov dword [ebp - 0x4c], eax
cmp eax, ebx
je 0x40ccf0
push dword [ebp + 0x5a0]
push dword [ebp + 0x59c]
push esi
push edi
call fcn.0040caa2
jmp 0x40ce55
mov eax, dword [ebp + 0x598]
sub eax, 3
mov dword [ebp - 0x20], ebx
je 0x40cd64
dec eax
je 0x40cd59
dec eax
je 0x40cd4e
dec eax
jne 0x40cd6d
lea eax, [ebp - 0x20]
push eax
call fcn.00455d04
jmp 0x40cd6d
lea eax, [ebp - 0x20]
push eax
call fcn.00455cf3
jmp 0x40cd6d
lea eax, [ebp - 0x20]
push eax
call fcn.00455703
jmp 0x40cd6d
lea eax, [ebp - 0x20]
push eax
call fcn.00454eec
push ebx
push dword [ebp - 0x54]
lea eax, [esi + 0xc]
push 3
push ebx
push 1
push 0x80000000
push eax
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x38], ebx
call dword [sym.imp.PPLIB32W.DLL__CreateFileL_28]
mov dword [ebp - 0x30], eax
cmp eax, 0xffffffff
jne 0x40cda5
push ebx
push esi
call fcn.0040cc27
jmp 0x40ce55
cmp dword [ebp - 0x2c], ebx
je 0x40cdb4
xor eax, eax
lea edi, [ebp - 0x70]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea esi, [ebp - 0x38]
mov eax, dword [esi]
sub eax, 0
je 0x40ce94
dec eax
jne 0x40cf22
mov eax, dword [ebp - 0x28]
xor eax, 1
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + eax*4 - 0x38]
xor ecx, ecx
cmp eax, 2
setne cl
mov dword [ebp - 0x3c], eax
lea edi, [ebp + ebx - 0x80]
lea eax, [ebp - 0x70]
push ecx
push edi
push eax
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
je 0x40ce18
mov edi, dword [edi]
add dword [ebp - 0x68], edi
mov dword [esi], 2
cmp dword [ebp - 0x68], edi
jae 0x40ce0b
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x28], eax
mov ebx, eax
jmp 0x40ced0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
je 0x40ceed
cmp dword [ebp - 0x3c], 2
jne 0x40ce38
cmp eax, 0x3e5
je 0x40cf22
push eax
push dword [ebp - 0x24]
call fcn.0040cc27
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x5c]
inc dword [eax + 8]
mov esi, dword [ebp - 0x24]
xor ebx, ebx
push esi
call fcn.0040caef
test eax, eax
jne 0x40cd2c
mov ecx, dword [ebp - 0x4c]
call fcn.00424f83
mov ecx, dword [ebp - 0x48]
cmp ecx, ebx
je 0x40ce77
call fcn.00424f83
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp + 0x584]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046890b
add ebp, 0x588
leave
ret 0x18
push dword [ebp - 0x58]
lea edi, [ebp + ebx - 0x80]
push edi
push dword [ebp - 0x44]
push dword [ebp + ebx - 0x4c]
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x40cee2
cmp dword [ebp - 0x2c], 0
mov dword [esi], 2
je 0x40cf22
mov edi, dword [edi]
add dword [ebp - 0x68], edi
cmp dword [ebp - 0x68], edi
jae 0x40cec9
inc dword [ebp - 0x64]
xor dword [ebp - 0x28], 1
mov ebx, dword [ebp - 0x28]
shl ebx, 2
lea esi, [ebp + ebx - 0x38]
cmp dword [esi], 0
je 0x40cdb7
jmp 0x40cf22
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x26
jne 0x40cef8
and dword [edi], 0
mov dword [esi], 2
jmp 0x40cf22
cmp dword [ebp - 0x2c], 0
je 0x40ce38
cmp eax, 0x3e5
jne 0x40ce38
mov ecx, dword [ebp - 0x28]
xor eax, eax
inc eax
xor ecx, eax
mov dword [esi], eax
cmp dword [ebp + ecx*4 - 0x38], 2
jne 0x40cdb7
mov ecx, dword [ebp - 0x40]
shl ecx, 2
lea eax, [ebp + ecx - 0x38]
cmp dword [eax], 2
mov dword [ebp - 0x3c], eax
je 0x40cf3e
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40cfb0
mov eax, dword [ebp + ecx - 0x4c]
mov edi, dword [ebp + ecx - 0x80]
mov ecx, dword [ebp + 0x598]
sub ecx, 3
je 0x40cf90
dec ecx
je 0x40cf83
dec ecx
je 0x40cf76
dec ecx
je 0x40cf69
push dword [ebp - 0x20]
push edi
push eax
call fcn.0040c974
mov dword [ebp - 0x20], eax
jmp 0x40cf9b
push edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00455d15
jmp 0x40cf9b
push edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00455e19
jmp 0x40cf9b
push edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0045597e
jmp 0x40cf9b
push edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.004555e8
cmp edi, dword [ebp - 0x44]
jb 0x40cfea
mov eax, dword [ebp - 0x3c]
and dword [eax], 0
cmp dword [ebp - 0x2c], 0
je 0x40cfb0
xor dword [ebp - 0x40], 1
mov eax, dword [ebp - 0x24]
add eax, 0xc
push eax
push dword [ebp - 0x5c]
push dword [ebp - 0x74]
call fcn.00428983
test eax, eax
je 0x40cdb7
mov eax, dword [ebp - 0x24]
mov dword [eax + 0x4bc], 0xfffffffe
mov dword [eax + 4], 0x4739e8
mov dword [ebp - 0x50], 0x4c7
jmp 0x40ce41
mov eax, dword [ebp + 0x598]
sub eax, 3
je 0x40d060
dec eax
je 0x40d047
dec eax
je 0x40d02e
dec eax
je 0x40d015
push dword [ebp - 0x20]
lea eax, [ebp + 0x54]
push str.CRC:_08x
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
jmp 0x40d087
lea eax, [ebp + 0x504]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00455e32
push str.SHA256:
push 0x20
jmp 0x40d077
lea eax, [ebp + 0x504]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00455e1e
push str.SHA224:
push 0x1c
jmp 0x40d077
lea eax, [ebp + 0x504]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00455a30
push str.SHA1:
push 0x14
jmp 0x40d077
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp + 0x504]
push eax
call fcn.00455686
push str.MD5:
push 0x10
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x504]
push eax
call fcn.0040ca5e
lea eax, [ebp + 0x54]
push eax
push dword [ebp - 0x24]
call fcn.0040cbbe
jmp 0x40ce41