40be3d:	cc                   	int3
40be3e:	cc                   	int3
40be3f:	cc                   	int3
40be40:	51                   	push   %ecx
40be41:	3d 00 10 00 00       	cmp    $0x1000,%eax
40be46:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40be4a:	72 14                	jb     0x40be60
40be4c:	81 e9 00 10 00 00    	sub    $0x1000,%ecx
40be52:	2d 00 10 00 00       	sub    $0x1000,%eax
40be57:	85 01                	test   %eax,(%ecx)
40be59:	3d 00 10 00 00       	cmp    $0x1000,%eax
40be5e:	73 ec                	jae    0x40be4c
40be60:	2b c8                	sub    %eax,%ecx
40be62:	8b c4                	mov    %esp,%eax
40be64:	85 01                	test   %eax,(%ecx)
40be66:	8b e1                	mov    %ecx,%esp
40be68:	8b 08                	mov    (%eax),%ecx
40be6a:	8b 40 04             	mov    0x4(%eax),%eax
40be6d:	50                   	push   %eax
40be6e:	c3                   	ret
40be6f:	55                   	push   %ebp
40be70:	8b ec                	mov    %esp,%ebp
40be72:	6a ff                	push   $0xffffffff
40be74:	68 a0 d9 40 00       	push   $0x40d9a0
40be79:	68 74 87 40 00       	push   $0x408774
40be7e:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40be84:	50                   	push   %eax
40be85:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40be8c:	83 ec 1c             	sub    $0x1c,%esp
40be8f:	53                   	push   %ebx
40be90:	56                   	push   %esi
40be91:	57                   	push   %edi
40be92:	89 65 e8             	mov    %esp,-0x18(%ebp)
40be95:	33 ff                	xor    %edi,%edi
40be97:	39 3d 70 1a 41 00    	cmp    %edi,0x411a70
40be9d:	75 46                	jne    0x40bee5
40be9f:	57                   	push   %edi
40bea0:	57                   	push   %edi
40bea1:	6a 01                	push   $0x1
40bea3:	5b                   	pop    %ebx
40bea4:	53                   	push   %ebx
40bea5:	68 2c d8 40 00       	push   $0x40d82c
40beaa:	be 00 01 00 00       	mov    $0x100,%esi
40beaf:	56                   	push   %esi
40beb0:	57                   	push   %edi
40beb1:	ff 15 34 d0 40 00    	call   *0x40d034
40beb7:	85 c0                	test   %eax,%eax
40beb9:	74 08                	je     0x40bec3
40bebb:	89 1d 70 1a 41 00    	mov    %ebx,0x411a70
40bec1:	eb 22                	jmp    0x40bee5
40bec3:	57                   	push   %edi
40bec4:	57                   	push   %edi
40bec5:	53                   	push   %ebx
40bec6:	68 28 d8 40 00       	push   $0x40d828
40becb:	56                   	push   %esi
40becc:	57                   	push   %edi
40becd:	ff 15 38 d0 40 00    	call   *0x40d038
40bed3:	85 c0                	test   %eax,%eax
40bed5:	0f 84 22 01 00 00    	je     0x40bffd
40bedb:	c7 05 70 1a 41 00 02 	movl   $0x2,0x411a70
40bee2:	00 00 00
40bee5:	39 7d 14             	cmp    %edi,0x14(%ebp)
40bee8:	7e 10                	jle    0x40befa
40beea:	ff 75 14             	push   0x14(%ebp)
40beed:	ff 75 10             	push   0x10(%ebp)
40bef0:	e8 9e 01 00 00       	call   0x40c093
40bef5:	59                   	pop    %ecx
40bef6:	59                   	pop    %ecx
40bef7:	89 45 14             	mov    %eax,0x14(%ebp)
40befa:	a1 70 1a 41 00       	mov    0x411a70,%eax
40beff:	83 f8 02             	cmp    $0x2,%eax
40bf02:	75 1d                	jne    0x40bf21
40bf04:	ff 75 1c             	push   0x1c(%ebp)
40bf07:	ff 75 18             	push   0x18(%ebp)
40bf0a:	ff 75 14             	push   0x14(%ebp)
40bf0d:	ff 75 10             	push   0x10(%ebp)
40bf10:	ff 75 0c             	push   0xc(%ebp)
40bf13:	ff 75 08             	push   0x8(%ebp)
40bf16:	ff 15 38 d0 40 00    	call   *0x40d038
40bf1c:	e9 de 00 00 00       	jmp    0x40bfff
40bf21:	83 f8 01             	cmp    $0x1,%eax
40bf24:	0f 85 d3 00 00 00    	jne    0x40bffd
40bf2a:	39 7d 20             	cmp    %edi,0x20(%ebp)
40bf2d:	75 08                	jne    0x40bf37
40bf2f:	a1 7c 18 41 00       	mov    0x41187c,%eax
40bf34:	89 45 20             	mov    %eax,0x20(%ebp)
40bf37:	57                   	push   %edi
40bf38:	57                   	push   %edi
40bf39:	ff 75 14             	push   0x14(%ebp)
40bf3c:	ff 75 10             	push   0x10(%ebp)
40bf3f:	8b 45 24             	mov    0x24(%ebp),%eax
40bf42:	f7 d8                	neg    %eax
40bf44:	1b c0                	sbb    %eax,%eax
40bf46:	83 e0 08             	and    $0x8,%eax
40bf49:	40                   	inc    %eax
40bf4a:	50                   	push   %eax
40bf4b:	ff 75 20             	push   0x20(%ebp)
40bf4e:	ff 15 d4 d0 40 00    	call   *0x40d0d4
40bf54:	8b d8                	mov    %eax,%ebx
40bf56:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40bf59:	3b df                	cmp    %edi,%ebx
40bf5b:	0f 84 9c 00 00 00    	je     0x40bffd
40bf61:	89 7d fc             	mov    %edi,-0x4(%ebp)
40bf64:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
40bf67:	83 c0 03             	add    $0x3,%eax
40bf6a:	24 fc                	and    $0xfc,%al
40bf6c:	e8 cf fe ff ff       	call   0x40be40
40bf71:	89 65 e8             	mov    %esp,-0x18(%ebp)
40bf74:	8b c4                	mov    %esp,%eax
40bf76:	89 45 dc             	mov    %eax,-0x24(%ebp)
40bf79:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40bf7d:	eb 13                	jmp    0x40bf92
40bf7f:	6a 01                	push   $0x1
40bf81:	58                   	pop    %eax
40bf82:	c3                   	ret
40bf83:	8b 65 e8             	mov    -0x18(%ebp),%esp
40bf86:	33 ff                	xor    %edi,%edi
40bf88:	89 7d dc             	mov    %edi,-0x24(%ebp)
40bf8b:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40bf8f:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40bf92:	39 7d dc             	cmp    %edi,-0x24(%ebp)
40bf95:	74 66                	je     0x40bffd
40bf97:	53                   	push   %ebx
40bf98:	ff 75 dc             	push   -0x24(%ebp)
40bf9b:	ff 75 14             	push   0x14(%ebp)
40bf9e:	ff 75 10             	push   0x10(%ebp)
40bfa1:	6a 01                	push   $0x1
40bfa3:	ff 75 20             	push   0x20(%ebp)
40bfa6:	ff 15 d4 d0 40 00    	call   *0x40d0d4
40bfac:	85 c0                	test   %eax,%eax
40bfae:	74 4d                	je     0x40bffd
40bfb0:	57                   	push   %edi
40bfb1:	57                   	push   %edi
40bfb2:	53                   	push   %ebx
40bfb3:	ff 75 dc             	push   -0x24(%ebp)
40bfb6:	ff 75 0c             	push   0xc(%ebp)
40bfb9:	ff 75 08             	push   0x8(%ebp)
40bfbc:	ff 15 34 d0 40 00    	call   *0x40d034
40bfc2:	8b f0                	mov    %eax,%esi
40bfc4:	89 75 d8             	mov    %esi,-0x28(%ebp)
40bfc7:	3b f7                	cmp    %edi,%esi
40bfc9:	74 32                	je     0x40bffd
40bfcb:	f6 45 0d 04          	testb  $0x4,0xd(%ebp)
40bfcf:	74 40                	je     0x40c011
40bfd1:	39 7d 1c             	cmp    %edi,0x1c(%ebp)
40bfd4:	0f 84 b2 00 00 00    	je     0x40c08c
40bfda:	3b 75 1c             	cmp    0x1c(%ebp),%esi
40bfdd:	7f 1e                	jg     0x40bffd
40bfdf:	ff 75 1c             	push   0x1c(%ebp)
40bfe2:	ff 75 18             	push   0x18(%ebp)
40bfe5:	53                   	push   %ebx
40bfe6:	ff 75 dc             	push   -0x24(%ebp)
40bfe9:	ff 75 0c             	push   0xc(%ebp)
40bfec:	ff 75 08             	push   0x8(%ebp)
40bfef:	ff 15 34 d0 40 00    	call   *0x40d034
40bff5:	85 c0                	test   %eax,%eax
40bff7:	0f 85 8f 00 00 00    	jne    0x40c08c
40bffd:	33 c0                	xor    %eax,%eax
40bfff:	8d 65 c8             	lea    -0x38(%ebp),%esp
40c002:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c005:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c00c:	5f                   	pop    %edi
40c00d:	5e                   	pop    %esi
40c00e:	5b                   	pop    %ebx
40c00f:	c9                   	leave
40c010:	c3                   	ret
40c011:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c018:	8d 04 36             	lea    (%esi,%esi,1),%eax
40c01b:	83 c0 03             	add    $0x3,%eax
40c01e:	24 fc                	and    $0xfc,%al
40c020:	e8 1b fe ff ff       	call   0x40be40
40c025:	89 65 e8             	mov    %esp,-0x18(%ebp)
40c028:	8b dc                	mov    %esp,%ebx
40c02a:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40c02d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c031:	eb 12                	jmp    0x40c045
40c033:	6a 01                	push   $0x1
40c035:	58                   	pop    %eax
40c036:	c3                   	ret
40c037:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c03a:	33 ff                	xor    %edi,%edi
40c03c:	33 db                	xor    %ebx,%ebx
40c03e:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40c042:	8b 75 d8             	mov    -0x28(%ebp),%esi
40c045:	3b df                	cmp    %edi,%ebx
40c047:	74 b4                	je     0x40bffd
40c049:	56                   	push   %esi
40c04a:	53                   	push   %ebx
40c04b:	ff 75 e4             	push   -0x1c(%ebp)
40c04e:	ff 75 dc             	push   -0x24(%ebp)
40c051:	ff 75 0c             	push   0xc(%ebp)
40c054:	ff 75 08             	push   0x8(%ebp)
40c057:	ff 15 34 d0 40 00    	call   *0x40d034
40c05d:	85 c0                	test   %eax,%eax
40c05f:	74 9c                	je     0x40bffd
40c061:	39 7d 1c             	cmp    %edi,0x1c(%ebp)
40c064:	57                   	push   %edi
40c065:	57                   	push   %edi
40c066:	75 04                	jne    0x40c06c
40c068:	57                   	push   %edi
40c069:	57                   	push   %edi
40c06a:	eb 06                	jmp    0x40c072
40c06c:	ff 75 1c             	push   0x1c(%ebp)
40c06f:	ff 75 18             	push   0x18(%ebp)
40c072:	56                   	push   %esi
40c073:	53                   	push   %ebx
40c074:	68 20 02 00 00       	push   $0x220
40c079:	ff 75 20             	push   0x20(%ebp)
40c07c:	ff 15 18 d1 40 00    	call   *0x40d118
40c082:	8b f0                	mov    %eax,%esi
40c084:	3b f7                	cmp    %edi,%esi
40c086:	0f 84 71 ff ff ff    	je     0x40bffd
40c08c:	8b c6                	mov    %esi,%eax
40c08e:	e9 6c ff ff ff       	jmp    0x40bfff
40c093:	8b 54 24 08          	mov    0x8(%esp),%edx
40c097:	8b 44 24 04          	mov    0x4(%esp),%eax
40c09b:	85 d2                	test   %edx,%edx
40c09d:	56                   	push   %esi
40c09e:	8d 4a ff             	lea    -0x1(%edx),%ecx
40c0a1:	74 0d                	je     0x40c0b0
40c0a3:	80 38 00             	cmpb   $0x0,(%eax)
40c0a6:	74 08                	je     0x40c0b0
40c0a8:	40                   	inc    %eax
40c0a9:	8b f1                	mov    %ecx,%esi
40c0ab:	49                   	dec    %ecx
40c0ac:	85 f6                	test   %esi,%esi
40c0ae:	75 f3                	jne    0x40c0a3
40c0b0:	80 38 00             	cmpb   $0x0,(%eax)
40c0b3:	5e                   	pop    %esi
40c0b4:	75 05                	jne    0x40c0bb
40c0b6:	2b 44 24 04          	sub    0x4(%esp),%eax
40c0ba:	c3                   	ret
40c0bb:	8b c2                	mov    %edx,%eax
40c0bd:	c3                   	ret
40c0be:	55                   	push   %ebp
40c0bf:	8b ec                	mov    %esp,%ebp
40c0c1:	83 ec 0c             	sub    $0xc,%esp
40c0c4:	8b 45 08             	mov    0x8(%ebp),%eax
40c0c7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c0cb:	48                   	dec    %eax
40c0cc:	53                   	push   %ebx
40c0cd:	56                   	push   %esi
40c0ce:	48                   	dec    %eax
40c0cf:	57                   	push   %edi
40c0d0:	74 67                	je     0x40c139
40c0d2:	48                   	dec    %eax
40c0d3:	48                   	dec    %eax
40c0d4:	74 46                	je     0x40c11c
40c0d6:	83 e8 04             	sub    $0x4,%eax
40c0d9:	74 41                	je     0x40c11c
40c0db:	83 e8 03             	sub    $0x3,%eax
40c0de:	74 3c                	je     0x40c11c
40c0e0:	83 e8 04             	sub    $0x4,%eax
40c0e3:	74 2a                	je     0x40c10f
40c0e5:	83 e8 06             	sub    $0x6,%eax
40c0e8:	74 18                	je     0x40c102
40c0ea:	48                   	dec    %eax
40c0eb:	74 08                	je     0x40c0f5
40c0ed:	83 c8 ff             	or     $0xffffffff,%eax
40c0f0:	e9 46 01 00 00       	jmp    0x40c23b
40c0f5:	8b 1d 7c 1a 41 00    	mov    0x411a7c,%ebx
40c0fb:	bf 7c 1a 41 00       	mov    $0x411a7c,%edi
40c100:	eb 42                	jmp    0x40c144
40c102:	8b 1d 78 1a 41 00    	mov    0x411a78,%ebx
40c108:	bf 78 1a 41 00       	mov    $0x411a78,%edi
40c10d:	eb 35                	jmp    0x40c144
40c10f:	8b 1d 80 1a 41 00    	mov    0x411a80,%ebx
40c115:	bf 80 1a 41 00       	mov    $0x411a80,%edi
40c11a:	eb 28                	jmp    0x40c144
40c11c:	e8 a6 c5 ff ff       	call   0x4086c7
40c121:	8b f0                	mov    %eax,%esi
40c123:	ff 76 50             	push   0x50(%esi)
40c126:	ff 75 08             	push   0x8(%ebp)
40c129:	e8 12 01 00 00       	call   0x40c240
40c12e:	8b f8                	mov    %eax,%edi
40c130:	59                   	pop    %ecx
40c131:	83 c7 08             	add    $0x8,%edi
40c134:	59                   	pop    %ecx
40c135:	8b 1f                	mov    (%edi),%ebx
40c137:	eb 1d                	jmp    0x40c156
40c139:	8b 1d 74 1a 41 00    	mov    0x411a74,%ebx
40c13f:	bf 74 1a 41 00       	mov    $0x411a74,%edi
40c144:	6a 01                	push   $0x1
40c146:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40c14d:	e8 a3 ae ff ff       	call   0x406ff5
40c152:	8b 75 08             	mov    0x8(%ebp),%esi
40c155:	59                   	pop    %ecx
40c156:	83 fb 01             	cmp    $0x1,%ebx
40c159:	75 16                	jne    0x40c171
40c15b:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40c15f:	0f 84 d4 00 00 00    	je     0x40c239
40c165:	53                   	push   %ebx
40c166:	e8 eb ae ff ff       	call   0x407056
40c16b:	59                   	pop    %ecx
40c16c:	e9 c8 00 00 00       	jmp    0x40c239
40c171:	33 c9                	xor    %ecx,%ecx
40c173:	3b d9                	cmp    %ecx,%ebx
40c175:	75 14                	jne    0x40c18b
40c177:	39 4d fc             	cmp    %ecx,-0x4(%ebp)
40c17a:	74 08                	je     0x40c184
40c17c:	6a 01                	push   $0x1
40c17e:	e8 d3 ae ff ff       	call   0x407056
40c183:	59                   	pop    %ecx
40c184:	6a 03                	push   $0x3
40c186:	e8 a3 af ff ff       	call   0x40712e
40c18b:	8b 45 08             	mov    0x8(%ebp),%eax
40c18e:	83 f8 08             	cmp    $0x8,%eax
40c191:	74 0a                	je     0x40c19d
40c193:	83 f8 0b             	cmp    $0xb,%eax
40c196:	74 05                	je     0x40c19d
40c198:	83 f8 04             	cmp    $0x4,%eax
40c19b:	75 1b                	jne    0x40c1b8
40c19d:	8b 56 54             	mov    0x54(%esi),%edx
40c1a0:	83 f8 08             	cmp    $0x8,%eax
40c1a3:	89 55 f8             	mov    %edx,-0x8(%ebp)
40c1a6:	89 4e 54             	mov    %ecx,0x54(%esi)
40c1a9:	75 49                	jne    0x40c1f4
40c1ab:	8b 56 58             	mov    0x58(%esi),%edx
40c1ae:	c7 46 58 8c 00 00 00 	movl   $0x8c,0x58(%esi)
40c1b5:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c1b8:	83 f8 08             	cmp    $0x8,%eax
40c1bb:	75 37                	jne    0x40c1f4
40c1bd:	8b 0d f8 0d 41 00    	mov    0x410df8,%ecx
40c1c3:	a1 fc 0d 41 00       	mov    0x410dfc,%eax
40c1c8:	03 c1                	add    %ecx,%eax
40c1ca:	3b c8                	cmp    %eax,%ecx
40c1cc:	7d 28                	jge    0x40c1f6
40c1ce:	8d 04 49             	lea    (%ecx,%ecx,2),%eax
40c1d1:	c1 e0 02             	shl    $0x2,%eax
40c1d4:	8b 56 50             	mov    0x50(%esi),%edx
40c1d7:	83 c0 0c             	add    $0xc,%eax
40c1da:	83 64 02 fc 00       	andl   $0x0,-0x4(%edx,%eax,1)
40c1df:	8b 15 f8 0d 41 00    	mov    0x410df8,%edx
40c1e5:	8b 3d fc 0d 41 00    	mov    0x410dfc,%edi
40c1eb:	41                   	inc    %ecx
40c1ec:	03 fa                	add    %edx,%edi
40c1ee:	3b cf                	cmp    %edi,%ecx
40c1f0:	7c e2                	jl     0x40c1d4
40c1f2:	eb 02                	jmp    0x40c1f6
40c1f4:	89 0f                	mov    %ecx,(%edi)
40c1f6:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40c1fa:	74 08                	je     0x40c204
40c1fc:	6a 01                	push   $0x1
40c1fe:	e8 53 ae ff ff       	call   0x407056
40c203:	59                   	pop    %ecx
40c204:	83 7d 08 08          	cmpl   $0x8,0x8(%ebp)
40c208:	75 0b                	jne    0x40c215
40c20a:	ff 76 58             	push   0x58(%esi)
40c20d:	6a 08                	push   $0x8
40c20f:	ff d3                	call   *%ebx