Function at 0x405050
Capabilities:
Hash data with crc32

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
cmp dword [0x412064], 2
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
jg 0x405510
cmp edi, 0xa
je 0x40555e
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x2a
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
mov eax, dword [0x414570]
test eax, eax
mov dword [0x414574], eax
je 0x4051a0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x43
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
mov eax, edi
movzx ebx, al
movzx eax, byte [ebx + 0x412140]
cmp al, 1
je 0x4055c0
cmp al, 2
je 0x4052d0
test al, al
je 0x4052e2
mov eax, edi
not eax
movzx eax, al
mov ebp, dword [eax*4 + 0x40c040]
lea eax, [esi + 4]
mov dword [esp + 0x1c], eax
xor ebp, 0xffffff
movzx ebx, byte [esi]
mov eax, ebx
xor eax, ebp
shr ebp, 8
movzx eax, al
xor ebp, dword [eax*4 + 0x40c040]
movzx eax, byte [ebx + 0x412140]
cmp al, 1
je 0x4054d0
cmp al, 2
je 0x405424
test al, al
je 0x405436
add esi, 1
cmp esi, dword [esp + 0x1c]
jne 0x40510e
not ebp
mov esi, 4
mov eax, ebp
movzx ebx, al
movzx eax, byte [ebx + 0x412140]
cmp al, 1
je 0x4054a2
cmp al, 2
je 0x4053f0
test al, al
je 0x405402
shr ebp, 8
sub esi, 1
jne 0x405151
cmp edi, 0xa
je 0x4052c0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp + 0x40], eax
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
jmp sub.cygwin1.dll_fflush
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x41
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
mov eax, edi
movzx ebx, al
movzx eax, byte [ebx + 0x412140]
cmp al, 1
je 0x405595
cmp al, 2
je 0x405304
test al, al
je 0x405316
mov ebx, edi
xor bx, word [0x40c440]
lea eax, [esi + 4]
mov dword [esp + 0x1c], eax
movzx ebp, byte [esi]
movzx ecx, byte [ebp + 0x412140]
mov eax, ebp
cmp cl, 1
je 0x405460
cmp cl, 2
je 0x4053b0
test cl, cl
je 0x4053c2
movzx edx, bh
shl ebx, 8
add esi, 1
xor bx, word [edx + edx + 0x40c440]
xor ebx, eax
cmp esi, dword [esp + 0x1c]
jne 0x4051ec
movzx eax, bh
movzx ebx, bx
movzx eax, word [eax + eax + 0x40c440]
shl ebx, 8
xor ebx, eax
movzx eax, bh
shl ebx, 8
xor bx, word [eax + eax + 0x40c440]
mov esi, ebx
shr si, 8
movzx edx, si
movzx edx, byte [edx + 0x412140]
cmp dl, 1
je 0x4055f0
cmp dl, 2
je 0x405340
test dl, dl
je 0x405352
movzx eax, bl
mov ebx, eax
movzx eax, byte [eax + 0x412140]
cmp al, 1
je 0x405385
cmp al, 2
je 0x405630
test al, al
jne 0x40517d
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov byte [0x412240], bl
movsx ebx, bl
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.cygwin1.dll_putc
cmp edi, 0xa
jne 0x405186
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
je 0x4055c0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov byte [0x412240], bl
movsx ebx, bl
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.cygwin1.dll_putc
jmp 0x4050f3
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
je 0x405595
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov byte [0x412240], bl
movsx ebx, bl
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.cygwin1.dll_putc
jmp 0x4051dc
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
je 0x4055f0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov ecx, esi
mov byte [0x412240], cl
mov dword [esp + 4], eax
movsx eax, cl
mov dword [esp], eax
call sub.cygwin1.dll_putc
movzx eax, bl
mov ebx, eax
movzx eax, byte [eax + 0x412140]
cmp al, 1
jne 0x40528a
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
xor ebx, 0x40
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
jmp 0x4052a2
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
je 0x405460
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov ecx, ebp
movsx edx, cl
mov byte [0x412240], cl
mov dword [esp], edx
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
movzx eax, byte [esi]
jmp 0x405212
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
je 0x4054a2
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov byte [0x412240], bl
movsx ebx, bl
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.cygwin1.dll_putc
jmp 0x405175
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
je 0x4054d0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov byte [0x412240], bl
mov dword [esp + 4], eax
movsx eax, bl
mov dword [esp], eax
call sub.cygwin1.dll_putc
jmp 0x405141
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov edx, ebp
mov eax, dword [eax + 8]
xor edx, 0x40
mov byte [0x412240], dl
movsx edx, dl
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.cygwin1.dll_putc
movzx eax, byte [esi]
jmp 0x405212
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
xor ebx, 0x40
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
jmp 0x40540a
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov ecx, dword [eax + 8]
mov eax, ebx
xor eax, 0x40
mov byte [0x412240], al
movsx eax, al
mov dword [esp + 4], ecx
mov dword [esp], eax
call sub.cygwin1.dll_putc
jmp 0x405141
movzx eax, byte [esi + 3]
movzx edx, byte [esi + 2]
movzx ebp, byte [esi]
mov ebx, dword [edi*4 + 0x40f3cc]
shl eax, 8
or eax, edx
movzx edx, byte [esi + 1]
shl eax, 8
or eax, edx
shl eax, 8
or ebp, eax
call sub.cygwin1.dll___getreent
mov dword [esp + 0xc], ebp
mov dword [esp + 8], ebx
mov dword [esp + 4], str.zsbhdr:__s__lx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
cmp edi, 0xa
jne 0x405075
mov ebx, dword [0x414560]
sub ebx, 1
js 0x405075
lea esi, [esi]
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
sub ebx, 1
mov dword [esp], 0
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
cmp ebx, 0xffffffff
jne 0x405570
jmp 0x405075
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
xor ebx, 0x40
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
jmp 0x40531e
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
xor ebx, 0x40
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
jmp 0x4052ea
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0x18
mov dword [esp + 4], eax
call sub.cygwin1.dll_putc
call sub.cygwin1.dll___getreent
mov edx, dword [eax + 8]
mov eax, esi
xor eax, 0x40
mov byte [0x412240], al
movsx eax, al
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.cygwin1.dll_putc
jmp 0x405276
movzx eax, byte [0x412240]
and eax, 0x7f
cmp al, 0x40
jne 0x40529a
jmp 0x405385