Function at 0x402985
Capabilities:
Accept command line arguments
Hash data with crc32
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x4c
mov eax, dword [ebp + 8]
mov dword [0x419b0c], eax
call sub.COMCTL32.DLL_InitCommonControls
xor ecx, ecx
mov eax, ecx
mov edx, ecx
shl eax, 8
mov ebx, 8
test dl, 1
je 0x4029b8
shr edx, 1
xor edx, 0xedb88320
jmp 0x4029ba
shr edx, 1
test ax, ax
jns 0x4029c7
add eax, eax
xor ax, 0x1021
jmp 0x4029c9
add eax, eax
dec ebx
jne 0x4029a9
mov dword [ecx*4 + 0x519d18], edx
mov word [ecx + ecx + 0x419b10], ax
inc ecx
cmp ecx, 0x100
jne 0x40299d
mov dword [esp], 0
call sub.msvcrt.dll_time
xor edx, edx
mov dword [ebp - 0x1c], eax
xor ecx, ecx
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x2c], edx
mov dl, byte [ecx + 0x407880]
lea esi, [ebx + edx]
mov bl, byte [ebp + eax - 0x1c]
add esi, ebx
mov ebx, dword [ebp - 0x2c]
mov edx, esi
inc dword [ebp - 0x2c]
mov byte [ebx + 0x51c220], dl
mov ebx, esi
shr bl, 1
and esi, 0xff
mov edi, esi
and esi, 1
and edi, 2
lea eax, [eax + esi + 2]
and eax, 3
lea ecx, [ecx + edi + 1]
cmp dword [ebp - 0x2c], 0x10
jne 0x4029fe
mov dword [ebp - 0x1c], 0
call sub.KERNEL32.dll_GetCommandLineA
mov esi, eax
cmp byte [eax], 0x22
jne 0x402a74
inc esi
jmp 0x402a58
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dl, byte [esi + eax]
cmp dl, 0x22
je 0x402a8a
test dl, dl
je 0x402a8a
cmp eax, 0x7ffd
jbe 0x402a54
jmp 0x402a8a
inc eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dl, byte [esi + eax]
cmp dl, 0x20
je 0x402a8a
test dl, dl
je 0x402a8a
cmp eax, 0x7ffd
jbe 0x402a70
mov eax, dword [ebp - 0x1c]
mov edx, 0x419d18
mov edi, edx
mov ecx, eax
rep movsb byte es:[edi], byte [esi]
mov byte [eax + 0x419d18], 0
mov dword [ebp - 0x1c], 0
mov dword [esp + 4], 0x407438
mov dword [esp], edx
call sub.msvcrt.dll_fopen
mov ebx, eax
test eax, eax
je 0x402b58
mov dword [esp + 8], 2
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_fseek
mov dword [esp], ebx
call sub.msvcrt.dll_ftell
mov esi, eax
cmp eax, 0x47fff
ja 0x402b50
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call sub.msvcrt.dll_fseek
mov dword [esp + 0xc], ebx
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], 0x419d18
call sub.msvcrt.dll_fread
lea edx, [esi - 4]
mov eax, 0x419d18
call fcn.0040141d
cmp eax, dword [esi + 0x419d14]
jne 0x402b35
inc dword [ebp - 0x1c]
mov edx, dword [0x407878]
mov eax, 0x407880
call fcn.0040141d
cmp eax, dword [0x40787c]
jne 0x402b50
inc dword [ebp - 0x1c]
mov dword [esp], ebx
call sub.msvcrt.dll_fclose
cmp dword [ebp - 0x1c], 2
je 0x402b89
mov dword [esp + 0xc], 0x10010
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40743b
mov dword [esp], 0
call sub.USER32.dll_MessageBoxA
xor eax, eax
sub esp, 0x10
jmp 0x402bf1
lea eax, [ebp - 0x24]
mov dword [esp + 8], 0x40792a
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
mov dword [esp], 0x419d18
mov dword [ebp - 0x20], 0x100000
mov dword [ebp - 0x24], 0xffffffff
call fcn.00404523
mov eax, dword [ebp + 8]
mov dword [0x417040], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x402275
mov dword [esp + 8], 0
mov dword [esp + 4], 0x65
mov dword [esp], eax
call sub.USER32.dll_DialogBoxParamA
sub esp, 0x14
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10