Function at 0x402910
Capabilities:
Terminate process

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov edi, dword [0x435078]
mov ebp, dword [0x43507c]
cmp eax, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ebp
jb 0x402a15
jmp 0x402edc
lea ebp, [edi + eax]
mov eax, dword [esp + 0x4c]
add eax, ebp
cmp byte [0x4350c8], 0
mov dword [esp + 0x10], eax
jne 0x402a64
cmp ebp, dword [esp + 0x30]
je 0x402ec7
cmp byte [0x4350c9], 0
mov eax, dword [esp + 0x10]
movzx esi, byte [0x435f64]
mov dword [esp + 0x2c], eax
je 0x402aca
mov ecx, dword [0x4350fc]
sub ecx, dword [esp + 0x10]
mov edi, dword [0x4350f0]
mov ebp, dword [0x4350f4]
mov eax, dword [0x435078]
mov edx, dword [0x43507c]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
mov ebx, ecx
sar ebx, 0x1f
sub edi, ecx
sbb ebp, ebx
mov dword [0x4350e8], edi
xor ecx, ecx
mov dword [0x4350ec], ebp
xor edi, edi
sub eax, dword [esp + 0x10]
mov dword [0x435070], ecx
sbb edx, dword [esp + 0x14]
mov dword [0x435074], edi
mov byte [0x435040], 1
mov ecx, eax
mov dword [0x435078], eax
mov eax, edx
mov ebx, edx
mov dword [0x43507c], edx
or eax, ecx
je 0x402eaa
cmp byte [0x43506d], 0
jne 0x402eaa
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x30], edi
jbe 0x402a7c
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
lea esi, [esp + 0x4c]
mov dword [esp + 0xc], 0
mov dword [esp + 8], esi
sub eax, edi
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [0x435114]
cmp eax, 0xffffffff
jne 0x402940
cmp byte [0x4350c8], 0
je 0x402ec7
mov eax, dword [esp + 0x30]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x10], eax
mov ebp, eax
cmp ebp, dword [esp + 0x2c]
ja 0x402aa0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov edi, dword [esp + 0x2c]
cmp dword [esp + 0x30], edi
ja 0x402a15
mov eax, dword [esp + 0x38]
sub eax, dword [0x435078]
mov edx, dword [esp + 0x3c]
sbb edx, dword [0x43507c]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, byte [0x4350c9]
movzx esi, byte [0x435f64]
test al, al
mov byte [esp + 0x1c], al
jne 0x402ddf
mov eax, dword [esp + 0x10]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
cmp dword [0x435074], 0
jle 0x402e1b
mov eax, ebp
call fcn.004027c0
cmp byte [0x4350c9], 0
jne 0x402cdf
mov eax, dword [0x435080]
test eax, eax
mov dword [esp + 0x24], eax
cmove eax, dword [0x435100]
mov dword [esp + 0x20], eax
mov eax, dword [0x4350b8]
mov dword [esp + 0x1c], eax
mov eax, dword [0x4350bc]
cmp eax, 0
mov dword [esp + 0x28], eax
jl 0x402e3e
jle 0x402e33
xor edx, edx
mov ecx, esi
xor eax, eax
mov ebx, ebp
mov dword [esp + 0x34], ebp
mov edi, edx
mov esi, eax
mov ebp, dword [esp + 0x28]
mov edx, ecx
jmp 0x402b54
add esi, 1
mov eax, dword [esp + 0x1c]
adc edi, 0
mov ecx, edi
xor ecx, ebp
xor eax, esi
or ecx, eax
je 0x402b72
cmp dword [esp + 0x20], ebx
jae 0x402b40
lea esi, [esi]
sub ebx, 1
cmp dl, byte [ebx - 1]
je 0x402b40
sub ebx, 1
cmp dl, byte [ebx - 1]
jne 0x402b60
jmp 0x402b40
cmp byte [0x435040], 0
mov ebp, dword [esp + 0x34]
mov esi, edx
je 0x402be8
cmp dword [esp + 0x24], ebx
je 0x402be8
mov edi, dword [0x42803c]
test edi, edi
je 0x402be8
mov ecx, dword [0x43513c]
mov eax, dword [0x428024]
test ecx, ecx
jne 0x402ea0
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [0x42803c]
mov dword [esp], eax
call sub.cygwin1.dll_fputs
mov edx, dword [0x43513c]
mov eax, dword [0x428024]
test edx, edx
jne 0x402e96
call sub.cygwin1.dll___getreent
mov eax, dword [eax + 8]
mov dword [esp], 0xa
mov dword [esp + 4], eax
call sub.cygwin1.dll_fputc
cmp ebp, ebx
jbe 0x402ed5
mov eax, esi
movsx eax, al
mov edi, eax
mov eax, esi
mov byte [esp + 0x1c], al
mov esi, edi
nop
mov eax, ebp
mov dword [esp], ebx
mov dword [esp + 4], esi
sub eax, ebx
mov dword [esp + 8], eax
call sub.cygwin1.dll_memchr
lea edi, [eax + 1]
mov ecx, 0x2d
mov eax, ebx
mov edx, edi
mov ebx, edi
call fcn.00402360
cmp edi, ebp
jb 0x402c00
movzx esi, byte [esp + 0x1c]
movzx eax, byte [0x4350c8]
movzx ecx, byte [0x4350c9]
test al, al
mov byte [esp + 0x1c], cl
jne 0x402cf4
cmp byte [esp + 0x1c], 0
jne 0x402980
mov edi, dword [esp + 0x10]
mov eax, ebp
mov ecx, 0x3a
mov edx, edi
mov ebp, edi
call fcn.00402360
movzx eax, byte [0x4350c9]
mov edx, dword [0x43507c]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
mov byte [esp + 0x1c], al
mov eax, dword [0x435078]
nop
mov ecx, dword [0x4350fc]
mov ebx, dword [0x4350f4]
sub ecx, ebp
mov edi, ecx
mov ebp, ecx
mov ecx, dword [0x4350f0]
sar ebp, 0x1f
sub ecx, edi
sbb ebx, ebp
cmp byte [esp + 0x1c], 0
mov dword [0x4350e8], ecx
mov dword [0x4350ec], ebx
jne 0x402cd6
mov edi, dword [0x4350b4]
mov ecx, dword [0x4350b0]
test edi, edi
jns 0x4029ca
xor ecx, ecx
xor edi, edi
jmp 0x4029ca
movzx eax, byte [0x4350c8]
test al, al
mov byte [esp + 0x1c], al
je 0x402980
mov edi, ebp
cmp dword [esp + 0x10], edi
mov eax, dword [0x435078]
jbe 0x402dfe
mov ebx, eax
mov dword [esp + 0x20], eax
mov eax, dword [0x43507c]
mov ecx, eax
mov dword [esp + 0x24], eax
mov eax, ebx
cmp ecx, 0
mov edx, ecx
jl 0x402e7f
jle 0x402e76
mov eax, esi
xor edx, edx
mov ebx, edi
movsx eax, al
mov edi, edx
mov dword [esp + 0x28], eax
xor eax, eax
mov esi, eax
lea esi, [esi]
mov eax, dword [esp + 0x10]
mov dword [esp], ebx
sub eax, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
call sub.cygwin1.dll_memchr
cmp byte [esp + 0x1c], 0
lea ebp, [eax + 1]
je 0x402d93
add esi, 1
adc edi, 0
cmp dword [esp + 0x10], ebp
jbe 0x402dca
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ebx, ebp
cmp edi, ecx
mov edx, ecx
jl 0x402d40
jg 0x402d86
cmp esi, eax
jb 0x402d40
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
jmp 0x402c90
mov eax, ebx
mov ecx, 0x3a
mov edx, ebp
call fcn.00402360
movzx eax, byte [0x4350c9]
add esi, 1
adc edi, 0
cmp dword [esp + 0x10], ebp
mov byte [esp + 0x1c], al
mov eax, dword [0x435078]
mov dword [esp + 0x20], eax
mov eax, dword [0x43507c]
mov dword [esp + 0x24], eax
ja 0x402d70
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
jmp 0x402c90
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x10], ebp
cmp dword [esp + 0x10], edi
mov dword [esp + 0x2c], eax
mov eax, dword [0x435078]
ja 0x402d03
mov edx, dword [0x43507c]
mov ebp, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
jmp 0x402c90
jl 0x402aeb
cmp dword [0x435070], 0
ja 0x402ad7
jmp 0x402aeb
cmp dword [esp + 0x1c], 0
ja 0x402b22
mov eax, dword [esp + 0x28]
or eax, dword [esp + 0x1c]
je 0x402e51
mov eax, dword [0x4350b4]
test eax, eax
js 0x402e6f
cmp byte [0x435040], 0
je 0x402e6f
cmp dword [esp + 0x24], ebp
je 0x402e6f
mov eax, dword [0x42803c]
mov ebx, ebp
test eax, eax
jne 0x402b91
mov edi, ebp
jmp 0x402c30
cmp ebx, 0
ja 0x402d27
mov ebp, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
jmp 0x402c90
call fcn.00401d70
jmp 0x402bd0
call fcn.00401d40
jmp 0x402ba4
cmp byte [0x43506c], 0
jne 0x402ee2
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
sub eax, ecx
sbb edx, ebx
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [0x435078]
mov ebx, dword [0x43507c]
jmp 0x402eb3
mov edi, ebx
jmp 0x402c30
xor eax, eax
xor edx, edx
jmp 0x402ebf
mov dword [esp], 0
call sub.cygwin1.dll_exit
nop