429ac9:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
429acf:	83 c4 0c             	add    $0xc,%esp
429ad2:	38 45 e4             	cmp    %al,-0x1c(%ebp)
429ad5:	0f 94 c0             	sete   %al
429ad8:	48                   	dec    %eax
429ad9:	25 e3 7e 00 00       	and    $0x7ee3,%eax
429ade:	05 04 01 00 00       	add    $0x104,%eax
429ae3:	50                   	push   %eax
429ae4:	e8 07 49 fe ff       	call   0x40e3f0
429ae9:	85 c0                	test   %eax,%eax
429aeb:	79 0b                	jns    0x429af8
429aed:	8b 45 e0             	mov    -0x20(%ebp),%eax
429af0:	21 7d e0             	and    %edi,-0x20(%ebp)
429af3:	e9 fc 00 00 00       	jmp    0x429bf4
429af8:	6a 3d                	push   $0x3d
429afa:	58                   	pop    %eax
429afb:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
429aff:	8d 4d f4             	lea    -0xc(%ebp),%ecx
429b02:	8d 46 40             	lea    0x40(%esi),%eax
429b05:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
429b09:	6a 3a                	push   $0x3a
429b0b:	58                   	pop    %eax
429b0c:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
429b10:	33 c0                	xor    %eax,%eax
429b12:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
429b16:	e8 13 51 fe ff       	call   0x40ec2e
429b1b:	8b f0                	mov    %eax,%esi
429b1d:	85 f6                	test   %esi,%esi
429b1f:	74 19                	je     0x429b3a
429b21:	56                   	push   %esi
429b22:	ff 15 d8 a1 44 00    	call   *0x44a1d8
429b28:	84 c0                	test   %al,%al
429b2a:	0f 85 a1 00 00 00    	jne    0x429bd1
429b30:	6a 01                	push   $0x1
429b32:	ff 15 84 a0 44 00    	call   *0x44a084
429b38:	8b f8                	mov    %eax,%edi
429b3a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
429b3d:	85 c9                	test   %ecx,%ecx
429b3f:	75 06                	jne    0x429b47
429b41:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
429b47:	66 8b 45 f6          	mov    -0xa(%ebp),%ax
429b4b:	66 89 01             	mov    %ax,(%ecx)
429b4e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
429b51:	85 c9                	test   %ecx,%ecx
429b53:	75 06                	jne    0x429b5b
429b55:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
429b5b:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
429b5f:	66 89 41 02          	mov    %ax,0x2(%ecx)
429b63:	8b 45 e0             	mov    -0x20(%ebp),%eax
429b66:	85 c0                	test   %eax,%eax
429b68:	75 06                	jne    0x429b70
429b6a:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
429b70:	6a 5c                	push   $0x5c
429b72:	59                   	pop    %ecx
429b73:	66 89 48 04          	mov    %cx,0x4(%eax)
429b77:	8b 45 e0             	mov    -0x20(%ebp),%eax
429b7a:	85 c0                	test   %eax,%eax
429b7c:	75 06                	jne    0x429b84
429b7e:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
429b84:	33 c9                	xor    %ecx,%ecx
429b86:	66 89 48 06          	mov    %cx,0x6(%eax)
429b8a:	8b 55 e0             	mov    -0x20(%ebp),%edx
429b8d:	85 d2                	test   %edx,%edx
429b8f:	75 06                	jne    0x429b97
429b91:	8d 95 d8 fd ff ff    	lea    -0x228(%ebp),%edx
429b97:	8d 4d f4             	lea    -0xc(%ebp),%ecx
429b9a:	e8 d7 0d fe ff       	call   0x40a976
429b9f:	8b 45 e0             	mov    -0x20(%ebp),%eax
429ba2:	85 c0                	test   %eax,%eax
429ba4:	75 06                	jne    0x429bac
429ba6:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
429bac:	50                   	push   %eax
429bad:	ff 15 d8 a1 44 00    	call   *0x44a1d8
429bb3:	85 c0                	test   %eax,%eax
429bb5:	75 0f                	jne    0x429bc6
429bb7:	50                   	push   %eax
429bb8:	ff 15 80 a0 44 00    	call   *0x44a080
429bbe:	50                   	push   %eax
429bbf:	e8 20 dd fd ff       	call   0x4078e4
429bc4:	59                   	pop    %ecx
429bc5:	59                   	pop    %ecx
429bc6:	85 f6                	test   %esi,%esi
429bc8:	74 07                	je     0x429bd1
429bca:	57                   	push   %edi
429bcb:	ff 15 84 a0 44 00    	call   *0x44a084
429bd1:	8b 0d f8 8d 44 00    	mov    0x448df8,%ecx
429bd7:	85 c9                	test   %ecx,%ecx
429bd9:	75 05                	jne    0x429be0
429bdb:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
429be0:	8b 15 00 8e 44 00    	mov    0x448e00,%edx
429be6:	6a 00                	push   $0x0
429be8:	e8 b1 f2 fd ff       	call   0x408e9e
429bed:	8b 45 e0             	mov    -0x20(%ebp),%eax
429bf0:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
429bf4:	85 c0                	test   %eax,%eax
429bf6:	74 08                	je     0x429c00
429bf8:	50                   	push   %eax
429bf9:	ff 15 e0 a3 44 00    	call   *0x44a3e0
429bff:	59                   	pop    %ecx
429c00:	8b 4d fc             	mov    -0x4(%ebp),%ecx
429c03:	5f                   	pop    %edi
429c04:	33 cd                	xor    %ebp,%ecx
429c06:	5e                   	pop    %esi
429c07:	e8 24 cf fe ff       	call   0x416b30
429c0c:	8b e5                	mov    %ebp,%esp
429c0e:	5d                   	pop    %ebp
429c0f:	8b e3                	mov    %ebx,%esp
429c11:	5b                   	pop    %ebx
429c12:	c3                   	ret
429c13:	6a 01                	push   $0x1
429c15:	51                   	push   %ecx
429c16:	ff 15 0c a2 44 00    	call   *0x44a20c
429c1c:	85 c0                	test   %eax,%eax
429c1e:	75 0b                	jne    0x429c2b
429c20:	ff 15 80 a0 44 00    	call   *0x44a080
429c26:	a3 a8 67 43 00       	mov    %eax,0x4367a8
429c2b:	33 c0                	xor    %eax,%eax
429c2d:	c3                   	ret
429c2e:	8b ff                	mov    %edi,%edi
429c30:	55                   	push   %ebp
429c31:	8b ec                	mov    %esp,%ebp
429c33:	83 ec 58             	sub    $0x58,%esp
429c36:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
429c3b:	33 c5                	xor    %ebp,%eax
429c3d:	89 45 f8             	mov    %eax,-0x8(%ebp)
429c40:	53                   	push   %ebx
429c41:	8b c2                	mov    %edx,%eax
429c43:	89 4d b8             	mov    %ecx,-0x48(%ebp)
429c46:	33 d2                	xor    %edx,%edx
429c48:	89 45 bc             	mov    %eax,-0x44(%ebp)
429c4b:	89 55 c8             	mov    %edx,-0x38(%ebp)
429c4e:	89 55 cc             	mov    %edx,-0x34(%ebp)
429c51:	88 55 d7             	mov    %dl,-0x29(%ebp)
429c54:	88 55 d6             	mov    %dl,-0x2a(%ebp)
429c57:	56                   	push   %esi
429c58:	57                   	push   %edi
429c59:	8b 7d 08             	mov    0x8(%ebp),%edi
429c5c:	3d d3 23 00 40       	cmp    $0x400023d3,%eax
429c61:	75 2d                	jne    0x429c90
429c63:	51                   	push   %ecx
429c64:	51                   	push   %ecx
429c65:	e8 e1 c8 fe ff       	call   0x41654b
429c6a:	8b f0                	mov    %eax,%esi
429c6c:	83 fe ff             	cmp    $0xffffffff,%esi
429c6f:	74 1f                	je     0x429c90
429c71:	8b ce                	mov    %esi,%ecx
429c73:	e8 20 41 fe ff       	call   0x40dd98
429c78:	8b ce                	mov    %esi,%ecx
429c7a:	85 c0                	test   %eax,%eax
429c7c:	74 0d                	je     0x429c8b
429c7e:	e8 e9 04 fe ff       	call   0x40a16c
429c83:	6a 02                	push   $0x2
429c85:	58                   	pop    %eax
429c86:	e9 3f 02 00 00       	jmp    0x429eca
429c8b:	e8 dc 04 fe ff       	call   0x40a16c
429c90:	57                   	push   %edi
429c91:	e8 74 c7 fe ff       	call   0x41640a
429c96:	59                   	pop    %ecx
429c97:	6a 02                	push   $0x2
429c99:	5b                   	pop    %ebx
429c9a:	8b f8                	mov    %eax,%edi
429c9c:	6a 10                	push   $0x10
429c9e:	5a                   	pop    %edx
429c9f:	85 ff                	test   %edi,%edi
429ca1:	74 2e                	je     0x429cd1
429ca3:	8b cf                	mov    %edi,%ecx
429ca5:	8d 71 02             	lea    0x2(%ecx),%esi
429ca8:	66 8b 01             	mov    (%ecx),%ax
429cab:	03 cb                	add    %ebx,%ecx
429cad:	66 3b 45 c8          	cmp    -0x38(%ebp),%ax
429cb1:	75 f5                	jne    0x429ca8
429cb3:	2b ce                	sub    %esi,%ecx
429cb5:	d1 f9                	sar    $1,%ecx
429cb7:	3b ca                	cmp    %edx,%ecx
429cb9:	73 16                	jae    0x429cd1
429cbb:	57                   	push   %edi
429cbc:	8d 4d d8             	lea    -0x28(%ebp),%ecx
429cbf:	e8 dc 56 fe ff       	call   0x40f3a0
429cc4:	8d 45 d8             	lea    -0x28(%ebp),%eax
429cc7:	50                   	push   %eax
429cc8:	ff 15 1c a4 44 00    	call   *0x44a41c
429cce:	59                   	pop    %ecx
429ccf:	eb 34                	jmp    0x429d05
429cd1:	8d 4d d8             	lea    -0x28(%ebp),%ecx
429cd4:	be 70 3f 40 00       	mov    $0x403f70,%esi
429cd9:	8b c1                	mov    %ecx,%eax
429cdb:	2b f0                	sub    %eax,%esi
429cdd:	8d 82 ee ff ff 7f    	lea    0x7fffffee(%edx),%eax
429ce3:	85 c0                	test   %eax,%eax
429ce5:	74 13                	je     0x429cfa
429ce7:	0f b7 04 0e          	movzwl (%esi,%ecx,1),%eax
429ceb:	66 85 c0             	test   %ax,%ax
429cee:	74 0a                	je     0x429cfa
429cf0:	66 89 01             	mov    %ax,(%ecx)
429cf3:	03 cb                	add    %ebx,%ecx
429cf5:	83 ea 01             	sub    $0x1,%edx
429cf8:	75 e3                	jne    0x429cdd
429cfa:	85 d2                	test   %edx,%edx
429cfc:	75 02                	jne    0x429d00
429cfe:	2b cb                	sub    %ebx,%ecx
429d00:	33 c0                	xor    %eax,%eax
429d02:	66 89 01             	mov    %ax,(%ecx)
429d05:	8d 4d d8             	lea    -0x28(%ebp),%ecx
429d08:	33 f6                	xor    %esi,%esi
429d0a:	8d 51 02             	lea    0x2(%ecx),%edx
429d0d:	66 8b 01             	mov    (%ecx),%ax
429d10:	03 cb                	add    %ebx,%ecx
429d12:	66 3b c6             	cmp    %si,%ax
429d15:	75 f6                	jne    0x429d0d
429d17:	2b ca                	sub    %edx,%ecx
429d19:	d1 f9                	sar    $1,%ecx
429d1b:	57                   	push   %edi
429d1c:	8d 41 ff             	lea    -0x1(%ecx),%eax
429d1f:	89 45 c8             	mov    %eax,-0x38(%ebp)
429d22:	ff 15 4c a1 44 00    	call   *0x44a14c
429d28:	6a f5                	push   $0xfffffff5
429d2a:	ff 15 bc a1 44 00    	call   *0x44a1bc
429d30:	8b d8                	mov    %eax,%ebx
429d32:	8d 45 c4             	lea    -0x3c(%ebp),%eax
429d35:	50                   	push   %eax
429d36:	53                   	push   %ebx
429d37:	89 5d ac             	mov    %ebx,-0x54(%ebp)
429d3a:	ff 15 10 a0 44 00    	call   *0x44a010
429d40:	85 c0                	test   %eax,%eax
429d42:	74 12                	je     0x429d56
429d44:	8b 45 c4             	mov    -0x3c(%ebp),%eax
429d47:	83 c8 01             	or     $0x1,%eax
429d4a:	c6 45 d7 01          	movb   $0x1,-0x29(%ebp)
429d4e:	50                   	push   %eax
429d4f:	53                   	push   %ebx
429d50:	ff 15 14 a0 44 00    	call   *0x44a014
429d56:	6a f6                	push   $0xfffffff6
429d58:	ff 15 bc a1 44 00    	call   *0x44a1bc
429d5e:	8b f0                	mov    %eax,%esi
429d60:	8d 45 c0             	lea    -0x40(%ebp),%eax
429d63:	50                   	push   %eax
429d64:	56                   	push   %esi
429d65:	89 75 b0             	mov    %esi,-0x50(%ebp)
429d68:	ff 15 10 a0 44 00    	call   *0x44a010
429d6e:	85 c0                	test   %eax,%eax
429d70:	74 2b                	je     0x429d9d
429d72:	8b 4d c0             	mov    -0x40(%ebp),%ecx
429d75:	b7 01                	mov    $0x1,%bh
429d77:	83 c9 07             	or     $0x7,%ecx
429d7a:	51                   	push   %ecx
429d7b:	56                   	push   %esi
429d7c:	ff 15 14 a0 44 00    	call   *0x44a014
429d82:	8b 35 b4 25 43 00    	mov    0x4325b4,%esi
429d88:	85 f6                	test   %esi,%esi
429d8a:	74 14                	je     0x429da0
429d8c:	68 78 3f 40 00       	push   $0x403f78
429d91:	8b ce                	mov    %esi,%ecx
429d93:	ff 15 c4 a4 44 00    	call   *0x44a4c4
429d99:	ff d6                	call   *%esi
429d9b:	eb 03                	jmp    0x429da0
429d9d:	8a 7d d6             	mov    -0x2a(%ebp),%bh
429da0:	8b 75 bc             	mov    -0x44(%ebp),%esi
429da3:	33 c0                	xor    %eax,%eax
429da5:	b3 01                	mov    $0x1,%bl
429da7:	66 89 45 d0          	mov    %ax,-0x30(%ebp)
429dab:	8b 45 b8             	mov    -0x48(%ebp),%eax
429dae:	6a 0a                	push   $0xa
429db0:	5f                   	pop    %edi
429db1:	85 c0                	test   %eax,%eax
429db3:	74 0e                	je     0x429dc3
429db5:	50                   	push   %eax
429db6:	6a 01                	push   $0x1
429db8:	56                   	push   %esi
429db9:	e8 ff c5 fd ff       	call   0x4063bd
429dbe:	83 c4 0c             	add    $0xc,%esp
429dc1:	eb 0b                	jmp    0x429dce
429dc3:	33 c0                	xor    %eax,%eax
429dc5:	50                   	push   %eax
429dc6:	56                   	push   %esi
429dc7:	e8 f1 c5 fd ff       	call   0x4063bd
429dcc:	59                   	pop    %ecx
429dcd:	59                   	pop    %ecx
429dce:	33 c9                	xor    %ecx,%ecx
429dd0:	e8 c3 3f fe ff       	call   0x40dd98
429dd5:	85 c0                	test   %eax,%eax
429dd7:	74 70                	je     0x429e49
429dd9:	6a f6                	push   $0xfffffff6
429ddb:	ff 15 bc a1 44 00    	call   *0x44a1bc
429de1:	50                   	push   %eax
429de2:	ff 15 30 a0 44 00    	call   *0x44a030
429de8:	eb 5f                	jmp    0x429e49
429dea:	8d 45 b4             	lea    -0x4c(%ebp),%eax
429ded:	50                   	push   %eax
429dee:	6a 01                	push   $0x1
429df0:	6a f6                	push   $0xfffffff6
429df2:	ff 15 bc a1 44 00    	call   *0x44a1bc
429df8:	8d 55 d0             	lea    -0x30(%ebp),%edx
429dfb:	8b c8                	mov    %eax,%ecx
429dfd:	e8 97 a9 ff ff       	call   0x424799
429e02:	85 c0                	test   %eax,%eax
429e04:	74 4b                	je     0x429e51
429e06:	83 7d b4 01          	cmpl   $0x1,-0x4c(%ebp)
429e0a:	75 45                	jne    0x429e51
429e0c:	84 db                	test   %bl,%bl
429e0e:	74 10                	je     0x429e20
429e10:	ff 75 d0             	push   -0x30(%ebp)
429e13:	ff 15 18 a4 44 00    	call   *0x44a418
429e19:	0f b7 c0             	movzwl %ax,%eax
429e1c:	59                   	pop    %ecx
429e1d:	89 45 cc             	mov    %eax,-0x34(%ebp)
429e20:	33 c0                	xor    %eax,%eax
429e22:	33 c9                	xor    %ecx,%ecx
429e24:	8a d8                	mov    %al,%bl
429e26:	e8 6d 3f fe ff       	call   0x40dd98
429e2b:	85 c0                	test   %eax,%eax
429e2d:	74 09                	je     0x429e38
429e2f:	f6 05 1c 67 43 00 01 	testb  $0x1,0x43671c
429e36:	75 11                	jne    0x429e49
429e38:	0f b7 45 d0          	movzwl -0x30(%ebp),%eax
429e3c:	50                   	push   %eax
429e3d:	68 64 3b 40 00       	push   $0x403b64
429e42:	e8 09 fb fd ff       	call   0x409950
429e47:	59                   	pop    %ecx
429e48:	59                   	pop    %ecx
429e49:	66 39 7d d0          	cmp    %di,-0x30(%ebp)
429e4d:	75 9b                	jne    0x429dea
429e4f:	eb 12                	jmp    0x429e63
429e51:	0f b7 45 d8          	movzwl -0x28(%ebp),%eax
429e55:	68 8c 1f 40 00       	push   $0x401f8c
429e5a:	89 45 cc             	mov    %eax,-0x34(%ebp)
429e5d:	e8 ee fa fd ff       	call   0x409950
429e62:	59                   	pop    %ecx
429e63:	ff 75 cc             	push   -0x34(%ebp)
429e66:	8d 45 d8             	lea    -0x28(%ebp),%eax
429e69:	50                   	push   %eax
429e6a:	ff 15 b0 a3 44 00    	call   *0x44a3b0
429e70:	8b f8                	mov    %eax,%edi
429e72:	59                   	pop    %ecx
429e73:	59                   	pop    %ecx
429e74:	85 ff                	test   %edi,%edi
429e76:	0f 84 27 ff ff ff    	je     0x429da3
429e7c:	8d 45 d8             	lea    -0x28(%ebp),%eax
429e7f:	2b f8                	sub    %eax,%edi
429e81:	d1 ff                	sar    $1,%edi
429e83:	3b 7d c8             	cmp    -0x38(%ebp),%edi
429e86:	0f 87 17 ff ff ff    	ja     0x429da3
429e8c:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)
429e90:	8b 75 b0             	mov    -0x50(%ebp),%esi
429e93:	74 0c                	je     0x429ea1
429e95:	ff 75 c4             	push   -0x3c(%ebp)
429e98:	ff 75 ac             	push   -0x54(%ebp)
429e9b:	ff 15 14 a0 44 00    	call   *0x44a014
429ea1:	84 ff                	test   %bh,%bh
429ea3:	74 23                	je     0x429ec8
429ea5:	ff 75 c0             	push   -0x40(%ebp)