409922:	8b 4d dc             	mov    -0x24(%ebp),%ecx
409925:	84 c0                	test   %al,%al
409927:	74 03                	je     0x40992c
409929:	88 46 ff             	mov    %al,-0x1(%esi)
40992c:	52                   	push   %edx
40992d:	e8 ca 84 01 00       	call   0x421dfc
409932:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409935:	5f                   	pop    %edi
409936:	33 cd                	xor    %ebp,%ecx
409938:	5e                   	pop    %esi
409939:	e8 c4 60 03 00       	call   0x43fa02
40993e:	c9                   	leave
40993f:	c2 0c 00             	ret    $0xc
409942:	68 d0 65 49 00       	push   $0x4965d0
409947:	ff 75 e8             	push   -0x18(%ebp)
40994a:	e8 bf 8d 01 00       	call   0x42270e
40994f:	cc                   	int3
409950:	55                   	push   %ebp
409951:	8b ec                	mov    %esp,%ebp
409953:	83 ec 1c             	sub    $0x1c,%esp
409956:	8b 45 08             	mov    0x8(%ebp),%eax
409959:	8b 55 18             	mov    0x18(%ebp),%edx
40995c:	56                   	push   %esi
40995d:	57                   	push   %edi
40995e:	33 ff                	xor    %edi,%edi
409960:	89 4d f8             	mov    %ecx,-0x8(%ebp)
409963:	89 7d fc             	mov    %edi,-0x4(%ebp)
409966:	8b f7                	mov    %edi,%esi
409968:	85 c0                	test   %eax,%eax
40996a:	79 0c                	jns    0x409978
40996c:	46                   	inc    %esi
40996d:	c6 45 fc 2d          	movb   $0x2d,-0x4(%ebp)
409971:	f7 d8                	neg    %eax
409973:	89 45 08             	mov    %eax,0x8(%ebp)
409976:	eb 1c                	jmp    0x409994
409978:	f6 c2 01             	test   $0x1,%dl
40997b:	74 17                	je     0x409994
40997d:	8b c2                	mov    %edx,%eax
40997f:	d1 e8                	shr    $1,%eax
409981:	24 01                	and    $0x1,%al
409983:	f6 d8                	neg    %al
409985:	1a c0                	sbb    %al,%al
409987:	33 f6                	xor    %esi,%esi
409989:	24 0b                	and    $0xb,%al
40998b:	04 20                	add    $0x20,%al
40998d:	46                   	inc    %esi
40998e:	88 45 fc             	mov    %al,-0x4(%ebp)
409991:	8b 45 08             	mov    0x8(%ebp),%eax
409994:	0f be 4d 20          	movsbl 0x20(%ebp),%ecx
409998:	83 f9 64             	cmp    $0x64,%ecx
40999b:	0f 8f 94 00 00 00    	jg     0x409a35
4099a1:	74 62                	je     0x409a05
4099a3:	85 c9                	test   %ecx,%ecx
4099a5:	74 5e                	je     0x409a05
4099a7:	83 f9 42             	cmp    $0x42,%ecx
4099aa:	74 12                	je     0x4099be
4099ac:	83 f9 58             	cmp    $0x58,%ecx
4099af:	0f 84 97 00 00 00    	je     0x409a4c
4099b5:	83 f9 62             	cmp    $0x62,%ecx
4099b8:	0f 85 9d 01 00 00    	jne    0x409b5b
4099be:	c1 ea 03             	shr    $0x3,%edx
4099c1:	8b c8                	mov    %eax,%ecx
4099c3:	f6 c2 01             	test   $0x1,%dl
4099c6:	74 0f                	je     0x4099d7
4099c8:	8a 45 20             	mov    0x20(%ebp),%al
4099cb:	c6 44 35 fc 30       	movb   $0x30,-0x4(%ebp,%esi,1)
4099d0:	88 44 35 fd          	mov    %al,-0x3(%ebp,%esi,1)
4099d4:	83 c6 02             	add    $0x2,%esi
4099d7:	47                   	inc    %edi
4099d8:	d1 e9                	shr    $1,%ecx
4099da:	75 fb                	jne    0x4099d7
4099dc:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4099df:	8d 45 fc             	lea    -0x4(%ebp),%eax
4099e2:	56                   	push   %esi
4099e3:	50                   	push   %eax
4099e4:	8d 45 0c             	lea    0xc(%ebp),%eax
4099e7:	50                   	push   %eax
4099e8:	57                   	push   %edi
4099e9:	e8 c0 ea ff ff       	call   0x4084ae
4099ee:	8b 55 08             	mov    0x8(%ebp),%edx
4099f1:	8a ca                	mov    %dl,%cl
4099f3:	80 e1 01             	and    $0x1,%cl
4099f6:	80 c1 30             	add    $0x30,%cl
4099f9:	88 08                	mov    %cl,(%eax)
4099fb:	48                   	dec    %eax
4099fc:	d1 ea                	shr    $1,%edx
4099fe:	75 f1                	jne    0x4099f1
409a00:	e9 50 01 00 00       	jmp    0x409b55
409a05:	50                   	push   %eax
409a06:	e8 7e 61 01 00       	call   0x41fb89
409a0b:	59                   	pop    %ecx
409a0c:	56                   	push   %esi
409a0d:	8d 4d fc             	lea    -0x4(%ebp),%ecx
409a10:	51                   	push   %ecx
409a11:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409a14:	51                   	push   %ecx
409a15:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409a18:	50                   	push   %eax
409a19:	e8 90 ea ff ff       	call   0x4084ae
409a1e:	ff 75 08             	push   0x8(%ebp)
409a21:	8b 55 08             	mov    0x8(%ebp),%edx
409a24:	40                   	inc    %eax
409a25:	57                   	push   %edi
409a26:	52                   	push   %edx
409a27:	50                   	push   %eax
409a28:	e8 bd df ff ff       	call   0x4079ea
409a2d:	83 c4 10             	add    $0x10,%esp
409a30:	e9 20 01 00 00       	jmp    0x409b55
409a35:	83 e9 6e             	sub    $0x6e,%ecx
409a38:	0f 84 ab 00 00 00    	je     0x409ae9
409a3e:	83 e9 01             	sub    $0x1,%ecx
409a41:	74 67                	je     0x409aaa
409a43:	83 e9 09             	sub    $0x9,%ecx
409a46:	0f 85 0f 01 00 00    	jne    0x409b5b
409a4c:	c1 ea 03             	shr    $0x3,%edx
409a4f:	f6 c2 01             	test   $0x1,%dl
409a52:	74 0f                	je     0x409a63
409a54:	8a 4d 20             	mov    0x20(%ebp),%cl
409a57:	c6 44 35 fc 30       	movb   $0x30,-0x4(%ebp,%esi,1)
409a5c:	88 4c 35 fd          	mov    %cl,-0x3(%ebp,%esi,1)
409a60:	83 c6 02             	add    $0x2,%esi
409a63:	c1 e8 04             	shr    $0x4,%eax
409a66:	47                   	inc    %edi
409a67:	85 c0                	test   %eax,%eax
409a69:	75 f8                	jne    0x409a63
409a6b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409a6e:	8d 45 fc             	lea    -0x4(%ebp),%eax
409a71:	56                   	push   %esi
409a72:	50                   	push   %eax
409a73:	8d 45 0c             	lea    0xc(%ebp),%eax
409a76:	50                   	push   %eax
409a77:	57                   	push   %edi
409a78:	e8 31 ea ff ff       	call   0x4084ae
409a7d:	80 7d 20 78          	cmpb   $0x78,0x20(%ebp)
409a81:	8b c8                	mov    %eax,%ecx
409a83:	8b 55 08             	mov    0x8(%ebp),%edx
409a86:	be 90 65 49 00       	mov    $0x496590,%esi
409a8b:	b8 a4 65 49 00       	mov    $0x4965a4,%eax
409a90:	0f 45 f0             	cmovne %eax,%esi
409a93:	8b c2                	mov    %edx,%eax
409a95:	c1 ea 04             	shr    $0x4,%edx
409a98:	83 e0 0f             	and    $0xf,%eax
409a9b:	8a 04 30             	mov    (%eax,%esi,1),%al
409a9e:	88 01                	mov    %al,(%ecx)
409aa0:	49                   	dec    %ecx
409aa1:	85 d2                	test   %edx,%edx
409aa3:	75 ee                	jne    0x409a93
409aa5:	e9 ab 00 00 00       	jmp    0x409b55
409aaa:	c1 ea 03             	shr    $0x3,%edx
409aad:	f6 c2 01             	test   $0x1,%dl
409ab0:	74 06                	je     0x409ab8
409ab2:	c6 44 35 fc 30       	movb   $0x30,-0x4(%ebp,%esi,1)
409ab7:	46                   	inc    %esi
409ab8:	c1 e8 03             	shr    $0x3,%eax
409abb:	47                   	inc    %edi
409abc:	85 c0                	test   %eax,%eax
409abe:	75 f8                	jne    0x409ab8
409ac0:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409ac3:	8d 45 fc             	lea    -0x4(%ebp),%eax
409ac6:	56                   	push   %esi
409ac7:	50                   	push   %eax
409ac8:	8d 45 0c             	lea    0xc(%ebp),%eax
409acb:	50                   	push   %eax
409acc:	57                   	push   %edi
409acd:	e8 dc e9 ff ff       	call   0x4084ae
409ad2:	8b 55 08             	mov    0x8(%ebp),%edx
409ad5:	8a ca                	mov    %dl,%cl
409ad7:	c1 ea 03             	shr    $0x3,%edx
409ada:	80 e1 07             	and    $0x7,%cl
409add:	80 c1 30             	add    $0x30,%cl
409ae0:	88 08                	mov    %cl,(%eax)
409ae2:	48                   	dec    %eax
409ae3:	85 d2                	test   %edx,%edx
409ae5:	75 ee                	jne    0x409ad5
409ae7:	eb 6c                	jmp    0x409b55
409ae9:	50                   	push   %eax
409aea:	e8 9a 60 01 00       	call   0x41fb89
409aef:	59                   	pop    %ecx
409af0:	89 45 f0             	mov    %eax,-0x10(%ebp)
409af3:	e8 e5 e2 05 00       	call   0x467ddd
409af8:	8b 50 04             	mov    0x4(%eax),%edx
409afb:	8b ca                	mov    %edx,%ecx
409afd:	8d 41 01             	lea    0x1(%ecx),%eax
409b00:	89 45 f4             	mov    %eax,-0xc(%ebp)
409b03:	8a 01                	mov    (%ecx),%al
409b05:	41                   	inc    %ecx
409b06:	84 c0                	test   %al,%al
409b08:	75 f9                	jne    0x409b03
409b0a:	56                   	push   %esi
409b0b:	8b 75 f0             	mov    -0x10(%ebp),%esi
409b0e:	8d 45 fc             	lea    -0x4(%ebp),%eax
409b11:	50                   	push   %eax
409b12:	8d 45 0c             	lea    0xc(%ebp),%eax
409b15:	89 55 e4             	mov    %edx,-0x1c(%ebp)
409b18:	50                   	push   %eax
409b19:	6a 03                	push   $0x3
409b1b:	89 7d ec             	mov    %edi,-0x14(%ebp)
409b1e:	8d 46 ff             	lea    -0x1(%esi),%eax
409b21:	5f                   	pop    %edi
409b22:	33 d2                	xor    %edx,%edx
409b24:	2b 4d f4             	sub    -0xc(%ebp),%ecx
409b27:	f7 f7                	div    %edi
409b29:	89 4d e8             	mov    %ecx,-0x18(%ebp)
409b2c:	0f af c1             	imul   %ecx,%eax
409b2f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409b32:	03 c6                	add    %esi,%eax
409b34:	50                   	push   %eax
409b35:	e8 74 e9 ff ff       	call   0x4084ae
409b3a:	8b 55 08             	mov    0x8(%ebp),%edx
409b3d:	8d 75 e4             	lea    -0x1c(%ebp),%esi
409b40:	83 ec 0c             	sub    $0xc,%esp
409b43:	40                   	inc    %eax
409b44:	8b fc                	mov    %esp,%edi
409b46:	6a 00                	push   $0x0
409b48:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409b49:	52                   	push   %edx
409b4a:	50                   	push   %eax
409b4b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409b4c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
409b4d:	e8 f2 de ff ff       	call   0x407a44
409b52:	83 c4 18             	add    $0x18,%esp
409b55:	5f                   	pop    %edi
409b56:	5e                   	pop    %esi
409b57:	c9                   	leave
409b58:	c2 1c 00             	ret    $0x1c
409b5b:	6a 10                	push   $0x10
409b5d:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409b60:	e8 40 74 01 00       	call   0x420fa5
409b65:	84 c0                	test   %al,%al
409b67:	ba 90 63 49 00       	mov    $0x496390,%edx
409b6c:	b9 b8 65 49 00       	mov    $0x4965b8,%ecx
409b71:	0f 44 ca             	cmove  %edx,%ecx
409b74:	51                   	push   %ecx
409b75:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409b78:	e8 6f 98 01 00       	call   0x4233ec
409b7d:	0f b6 c0             	movzbl %al,%eax
409b80:	50                   	push   %eax
409b81:	e8 88 8b 01 00       	call   0x42270e
409b86:	cc                   	int3
409b87:	55                   	push   %ebp
409b88:	8b ec                	mov    %esp,%ebp
409b8a:	83 ec 1c             	sub    $0x1c,%esp
409b8d:	8b 55 18             	mov    0x18(%ebp),%edx
409b90:	56                   	push   %esi
409b91:	57                   	push   %edi
409b92:	33 ff                	xor    %edi,%edi
409b94:	89 4d f8             	mov    %ecx,-0x8(%ebp)
409b97:	89 7d fc             	mov    %edi,-0x4(%ebp)
409b9a:	8b f7                	mov    %edi,%esi
409b9c:	f6 c2 01             	test   $0x1,%dl
409b9f:	74 12                	je     0x409bb3
409ba1:	8b c2                	mov    %edx,%eax
409ba3:	d1 e8                	shr    $1,%eax
409ba5:	24 01                	and    $0x1,%al
409ba7:	f6 d8                	neg    %al
409ba9:	1a c0                	sbb    %al,%al
409bab:	24 0b                	and    $0xb,%al
409bad:	04 20                	add    $0x20,%al
409baf:	46                   	inc    %esi
409bb0:	88 45 fc             	mov    %al,-0x4(%ebp)
409bb3:	8a 4d 20             	mov    0x20(%ebp),%cl
409bb6:	0f be c1             	movsbl %cl,%eax
409bb9:	83 f8 64             	cmp    $0x64,%eax
409bbc:	0f 8f 95 00 00 00    	jg     0x409c57
409bc2:	74 62                	je     0x409c26
409bc4:	85 c0                	test   %eax,%eax
409bc6:	74 5e                	je     0x409c26
409bc8:	83 f8 42             	cmp    $0x42,%eax
409bcb:	74 12                	je     0x409bdf
409bcd:	83 f8 58             	cmp    $0x58,%eax
409bd0:	0f 84 98 00 00 00    	je     0x409c6e
409bd6:	83 f8 62             	cmp    $0x62,%eax
409bd9:	0f 85 a4 01 00 00    	jne    0x409d83
409bdf:	8b 45 08             	mov    0x8(%ebp),%eax
409be2:	c1 ea 03             	shr    $0x3,%edx
409be5:	f6 c2 01             	test   $0x1,%dl
409be8:	74 0c                	je     0x409bf6
409bea:	c6 44 35 fc 30       	movb   $0x30,-0x4(%ebp,%esi,1)
409bef:	88 4c 35 fd          	mov    %cl,-0x3(%ebp,%esi,1)
409bf3:	83 c6 02             	add    $0x2,%esi
409bf6:	47                   	inc    %edi
409bf7:	d1 e8                	shr    $1,%eax
409bf9:	75 fb                	jne    0x409bf6
409bfb:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409bfe:	8d 45 fc             	lea    -0x4(%ebp),%eax
409c01:	56                   	push   %esi
409c02:	50                   	push   %eax
409c03:	8d 45 0c             	lea    0xc(%ebp),%eax
409c06:	50                   	push   %eax
409c07:	57                   	push   %edi
409c08:	e8 a1 e8 ff ff       	call   0x4084ae
409c0d:	8b d0                	mov    %eax,%edx
409c0f:	8b 45 08             	mov    0x8(%ebp),%eax
409c12:	8a c8                	mov    %al,%cl
409c14:	80 e1 01             	and    $0x1,%cl
409c17:	80 c1 30             	add    $0x30,%cl
409c1a:	88 0a                	mov    %cl,(%edx)
409c1c:	4a                   	dec    %edx
409c1d:	d1 e8                	shr    $1,%eax
409c1f:	75 f1                	jne    0x409c12
409c21:	e9 57 01 00 00       	jmp    0x409d7d
409c26:	ff 75 08             	push   0x8(%ebp)
409c29:	e8 5b 5f 01 00       	call   0x41fb89
409c2e:	59                   	pop    %ecx
409c2f:	56                   	push   %esi
409c30:	8d 4d fc             	lea    -0x4(%ebp),%ecx
409c33:	51                   	push   %ecx
409c34:	8d 4d 0c             	lea    0xc(%ebp),%ecx
409c37:	51                   	push   %ecx
409c38:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409c3b:	50                   	push   %eax
409c3c:	e8 6d e8 ff ff       	call   0x4084ae
409c41:	ff 75 08             	push   0x8(%ebp)
409c44:	40                   	inc    %eax
409c45:	57                   	push   %edi
409c46:	ff 75 08             	push   0x8(%ebp)
409c49:	50                   	push   %eax
409c4a:	e8 9b dd ff ff       	call   0x4079ea
409c4f:	83 c4 10             	add    $0x10,%esp
409c52:	e9 26 01 00 00       	jmp    0x409d7d
409c57:	83 e8 6e             	sub    $0x6e,%eax
409c5a:	0f 84 b0 00 00 00    	je     0x409d10
409c60:	83 e8 01             	sub    $0x1,%eax
409c63:	74 67                	je     0x409ccc
409c65:	83 e8 09             	sub    $0x9,%eax
409c68:	0f 85 15 01 00 00    	jne    0x409d83
409c6e:	8b 45 08             	mov    0x8(%ebp),%eax
409c71:	c1 ea 03             	shr    $0x3,%edx
409c74:	f6 c2 01             	test   $0x1,%dl
409c77:	74 0c                	je     0x409c85
409c79:	c6 44 35 fc 30       	movb   $0x30,-0x4(%ebp,%esi,1)
409c7e:	88 4c 35 fd          	mov    %cl,-0x3(%ebp,%esi,1)
409c82:	83 c6 02             	add    $0x2,%esi
409c85:	c1 e8 04             	shr    $0x4,%eax
409c88:	47                   	inc    %edi
409c89:	85 c0                	test   %eax,%eax
409c8b:	75 f8                	jne    0x409c85
409c8d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409c90:	8d 45 fc             	lea    -0x4(%ebp),%eax
409c93:	56                   	push   %esi
409c94:	50                   	push   %eax
409c95:	8d 45 0c             	lea    0xc(%ebp),%eax
409c98:	50                   	push   %eax
409c99:	57                   	push   %edi
409c9a:	e8 0f e8 ff ff       	call   0x4084ae
409c9f:	80 7d 20 78          	cmpb   $0x78,0x20(%ebp)
409ca3:	8b d0                	mov    %eax,%edx
409ca5:	8b 4d 08             	mov    0x8(%ebp),%ecx
409ca8:	be 90 65 49 00       	mov    $0x496590,%esi
409cad:	b8 a4 65 49 00       	mov    $0x4965a4,%eax