40edea:	8b 50 fc             	mov    -0x4(%eax),%edx
40eded:	83 c1 23             	add    $0x23,%ecx
40edf0:	2b c2                	sub    %edx,%eax
40edf2:	83 c0 fc             	add    $0xfffffffc,%eax
40edf5:	83 f8 1f             	cmp    $0x1f,%eax
40edf8:	0f 87 25 02 00 00    	ja     0x40f023
40edfe:	51                   	push   %ecx
40edff:	52                   	push   %edx
40ee00:	e8 b3 ad 00 00       	call   0x419bb8
40ee05:	83 c4 08             	add    $0x8,%esp
40ee08:	33 c0                	xor    %eax,%eax
40ee0a:	c7 85 00 fd ff ff 00 	movl   $0x0,-0x300(%ebp)
40ee11:	00 00 00
40ee14:	66 89 85 f0 fc ff ff 	mov    %ax,-0x310(%ebp)
40ee1b:	8b 85 b4 fd ff ff    	mov    -0x24c(%ebp),%eax
40ee21:	c7 85 04 fd ff ff 07 	movl   $0x7,-0x2fc(%ebp)
40ee28:	00 00 00
40ee2b:	83 f8 08             	cmp    $0x8,%eax
40ee2e:	72 2f                	jb     0x40ee5f
40ee30:	8d 0c 45 02 00 00 00 	lea    0x2(,%eax,2),%ecx
40ee37:	8b c6                	mov    %esi,%eax
40ee39:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ee3f:	72 14                	jb     0x40ee55
40ee41:	8b 70 fc             	mov    -0x4(%eax),%esi
40ee44:	83 c1 23             	add    $0x23,%ecx
40ee47:	2b c6                	sub    %esi,%eax
40ee49:	83 c0 fc             	add    $0xfffffffc,%eax
40ee4c:	83 f8 1f             	cmp    $0x1f,%eax
40ee4f:	0f 87 ce 01 00 00    	ja     0x40f023
40ee55:	51                   	push   %ecx
40ee56:	56                   	push   %esi
40ee57:	e8 5c ad 00 00       	call   0x419bb8
40ee5c:	83 c4 08             	add    $0x8,%esp
40ee5f:	8b 8d cc fd ff ff    	mov    -0x234(%ebp),%ecx
40ee65:	83 f9 08             	cmp    $0x8,%ecx
40ee68:	72 35                	jb     0x40ee9f
40ee6a:	8b 95 b8 fd ff ff    	mov    -0x248(%ebp),%edx
40ee70:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40ee77:	8b c2                	mov    %edx,%eax
40ee79:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ee7f:	72 14                	jb     0x40ee95
40ee81:	8b 50 fc             	mov    -0x4(%eax),%edx
40ee84:	83 c1 23             	add    $0x23,%ecx
40ee87:	2b c2                	sub    %edx,%eax
40ee89:	83 c0 fc             	add    $0xfffffffc,%eax
40ee8c:	83 f8 1f             	cmp    $0x1f,%eax
40ee8f:	0f 87 8e 01 00 00    	ja     0x40f023
40ee95:	51                   	push   %ecx
40ee96:	52                   	push   %edx
40ee97:	e8 1c ad 00 00       	call   0x419bb8
40ee9c:	83 c4 08             	add    $0x8,%esp
40ee9f:	8b bd dc fd ff ff    	mov    -0x224(%ebp),%edi
40eea5:	33 c0                	xor    %eax,%eax
40eea7:	c7 85 c8 fd ff ff 00 	movl   $0x0,-0x238(%ebp)
40eeae:	00 00 00
40eeb1:	c7 85 cc fd ff ff 07 	movl   $0x7,-0x234(%ebp)
40eeb8:	00 00 00
40eebb:	66 89 85 b8 fd ff ff 	mov    %ax,-0x248(%ebp)
40eec2:	85 ff                	test   %edi,%edi
40eec4:	0f 84 7c 00 00 00    	je     0x40ef46
40eeca:	8b 95 e0 fd ff ff    	mov    -0x220(%ebp),%edx
40eed0:	51                   	push   %ecx
40eed1:	8b cf                	mov    %edi,%ecx
40eed3:	e8 38 61 ff ff       	call   0x405010
40eed8:	8b 8d e4 fd ff ff    	mov    -0x21c(%ebp),%ecx
40eede:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40eee3:	8b b5 dc fd ff ff    	mov    -0x224(%ebp),%esi
40eee9:	83 c4 04             	add    $0x4,%esp
40eeec:	2b ce                	sub    %esi,%ecx
40eeee:	f7 e9                	imul   %ecx
40eef0:	c1 fa 02             	sar    $0x2,%edx
40eef3:	8b c2                	mov    %edx,%eax
40eef5:	c1 e8 1f             	shr    $0x1f,%eax
40eef8:	03 c2                	add    %edx,%eax
40eefa:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40eefd:	8b c6                	mov    %esi,%eax
40eeff:	c1 e1 03             	shl    $0x3,%ecx
40ef02:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ef08:	72 14                	jb     0x40ef1e
40ef0a:	8b 70 fc             	mov    -0x4(%eax),%esi
40ef0d:	83 c1 23             	add    $0x23,%ecx
40ef10:	2b c6                	sub    %esi,%eax
40ef12:	83 c0 fc             	add    $0xfffffffc,%eax
40ef15:	83 f8 1f             	cmp    $0x1f,%eax
40ef18:	0f 87 05 01 00 00    	ja     0x40f023
40ef1e:	51                   	push   %ecx
40ef1f:	56                   	push   %esi
40ef20:	e8 93 ac 00 00       	call   0x419bb8
40ef25:	83 c4 08             	add    $0x8,%esp
40ef28:	c7 85 dc fd ff ff 00 	movl   $0x0,-0x224(%ebp)
40ef2f:	00 00 00
40ef32:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
40ef39:	00 00 00
40ef3c:	c7 85 e4 fd ff ff 00 	movl   $0x0,-0x21c(%ebp)
40ef43:	00 00 00
40ef46:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
40ef4c:	85 c9                	test   %ecx,%ecx
40ef4e:	0f 84 7a 00 00 00    	je     0x40efce
40ef54:	8b 95 d4 fd ff ff    	mov    -0x22c(%ebp),%edx
40ef5a:	51                   	push   %ecx
40ef5b:	e8 b0 60 ff ff       	call   0x405010
40ef60:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
40ef66:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40ef6b:	8b b5 d0 fd ff ff    	mov    -0x230(%ebp),%esi
40ef71:	83 c4 04             	add    $0x4,%esp
40ef74:	2b ce                	sub    %esi,%ecx
40ef76:	f7 e9                	imul   %ecx
40ef78:	c1 fa 02             	sar    $0x2,%edx
40ef7b:	8b c2                	mov    %edx,%eax
40ef7d:	c1 e8 1f             	shr    $0x1f,%eax
40ef80:	03 c2                	add    %edx,%eax
40ef82:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40ef85:	8b c6                	mov    %esi,%eax
40ef87:	c1 e1 03             	shl    $0x3,%ecx
40ef8a:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40ef90:	72 14                	jb     0x40efa6
40ef92:	8b 70 fc             	mov    -0x4(%eax),%esi
40ef95:	83 c1 23             	add    $0x23,%ecx
40ef98:	2b c6                	sub    %esi,%eax
40ef9a:	83 c0 fc             	add    $0xfffffffc,%eax
40ef9d:	83 f8 1f             	cmp    $0x1f,%eax
40efa0:	0f 87 7d 00 00 00    	ja     0x40f023
40efa6:	51                   	push   %ecx
40efa7:	56                   	push   %esi
40efa8:	e8 0b ac 00 00       	call   0x419bb8
40efad:	83 c4 08             	add    $0x8,%esp
40efb0:	c7 85 d0 fd ff ff 00 	movl   $0x0,-0x230(%ebp)
40efb7:	00 00 00
40efba:	c7 85 d4 fd ff ff 00 	movl   $0x0,-0x22c(%ebp)
40efc1:	00 00 00
40efc4:	c7 85 d8 fd ff ff 00 	movl   $0x0,-0x228(%ebp)
40efcb:	00 00 00
40efce:	8b 85 98 fd ff ff    	mov    -0x268(%ebp),%eax
40efd4:	ff 70 04             	push   0x4(%eax)
40efd7:	8d 85 98 fd ff ff    	lea    -0x268(%ebp),%eax
40efdd:	50                   	push   %eax
40efde:	8b c8                	mov    %eax,%ecx
40efe0:	e8 8b 12 00 00       	call   0x410270
40efe5:	6a 2c                	push   $0x2c
40efe7:	ff b5 98 fd ff ff    	push   -0x268(%ebp)
40efed:	e8 c6 ab 00 00       	call   0x419bb8
40eff2:	83 c4 08             	add    $0x8,%esp
40eff5:	32 c0                	xor    %al,%al
40eff7:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40effa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40f001:	59                   	pop    %ecx
40f002:	5f                   	pop    %edi
40f003:	5e                   	pop    %esi
40f004:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f007:	33 cd                	xor    %ebp,%ecx
40f009:	e8 9c ab 00 00       	call   0x419baa
40f00e:	8b e5                	mov    %ebp,%esp
40f010:	5d                   	pop    %ebp
40f011:	c2 04 00             	ret    $0x4
40f014:	e8 e7 5f ff ff       	call   0x405000
40f019:	e8 42 23 ff ff       	call   0x401360
40f01e:	e8 70 09 01 00       	call   0x41f993
40f023:	e8 6b 09 01 00       	call   0x41f993
40f028:	e8 e3 0c 00 00       	call   0x40fd10
40f02d:	cc                   	int3
40f02e:	cc                   	int3
40f02f:	cc                   	int3
40f030:	56                   	push   %esi
40f031:	8b f1                	mov    %ecx,%esi
40f033:	8b 06                	mov    (%esi),%eax
40f035:	ff 70 04             	push   0x4(%eax)
40f038:	56                   	push   %esi
40f039:	e8 32 12 00 00       	call   0x410270
40f03e:	6a 2c                	push   $0x2c
40f040:	ff 36                	push   (%esi)
40f042:	e8 71 ab 00 00       	call   0x419bb8
40f047:	83 c4 08             	add    $0x8,%esp
40f04a:	5e                   	pop    %esi
40f04b:	c3                   	ret
40f04c:	cc                   	int3
40f04d:	cc                   	int3
40f04e:	cc                   	int3
40f04f:	cc                   	int3
40f050:	55                   	push   %ebp
40f051:	8b ec                	mov    %esp,%ebp
40f053:	6a ff                	push   $0xffffffff
40f055:	68 71 c6 43 00       	push   $0x43c671
40f05a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40f060:	50                   	push   %eax
40f061:	81 ec 74 02 00 00    	sub    $0x274,%esp
40f067:	a1 14 50 45 00       	mov    0x455014,%eax
40f06c:	33 c5                	xor    %ebp,%eax
40f06e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f071:	53                   	push   %ebx
40f072:	56                   	push   %esi
40f073:	57                   	push   %edi
40f074:	50                   	push   %eax
40f075:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f078:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40f07e:	8b f9                	mov    %ecx,%edi
40f080:	8d 77 4c             	lea    0x4c(%edi),%esi
40f083:	56                   	push   %esi
40f084:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40f08a:	e8 31 42 ff ff       	call   0x4032c0
40f08f:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40f096:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40f09c:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
40f0a3:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
40f0aa:	50                   	push   %eax
40f0ab:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40f0b1:	68 04 01 00 00       	push   $0x104
40f0b6:	50                   	push   %eax
40f0b7:	e8 aa 47 01 00       	call   0x423866
40f0bc:	83 c4 0c             	add    $0xc,%esp
40f0bf:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40f0c5:	50                   	push   %eax
40f0c6:	ff 15 24 e2 43 00    	call   *0x43e224
40f0cc:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
40f0d2:	8d 51 02             	lea    0x2(%ecx),%edx
40f0d5:	66 8b 01             	mov    (%ecx),%ax
40f0d8:	83 c1 02             	add    $0x2,%ecx
40f0db:	66 85 c0             	test   %ax,%ax
40f0de:	75 f5                	jne    0x40f0d5
40f0e0:	2b ca                	sub    %edx,%ecx
40f0e2:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40f0e8:	d1 f9                	sar    $1,%ecx
40f0ea:	51                   	push   %ecx
40f0eb:	50                   	push   %eax
40f0ec:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40f0f2:	e8 f9 3d ff ff       	call   0x402ef0
40f0f7:	33 c0                	xor    %eax,%eax
40f0f9:	c7 85 a0 fd ff ff 00 	movl   $0x0,-0x260(%ebp)
40f100:	00 00 00
40f103:	c7 85 b0 fd ff ff 00 	movl   $0x0,-0x250(%ebp)
40f10a:	00 00 00
40f10d:	c7 85 b4 fd ff ff 07 	movl   $0x7,-0x24c(%ebp)
40f114:	00 00 00
40f117:	66 89 85 a0 fd ff ff 	mov    %ax,-0x260(%ebp)
40f11e:	8d 8d a0 fd ff ff    	lea    -0x260(%ebp),%ecx
40f124:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f128:	e8 23 65 00 00       	call   0x415650
40f12d:	8b 8d b0 fd ff ff    	mov    -0x250(%ebp),%ecx
40f133:	b8 fe ff ff 7f       	mov    $0x7ffffffe,%eax
40f138:	2b c1                	sub    %ecx,%eax
40f13a:	83 f8 01             	cmp    $0x1,%eax
40f13d:	0f 82 70 02 00 00    	jb     0x40f3b3
40f143:	83 bd b4 fd ff ff 08 	cmpl   $0x8,-0x24c(%ebp)
40f14a:	8d 85 a0 fd ff ff    	lea    -0x260(%ebp),%eax
40f150:	51                   	push   %ecx
40f151:	0f 43 85 a0 fd ff ff 	cmovae -0x260(%ebp),%eax
40f158:	50                   	push   %eax
40f159:	6a 01                	push   $0x1
40f15b:	68 28 f0 44 00       	push   $0x44f028
40f160:	51                   	push   %ecx
40f161:	ff b5 9c fd ff ff    	push   -0x264(%ebp)
40f167:	8d 8d 84 fd ff ff    	lea    -0x27c(%ebp),%ecx
40f16d:	e8 7e 61 ff ff       	call   0x4052f0
40f172:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40f176:	8d 85 84 fd ff ff    	lea    -0x27c(%ebp),%eax
40f17c:	83 bd 98 fd ff ff 08 	cmpl   $0x8,-0x268(%ebp)
40f183:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40f189:	ff b5 94 fd ff ff    	push   -0x26c(%ebp)
40f18f:	0f 43 85 84 fd ff ff 	cmovae -0x27c(%ebp),%eax
40f196:	50                   	push   %eax
40f197:	e8 d4 3b ff ff       	call   0x402d70
40f19c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40f1a0:	8b 8d 98 fd ff ff    	mov    -0x268(%ebp),%ecx
40f1a6:	83 f9 08             	cmp    $0x8,%ecx
40f1a9:	72 35                	jb     0x40f1e0
40f1ab:	8b 95 84 fd ff ff    	mov    -0x27c(%ebp),%edx
40f1b1:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40f1b8:	8b c2                	mov    %edx,%eax
40f1ba:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40f1c0:	72 14                	jb     0x40f1d6
40f1c2:	8b 50 fc             	mov    -0x4(%eax),%edx
40f1c5:	83 c1 23             	add    $0x23,%ecx
40f1c8:	2b c2                	sub    %edx,%eax
40f1ca:	83 c0 fc             	add    $0xfffffffc,%eax
40f1cd:	83 f8 1f             	cmp    $0x1f,%eax
40f1d0:	0f 87 e2 01 00 00    	ja     0x40f3b8
40f1d6:	51                   	push   %ecx
40f1d7:	52                   	push   %edx
40f1d8:	e8 db a9 00 00       	call   0x419bb8
40f1dd:	83 c4 08             	add    $0x8,%esp
40f1e0:	33 c0                	xor    %eax,%eax
40f1e2:	c7 85 b8 fd ff ff 00 	movl   $0x0,-0x248(%ebp)
40f1e9:	00 00 00
40f1ec:	c7 85 c8 fd ff ff 00 	movl   $0x0,-0x238(%ebp)
40f1f3:	00 00 00
40f1f6:	c7 85 cc fd ff ff 07 	movl   $0x7,-0x234(%ebp)
40f1fd:	00 00 00
40f200:	66 89 85 b8 fd ff ff 	mov    %ax,-0x248(%ebp)
40f207:	8d 95 b8 fd ff ff    	lea    -0x248(%ebp),%edx
40f20d:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40f211:	8b ce                	mov    %esi,%ecx
40f213:	e8 a8 67 00 00       	call   0x4159c0
40f218:	8d 95 b8 fd ff ff    	lea    -0x248(%ebp),%edx
40f21e:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40f224:	e8 c7 65 00 00       	call   0x4157f0
40f229:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
40f230:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40f236:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
40f23d:	50                   	push   %eax
40f23e:	ff 15 14 e2 43 00    	call   *0x43e214
40f244:	83 f8 01             	cmp    $0x1,%eax
40f247:	74 75                	je     0x40f2be
40f249:	6a 00                	push   $0x0
40f24b:	8b ce                	mov    %esi,%ecx
40f24d:	e8 6e 58 00 00       	call   0x414ac0
40f252:	83 c4 04             	add    $0x4,%esp
40f255:	85 c0                	test   %eax,%eax
40f257:	75 65                	jne    0x40f2be
40f259:	39 46 10             	cmp    %eax,0x10(%esi)
40f25c:	74 60                	je     0x40f2be
40f25e:	39 85 e0 fd ff ff    	cmp    %eax,-0x220(%ebp)
40f264:	74 58                	je     0x40f2be
40f266:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
40f26d:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40f273:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
40f27a:	83 7e 14 08          	cmpl   $0x8,0x14(%esi)
40f27e:	72 02                	jb     0x40f282
40f280:	8b 36                	mov    (%esi),%esi
40f282:	50                   	push   %eax
40f283:	56                   	push   %esi
40f284:	e8 c6 6e 01 00       	call   0x42614f
40f289:	83 c4 08             	add    $0x8,%esp
40f28c:	85 c0                	test   %eax,%eax
40f28e:	75 2e                	jne    0x40f2be
40f290:	8d 8f d4 00 00 00    	lea    0xd4(%edi),%ecx
40f296:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40f29c:	3b c8                	cmp    %eax,%ecx
40f29e:	74 1a                	je     0x40f2ba
40f2a0:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
40f2a7:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
40f2ad:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
40f2b4:	50                   	push   %eax
40f2b5:	e8 36 3c ff ff       	call   0x402ef0
40f2ba:	b3 01                	mov    $0x1,%bl
40f2bc:	eb 02                	jmp    0x40f2c0
40f2be:	32 db                	xor    %bl,%bl
40f2c0:	8b 8d cc fd ff ff    	mov    -0x234(%ebp),%ecx
40f2c6:	83 f9 08             	cmp    $0x8,%ecx
40f2c9:	72 35                	jb     0x40f300
40f2cb:	8b 95 b8 fd ff ff    	mov    -0x248(%ebp),%edx
40f2d1:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40f2d8:	8b c2                	mov    %edx,%eax
40f2da:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40f2e0:	72 14                	jb     0x40f2f6
40f2e2:	8b 50 fc             	mov    -0x4(%eax),%edx
40f2e5:	83 c1 23             	add    $0x23,%ecx
40f2e8:	2b c2                	sub    %edx,%eax
40f2ea:	83 c0 fc             	add    $0xfffffffc,%eax
40f2ed:	83 f8 1f             	cmp    $0x1f,%eax
40f2f0:	0f 87 c2 00 00 00    	ja     0x40f3b8
40f2f6:	51                   	push   %ecx