403e2b:	5d                   	pop    %ebp
403e2c:	c3                   	ret
403e2d:	8b ff                	mov    %edi,%edi
403e2f:	55                   	push   %ebp
403e30:	8b ec                	mov    %esp,%ebp
403e32:	56                   	push   %esi
403e33:	ff 75 08             	push   0x8(%ebp)
403e36:	8b f1                	mov    %ecx,%esi
403e38:	83 66 10 00          	andl   $0x0,0x10(%esi)
403e3c:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
403e43:	c6 06 00             	movb   $0x0,(%esi)
403e46:	e8 2d 06 00 00       	call   0x404478
403e4b:	59                   	pop    %ecx
403e4c:	50                   	push   %eax
403e4d:	ff 75 08             	push   0x8(%ebp)
403e50:	8b ce                	mov    %esi,%ecx
403e52:	e8 44 04 00 00       	call   0x40429b
403e57:	8b c6                	mov    %esi,%eax
403e59:	5e                   	pop    %esi
403e5a:	5d                   	pop    %ebp
403e5b:	c2 04 00             	ret    $0x4
403e5e:	cc                   	int3
403e5f:	cc                   	int3
403e60:	8b ff                	mov    %edi,%edi
403e62:	55                   	push   %ebp
403e63:	8b ec                	mov    %esp,%ebp
403e65:	51                   	push   %ecx
403e66:	56                   	push   %esi
403e67:	ff 75 08             	push   0x8(%ebp)
403e6a:	8b f1                	mov    %ecx,%esi
403e6c:	89 75 fc             	mov    %esi,-0x4(%ebp)
403e6f:	e8 9c 0b 00 00       	call   0x404a10
403e74:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
403e7a:	8b c6                	mov    %esi,%eax
403e7c:	5e                   	pop    %esi
403e7d:	c9                   	leave
403e7e:	c2 04 00             	ret    $0x4
403e81:	8b ff                	mov    %edi,%edi
403e83:	55                   	push   %ebp
403e84:	8b ec                	mov    %esp,%ebp
403e86:	51                   	push   %ecx
403e87:	56                   	push   %esi
403e88:	6a 01                	push   $0x1
403e8a:	8d 45 fc             	lea    -0x4(%ebp),%eax
403e8d:	c7 45 fc 00 18 40 00 	movl   $0x401800,-0x4(%ebp)
403e94:	50                   	push   %eax
403e95:	8b f1                	mov    %ecx,%esi
403e97:	e8 6a 0b 00 00       	call   0x404a06
403e9c:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
403ea2:	8b c6                	mov    %esi,%eax
403ea4:	5e                   	pop    %esi
403ea5:	c9                   	leave
403ea6:	c3                   	ret
403ea7:	cc                   	int3
403ea8:	cc                   	int3
403ea9:	cc                   	int3
403eaa:	cc                   	int3
403eab:	cc                   	int3
403eac:	cc                   	int3
403ead:	cc                   	int3
403eae:	cc                   	int3
403eaf:	cc                   	int3
403eb0:	8b ff                	mov    %edi,%edi
403eb2:	55                   	push   %ebp
403eb3:	8b ec                	mov    %esp,%ebp
403eb5:	51                   	push   %ecx
403eb6:	56                   	push   %esi
403eb7:	ff 75 08             	push   0x8(%ebp)
403eba:	8b f1                	mov    %ecx,%esi
403ebc:	89 75 fc             	mov    %esi,-0x4(%ebp)
403ebf:	e8 4c 0b 00 00       	call   0x404a10
403ec4:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
403eca:	8b c6                	mov    %esi,%eax
403ecc:	5e                   	pop    %esi
403ecd:	c9                   	leave
403ece:	c2 04 00             	ret    $0x4
403ed1:	8b ff                	mov    %edi,%edi
403ed3:	55                   	push   %ebp
403ed4:	8b ec                	mov    %esp,%ebp
403ed6:	51                   	push   %ecx
403ed7:	8b 45 08             	mov    0x8(%ebp),%eax
403eda:	56                   	push   %esi
403edb:	8b f1                	mov    %ecx,%esi
403edd:	89 75 fc             	mov    %esi,-0x4(%ebp)
403ee0:	89 45 fc             	mov    %eax,-0x4(%ebp)
403ee3:	8d 45 fc             	lea    -0x4(%ebp),%eax
403ee6:	50                   	push   %eax
403ee7:	e8 14 0b 00 00       	call   0x404a00
403eec:	c7 06 08 10 40 00    	movl   $0x401008,(%esi)
403ef2:	8b c6                	mov    %esi,%eax
403ef4:	5e                   	pop    %esi
403ef5:	c9                   	leave
403ef6:	c2 04 00             	ret    $0x4
403ef9:	cc                   	int3
403efa:	cc                   	int3
403efb:	cc                   	int3
403efc:	cc                   	int3
403efd:	cc                   	int3
403efe:	cc                   	int3
403eff:	cc                   	int3
403f00:	c7 01 00 10 40 00    	movl   $0x401000,(%ecx)
403f06:	e9 0b 0b 00 00       	jmp    0x404a16
403f0b:	cc                   	int3
403f0c:	cc                   	int3
403f0d:	cc                   	int3
403f0e:	cc                   	int3
403f0f:	cc                   	int3
403f10:	e9 01 0b 00 00       	jmp    0x404a16
403f15:	8b ff                	mov    %edi,%edi
403f17:	55                   	push   %ebp
403f18:	8b ec                	mov    %esp,%ebp
403f1a:	8b 55 08             	mov    0x8(%ebp),%edx
403f1d:	8b 41 04             	mov    0x4(%ecx),%eax
403f20:	3b 42 04             	cmp    0x4(%edx),%eax
403f23:	75 0a                	jne    0x403f2f
403f25:	8b 01                	mov    (%ecx),%eax
403f27:	3b 02                	cmp    (%edx),%eax
403f29:	75 04                	jne    0x403f2f
403f2b:	b0 01                	mov    $0x1,%al
403f2d:	eb 02                	jmp    0x403f31
403f2f:	32 c0                	xor    %al,%al
403f31:	5d                   	pop    %ebp
403f32:	c2 04 00             	ret    $0x4
403f35:	cc                   	int3
403f36:	cc                   	int3
403f37:	cc                   	int3
403f38:	cc                   	int3
403f39:	cc                   	int3
403f3a:	cc                   	int3
403f3b:	cc                   	int3
403f3c:	cc                   	int3
403f3d:	cc                   	int3
403f3e:	cc                   	int3
403f3f:	cc                   	int3
403f40:	8b ff                	mov    %edi,%edi
403f42:	55                   	push   %ebp
403f43:	8b ec                	mov    %esp,%ebp
403f45:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403f49:	56                   	push   %esi
403f4a:	8b f1                	mov    %ecx,%esi
403f4c:	c7 06 10 10 40 00    	movl   $0x401010,(%esi)
403f52:	74 07                	je     0x403f5b
403f54:	56                   	push   %esi
403f55:	e8 9a e9 ff ff       	call   0x4028f4
403f5a:	59                   	pop    %ecx
403f5b:	8b c6                	mov    %esi,%eax
403f5d:	5e                   	pop    %esi
403f5e:	5d                   	pop    %ebp
403f5f:	c2 04 00             	ret    $0x4
403f62:	cc                   	int3
403f63:	cc                   	int3
403f64:	cc                   	int3
403f65:	cc                   	int3
403f66:	cc                   	int3
403f67:	cc                   	int3
403f68:	cc                   	int3
403f69:	cc                   	int3
403f6a:	cc                   	int3
403f6b:	cc                   	int3
403f6c:	cc                   	int3
403f6d:	cc                   	int3
403f6e:	cc                   	int3
403f6f:	cc                   	int3
403f70:	8b ff                	mov    %edi,%edi
403f72:	55                   	push   %ebp
403f73:	8b ec                	mov    %esp,%ebp
403f75:	56                   	push   %esi
403f76:	8b f1                	mov    %ecx,%esi
403f78:	c7 06 00 10 40 00    	movl   $0x401000,(%esi)
403f7e:	e8 93 0a 00 00       	call   0x404a16
403f83:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403f87:	74 07                	je     0x403f90
403f89:	56                   	push   %esi
403f8a:	e8 65 e9 ff ff       	call   0x4028f4
403f8f:	59                   	pop    %ecx
403f90:	8b c6                	mov    %esi,%eax
403f92:	5e                   	pop    %esi
403f93:	5d                   	pop    %ebp
403f94:	c2 04 00             	ret    $0x4
403f97:	cc                   	int3
403f98:	cc                   	int3
403f99:	cc                   	int3
403f9a:	cc                   	int3
403f9b:	cc                   	int3
403f9c:	cc                   	int3
403f9d:	cc                   	int3
403f9e:	cc                   	int3
403f9f:	cc                   	int3
403fa0:	8b ff                	mov    %edi,%edi
403fa2:	55                   	push   %ebp
403fa3:	8b ec                	mov    %esp,%ebp
403fa5:	56                   	push   %esi
403fa6:	8b f1                	mov    %ecx,%esi
403fa8:	e8 69 0a 00 00       	call   0x404a16
403fad:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
403fb1:	74 07                	je     0x403fba
403fb3:	56                   	push   %esi
403fb4:	e8 3b e9 ff ff       	call   0x4028f4
403fb9:	59                   	pop    %ecx
403fba:	8b c6                	mov    %esi,%eax
403fbc:	5e                   	pop    %esi
403fbd:	5d                   	pop    %ebp
403fbe:	c2 04 00             	ret    $0x4
403fc1:	6a 10                	push   $0x10
403fc3:	b8 96 52 40 00       	mov    $0x405296,%eax
403fc8:	e8 a6 0a 00 00       	call   0x404a73
403fcd:	8b f9                	mov    %ecx,%edi
403fcf:	89 7d e8             	mov    %edi,-0x18(%ebp)
403fd2:	8b 75 08             	mov    0x8(%ebp),%esi
403fd5:	83 ce 0f             	or     $0xf,%esi
403fd8:	83 fe fe             	cmp    $0xfffffffe,%esi
403fdb:	76 05                	jbe    0x403fe2
403fdd:	8b 75 08             	mov    0x8(%ebp),%esi
403fe0:	eb 2a                	jmp    0x40400c
403fe2:	33 d2                	xor    %edx,%edx
403fe4:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
403feb:	8b c6                	mov    %esi,%eax
403fed:	8b 5f 14             	mov    0x14(%edi),%ebx
403ff0:	f7 75 ec             	divl   -0x14(%ebp)
403ff3:	8b cb                	mov    %ebx,%ecx
403ff5:	d1 e9                	shr    $1,%ecx
403ff7:	3b c8                	cmp    %eax,%ecx
403ff9:	76 11                	jbe    0x40400c
403ffb:	6a fe                	push   $0xfffffffe
403ffd:	58                   	pop    %eax
403ffe:	2b c1                	sub    %ecx,%eax
404000:	3b d8                	cmp    %eax,%ebx
404002:	77 05                	ja     0x404009
404004:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
404007:	eb 03                	jmp    0x40400c
404009:	6a fe                	push   $0xfffffffe
40400b:	5e                   	pop    %esi
40400c:	33 db                	xor    %ebx,%ebx
40400e:	8d 46 01             	lea    0x1(%esi),%eax
404011:	53                   	push   %ebx
404012:	50                   	push   %eax
404013:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404016:	e8 f3 fd ff ff       	call   0x403e0e
40401b:	59                   	pop    %ecx
40401c:	59                   	pop    %ecx
40401d:	eb 2c                	jmp    0x40404b
40401f:	8b 45 08             	mov    0x8(%ebp),%eax
404022:	89 65 f0             	mov    %esp,-0x10(%ebp)
404025:	89 45 ec             	mov    %eax,-0x14(%ebp)
404028:	40                   	inc    %eax
404029:	6a 00                	push   $0x0
40402b:	50                   	push   %eax
40402c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
404030:	e8 d9 fd ff ff       	call   0x403e0e
404035:	59                   	pop    %ecx
404036:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404039:	b8 40 40 40 00       	mov    $0x404040,%eax
40403e:	59                   	pop    %ecx
40403f:	c3                   	ret
404040:	8b 7d e8             	mov    -0x18(%ebp),%edi
404043:	33 db                	xor    %ebx,%ebx
404045:	8b 75 ec             	mov    -0x14(%ebp),%esi
404048:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40404b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40404e:	89 45 ec             	mov    %eax,-0x14(%ebp)
404051:	85 c9                	test   %ecx,%ecx
404053:	74 17                	je     0x40406c
404055:	83 7f 14 10          	cmpl   $0x10,0x14(%edi)
404059:	72 04                	jb     0x40405f
40405b:	8b 17                	mov    (%edi),%edx
40405d:	eb 02                	jmp    0x404061
40405f:	8b d7                	mov    %edi,%edx
404061:	51                   	push   %ecx
404062:	52                   	push   %edx
404063:	50                   	push   %eax
404064:	e8 40 0a 00 00       	call   0x404aa9
404069:	83 c4 0c             	add    $0xc,%esp
40406c:	53                   	push   %ebx
40406d:	6a 01                	push   $0x1
40406f:	8b cf                	mov    %edi,%ecx
404071:	e8 d0 00 00 00       	call   0x404146
404076:	8b 45 ec             	mov    -0x14(%ebp),%eax
404079:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40407c:	89 07                	mov    %eax,(%edi)
40407e:	89 77 14             	mov    %esi,0x14(%edi)
404081:	89 4f 10             	mov    %ecx,0x10(%edi)
404084:	83 fe 10             	cmp    $0x10,%esi
404087:	73 02                	jae    0x40408b
404089:	8b c7                	mov    %edi,%eax
40408b:	88 1c 08             	mov    %bl,(%eax,%ecx,1)
40408e:	e8 99 09 00 00       	call   0x404a2c
404093:	c2 08 00             	ret    $0x8
404096:	8b 4d e8             	mov    -0x18(%ebp),%ecx
404099:	33 db                	xor    %ebx,%ebx
40409b:	53                   	push   %ebx
40409c:	6a 01                	push   $0x1
40409e:	e8 a3 00 00 00       	call   0x404146
4040a3:	53                   	push   %ebx
4040a4:	53                   	push   %ebx
4040a5:	e8 7c 09 00 00       	call   0x404a26
4040aa:	cc                   	int3
4040ab:	8b ff                	mov    %edi,%edi
4040ad:	55                   	push   %ebp
4040ae:	8b ec                	mov    %esp,%ebp
4040b0:	56                   	push   %esi
4040b1:	8b 75 08             	mov    0x8(%ebp),%esi
4040b4:	83 fe fe             	cmp    $0xfffffffe,%esi
4040b7:	77 4a                	ja     0x404103
4040b9:	39 71 14             	cmp    %esi,0x14(%ecx)
4040bc:	73 0b                	jae    0x4040c9
4040be:	ff 71 10             	push   0x10(%ecx)
4040c1:	56                   	push   %esi
4040c2:	e8 fa fe ff ff       	call   0x403fc1
4040c7:	eb 30                	jmp    0x4040f9
4040c9:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4040cd:	74 18                	je     0x4040e7
4040cf:	83 fe 10             	cmp    $0x10,%esi
4040d2:	73 13                	jae    0x4040e7
4040d4:	8b 41 10             	mov    0x10(%ecx),%eax
4040d7:	3b f0                	cmp    %eax,%esi
4040d9:	73 02                	jae    0x4040dd
4040db:	8b c6                	mov    %esi,%eax
4040dd:	50                   	push   %eax
4040de:	6a 01                	push   $0x1
4040e0:	e8 61 00 00 00       	call   0x404146
4040e5:	eb 12                	jmp    0x4040f9
4040e7:	85 f6                	test   %esi,%esi
4040e9:	75 10                	jne    0x4040fb
4040eb:	21 71 10             	and    %esi,0x10(%ecx)
4040ee:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4040f2:	72 02                	jb     0x4040f6
4040f4:	8b 09                	mov    (%ecx),%ecx
4040f6:	c6 01 00             	movb   $0x0,(%ecx)
4040f9:	85 f6                	test   %esi,%esi
4040fb:	0f 95 c0             	setne  %al
4040fe:	5e                   	pop    %esi
4040ff:	5d                   	pop    %ebp
404100:	c2 08 00             	ret    $0x8
404103:	e8 a3 00 00 00       	call   0x4041ab
404108:	cc                   	int3
404109:	8b ff                	mov    %edi,%edi
40410b:	55                   	push   %ebp
40410c:	8b ec                	mov    %esp,%ebp
40410e:	8b 55 08             	mov    0x8(%ebp),%edx
404111:	85 d2                	test   %edx,%edx
404113:	74 2b                	je     0x404140
404115:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
404119:	72 04                	jb     0x40411f
40411b:	8b 01                	mov    (%ecx),%eax
40411d:	eb 02                	jmp    0x404121
40411f:	8b c1                	mov    %ecx,%eax
404121:	3b d0                	cmp    %eax,%edx
404123:	72 1b                	jb     0x404140
404125:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
404129:	56                   	push   %esi