Function at 0x406e60
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x7c
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp + 8]
add eax, 1
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x68], edx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x68]
mov edi, dword [ecx]
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x6c], ecx
cmp dword [ebp - 0x6c], edi
jae 0x406f9d
nop
lea esi, [esi]
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x6c]
add eax, 7
test edx, edx
cmovns eax, dword [ebp - 0x40]
sar eax, 3
lea edx, [eax + 1]
mov dword [ebp - 0x58], edx
movzx ecx, byte [ecx]
test cl, cl
mov byte [ebp - 0x5d], cl
jne 0x406ee5
mov edx, dword [ebp - 0x44]
movzx ebx, byte [edx]
movzx edx, bl
test dl, 0x70
je 0x4071c4
mov esi, edx
and esi, 0xf
cmp esi, 1
je 0x407272
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x6c], ecx
jbe 0x406f50
mov edx, dword [ebp - 0x6c]
movzx eax, byte [edx - 8]
shr al, 4
cmp al, 3
ja 0x406f50
movzx eax, byte [edx - 7]
test al, 0x70
jne 0x406f50
test al, 0xf
je 0x406f50
cmp ecx, edi
jae 0x4071ab
mov edx, ecx
xor ebx, ebx
jmp 0x406f1c
add edx, 8
cmp edi, edx
jbe 0x406f43
cmp byte [edx], 0
jne 0x406f15
movzx eax, byte [edx + 1]
and eax, 0xf
sub eax, 1
jne 0x406f15
movzx eax, byte [edx + 7]
cmp dword [ebp - 0x58], eax
sete al
add edx, 8
movzx eax, al
add ebx, eax
cmp edi, edx
ja 0x406f1c
test ebx, ebx
je 0x4071ab
nop
lea esi, [esi]
mov ebx, dword [ebp - 0x6c]
add ebx, 8
cmp ebx, edi
je 0x406f89
movzx esi, byte [ebp - 0x5d]
mov eax, esi
and eax, 0xef
cmp eax, 0x41
je 0x407060
cmp byte [ebp - 0x5d], 0x56
je 0x407110
mov eax, esi
and eax, 0xe0
cmp eax, 0x40
je 0x406fa5
cmp eax, 0x60
je 0x406fa5
add dword [ebp - 0x44], 8
add dword [ebp - 0x40], 8
mov dword [ebp - 0x6c], ebx
cmp dword [ebp - 0x6c], edi
jb 0x406ea0
add esp, 0x7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x44]
test byte [eax], 0x7f
jne 0x406f89
cmp byte [ebx], 0x20
jne 0x406f89
movzx edx, byte [ebx + 1]
mov byte [ebp - 0x38], dl
and edx, 0x7f
lea eax, [edx - 4]
cmp eax, 1
jbe 0x406fe0
cmp edx, 6
je 0x406fe0
cmp edx, 7
je 0x406fe0
sub edx, 1
jne 0x406f89
test byte [ebx + 7], 0x1f
je 0x406f89
lea esi, [esi]
mov ecx, dword [ebp - 0x58]
add ecx, 1
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x1c], ecx
jae 0x40702b
mov edx, dword [ebp + 0xc]
xor esi, esi
jmp 0x406ffc
add edx, 8
cmp edi, edx
jbe 0x407023
cmp byte [edx], 0
jne 0x406ff5
movzx eax, byte [edx + 1]
and eax, 0xf
sub eax, 1
jne 0x406ff5
movzx eax, byte [edx + 7]
cmp dword [ebp - 0x1c], eax
sete al
add edx, 8
movzx eax, al
add esi, eax
cmp edi, edx
ja 0x406ffc
test esi, esi
jne 0x406f89
movzx eax, byte [ebp - 0x38]
mov edx, dword [ebp - 0x44]
mov byte [edx], al
mov ecx, dword [ebp - 0x6c]
movzx eax, byte [ecx + 0xe]
mov byte [ecx + 6], al
movzx eax, byte [ecx + 0xf]
mov byte [ecx + 7], al
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esp], ebx
call fcn.00406dc0
jmp 0x406e7b
mov eax, dword [ebp - 0x44]
cmp byte [eax], 0
jne 0x406f6e
movzx edx, byte [ebp - 0x5d]
cmp dl, byte [ebx]
jne 0x406f6e
cmp byte [ebx + 1], 0
jne 0x406f6e
mov ecx, dword [ebp - 0x58]
add ecx, 1
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x3c], ecx
jae 0x4070db
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x48], 0
jmp 0x4070a7
add edx, 8
cmp edi, edx
jbe 0x4070d0
cmp byte [edx], 0
jne 0x4070a0
movzx eax, byte [edx + 1]
and eax, 0xf
sub eax, 1
jne 0x4070a0
movzx eax, byte [edx + 7]
cmp dword [ebp - 0x3c], eax
sete al
add edx, 8
movzx eax, al
add dword [ebp - 0x48], eax
cmp edi, edx
ja 0x4070a7
nop
mov eax, dword [ebp - 0x48]
test eax, eax
jne 0x406f6e
mov edx, dword [ebp - 0x6c]
movzx eax, byte [edx + 0xb]
test al, al
je 0x4070e9
mov byte [edx + 3], al
mov ecx, dword [ebp - 0x6c]
movzx eax, byte [ecx + 0xc]
test al, al
je 0x4070f7
mov byte [ecx + 4], al
mov edx, dword [ebp - 0x6c]
movzx eax, byte [edx + 0xd]
test al, al
je 0x407045
mov byte [edx + 5], al
jmp 0x407045
mov ecx, dword [ebp - 0x44]
cmp byte [ecx], 0
jne 0x406f78
cmp byte [ebx], 0x20
nop
jne 0x406f78
movzx edx, byte [ebx + 1]
and edx, 0xf
lea eax, [edx - 5]
cmp eax, 1
jbe 0x407150
cmp edx, 7
je 0x407150
sub edx, 1
jne 0x406fad
test byte [ebx + 7], 0x1f
je 0x406fad
lea esi, [esi]
mov eax, dword [ebp - 0x58]
add eax, 1
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x20], eax
jae 0x40719b
mov edx, dword [ebp + 0xc]
xor esi, esi
jmp 0x40716c
add edx, 8
cmp edi, edx
jbe 0x407193
cmp byte [edx], 0
jne 0x407165
movzx eax, byte [edx + 1]
and eax, 0xf
sub eax, 1
jne 0x407165
movzx eax, byte [edx + 7]
cmp dword [ebp - 0x20], eax
sete al
add edx, 8
movzx eax, al
add esi, eax
cmp edi, edx
ja 0x40716c
test esi, esi
jne 0x406fad
mov edx, dword [ebp - 0x6c]
cmp byte [edx + 0xe], 0
jne 0x4071ab
movzx eax, byte [edx + 4]
mov byte [edx + 0xe], al
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [esp], ecx
mov ecx, dword [ebp + 0x10]
call fcn.00406dc0
jmp 0x406e7b
test bl, bl
jne 0x406ee5
mov eax, dword [ebp - 0x6c]
cmp byte [eax + 2], 0
jne 0x406ee5
cmp byte [eax + 3], 0
lea esi, [esi]
jne 0x406ee5
cmp byte [eax + 4], 0
jne 0x406ee5
cmp byte [eax + 5], 0
jne 0x406ee5
cmp byte [eax + 6], 0
nop
jne 0x406ee5
cmp byte [eax + 7], 0
jne 0x406ee5
add eax, 8
cmp edi, eax
jne 0x407259
cmp dword [ebp + 0xc], edi
jae 0x407259
mov edx, dword [ebp + 0xc]
xor ebx, ebx
jmp 0x40722a
add edx, 8
cmp edi, edx
jbe 0x407251
cmp byte [edx], 0
jne 0x407223
movzx eax, byte [edx + 1]
and eax, 0xf
sub eax, 1
jne 0x407223
movzx eax, byte [edx + 7]
cmp dword [ebp - 0x58], eax
sete al
add edx, 8
movzx eax, al
add ebx, eax
cmp edi, edx
ja 0x40722a
test ebx, ebx
jne 0x406ee5
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 8]
mov dword [esp], edx
mov edx, dword [ebp + 0xc]
call fcn.00406dc0
jmp 0x406e7b
mov ecx, dword [ebp - 0x6c]
add eax, 3
add ecx, 7
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x6c]
movzx edx, byte [ecx + 7]
cmp edx, eax
jne 0x406ee5
movzx eax, byte [ecx + 8]
shr al, 4
cmp al, 7
ja 0x406ee5
mov ecx, eax
shl esi, cl
mov eax, esi
test al, 0xc7
je 0x4073c0
mov eax, dword [ebp - 0x58]
add eax, 1
cmp dword [ebp + 0xc], edi
mov dword [ebp - 0x5c], eax
jae 0x4072f8
mov edx, dword [ebp + 0xc]
xor esi, esi
jmp 0x4072c7
add edx, 8
cmp edx, edi
jae 0x4072f0
cmp byte [edx], 0
jne 0x4072c0
movzx eax, byte [edx + 1]
and eax, 0xf
sub eax, 1
jne 0x4072c0
movzx eax, byte [edx + 7]
cmp dword [ebp - 0x5c], eax
sete al
add edx, 8
movzx eax, al
add esi, eax
cmp edx, edi
jb 0x4072c7
nop
test esi, esi
jne 0x406ee5
mov edx, dword [ebp - 0x6c]
shr bl, 4
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x6c]
add edx, 4
add ecx, 5
mov dword [ebp - 0x54], ecx
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x50], edx
movzx edx, byte [eax + 5]
mov eax, ebx
shl eax, 0x18
add edi, 3
or edx, eax
movzx eax, byte [ecx + 3]
shl eax, 0x10
or edx, eax
movzx eax, byte [ecx + 4]
shl eax, 8
or edx, eax
mov eax, edx
and edx, 0x8ffffff
shr eax, 0x18
mov ebx, eax
and eax, 4
and ebx, 7
sar eax, 1
xor ebx, 1
xor ebx, eax
mov eax, dword [ecx + 8]
shl ebx, 0x18
or ebx, edx
mov edx, ecx
add edx, 8
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 8], 0
mov dword [ecx + 4], eax
mov dword [edx + 4], 0
movzx esi, byte [ecx]
mov edx, esi
shr dl, 4
cmp dl, 7
ja 0x4073d5
mov eax, 1
mov ecx, edx
shl eax, cl
test al, 0xc0
jne 0x407412
test al, 0x38
jne 0x407402
test al, 7
je 0x4073d5
mov eax, dword [ebp - 0x54]
mov byte [eax], bl
mov edx, dword [ebp - 0x50]
shr ebx, 8
mov byte [edx], bl
shr ebx, 8
mov byte [edi], bl
mov ecx, dword [ebp - 0x44]
shr ebx, 8
mov eax, ebx
shl eax, 4
or byte [ecx], al
jmp 0x406e7b
test al, 0x38
je 0x406ee5
test bl, bl
jns 0x4072aa
jmp 0x406ee5
call sub.cygwin1.dll___getreent
mov ecx, esi
movzx edx, cl
mov dword [esp + 8], edx
mov dword [esp + 4], str.ERR:__Unhandled_applyif_scenario___x___file_bug_n
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sub.cygwin1.dll_fprintf
mov dword [esp], 1
call sub.cygwin1.dll_exit
mov eax, dword [ebp - 0x4c]
mov byte [eax], bl
mov edx, dword [ebp - 0x6c]
shr ebx, 0x10
mov byte [edx + 6], bl
jmp 0x4073ab
mov eax, dword [ebp - 0x4c]
mov byte [eax], bl
mov edx, dword [ebp - 0x6c]
shr ebx, 8
mov byte [edx + 6], bl
shr ebx, 8
mov byte [edx + 2], bl
mov ecx, dword [ebp - 0x44]
shr ebx, 8
mov eax, ebx
shl eax, 4
mov byte [ecx], al
jmp 0x406e7b