408f95:	ff 15 e4 60 41 00    	call   *0x4160e4
408f9b:	8b c7                	mov    %edi,%eax
408f9d:	5f                   	pop    %edi
408f9e:	5e                   	pop    %esi
408f9f:	5b                   	pop    %ebx
408fa0:	c9                   	leave
408fa1:	c2 04 00             	ret    $0x4
408fa4:	8b ff                	mov    %edi,%edi
408fa6:	56                   	push   %esi
408fa7:	8b f1                	mov    %ecx,%esi
408fa9:	83 be 2c 04 00 00 00 	cmpl   $0x0,0x42c(%esi)
408fb0:	74 09                	je     0x408fbb
408fb2:	8d 46 04             	lea    0x4(%esi),%eax
408fb5:	50                   	push   %eax
408fb6:	e8 55 02 00 00       	call   0x409210
408fbb:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
408fbf:	74 09                	je     0x408fca
408fc1:	ff 76 0c             	push   0xc(%esi)
408fc4:	ff 15 d0 60 41 00    	call   *0x4160d0
408fca:	ff b6 38 04 00 00    	push   0x438(%esi)
408fd0:	ff 15 b8 61 41 00    	call   *0x4161b8
408fd6:	ff b6 34 04 00 00    	push   0x434(%esi)
408fdc:	ff 15 b8 61 41 00    	call   *0x4161b8
408fe2:	ff b6 30 04 00 00    	push   0x430(%esi)
408fe8:	ff 15 b8 61 41 00    	call   *0x4161b8
408fee:	5e                   	pop    %esi
408fef:	c3                   	ret
408ff0:	8b ff                	mov    %edi,%edi
408ff2:	55                   	push   %ebp
408ff3:	8b ec                	mov    %esp,%ebp
408ff5:	81 ec 10 02 00 00    	sub    $0x210,%esp
408ffb:	a1 f4 51 41 00       	mov    0x4151f4,%eax
409000:	33 c5                	xor    %ebp,%eax
409002:	89 45 fc             	mov    %eax,-0x4(%ebp)
409005:	53                   	push   %ebx
409006:	56                   	push   %esi
409007:	8b 75 08             	mov    0x8(%ebp),%esi
40900a:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
409010:	57                   	push   %edi
409011:	68 08 02 00 00       	push   $0x208
409016:	33 ff                	xor    %edi,%edi
409018:	89 b5 f0 fd ff ff    	mov    %esi,-0x210(%ebp)
40901e:	57                   	push   %edi
40901f:	50                   	push   %eax
409020:	8b d9                	mov    %ecx,%ebx
409022:	e8 ca 9a 00 00       	call   0x412af1
409027:	83 c4 0c             	add    $0xc,%esp
40902a:	85 f6                	test   %esi,%esi
40902c:	75 20                	jne    0x40904e
40902e:	bf 03 40 00 80       	mov    $0x80004003,%edi
409033:	57                   	push   %edi
409034:	68 74 2d 40 00       	push   $0x402d74
409039:	68 c4 00 00 00       	push   $0xc4
40903e:	68 00 2d 40 00       	push   $0x402d00
409043:	51                   	push   %ecx
409044:	e8 89 7f 00 00       	call   0x410fd2
409049:	e9 de 00 00 00       	jmp    0x40912c
40904e:	89 3e                	mov    %edi,(%esi)
409050:	89 bb 28 04 00 00    	mov    %edi,0x428(%ebx)
409056:	39 bb 2c 04 00 00    	cmp    %edi,0x42c(%ebx)
40905c:	74 13                	je     0x409071
40905e:	8d 43 04             	lea    0x4(%ebx),%eax
409061:	8b 08                	mov    (%eax),%ecx
409063:	50                   	push   %eax
409064:	8b 71 38             	mov    0x38(%ecx),%esi
409067:	8b ce                	mov    %esi,%ecx
409069:	ff 15 28 63 41 00    	call   *0x416328
40906f:	ff d6                	call   *%esi
409071:	39 7b 0c             	cmp    %edi,0xc(%ebx)
409074:	74 12                	je     0x409088
409076:	ff 73 0c             	push   0xc(%ebx)
409079:	ff 15 d0 60 41 00    	call   *0x4160d0
40907f:	89 7b 10             	mov    %edi,0x10(%ebx)
409082:	89 7b 14             	mov    %edi,0x14(%ebx)
409085:	89 7b 0c             	mov    %edi,0xc(%ebx)
409088:	57                   	push   %edi
409089:	6a 25                	push   $0x25
40908b:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
409091:	50                   	push   %eax
409092:	57                   	push   %edi
409093:	ff 15 c8 61 41 00    	call   *0x4161c8
409099:	85 c0                	test   %eax,%eax
40909b:	75 12                	jne    0x4090af
40909d:	bf 05 40 00 80       	mov    $0x80004005,%edi
4090a2:	57                   	push   %edi
4090a3:	68 74 2d 40 00       	push   $0x402d74
4090a8:	68 e4 00 00 00       	push   $0xe4
4090ad:	eb 8f                	jmp    0x40903e
4090af:	68 a0 2d 40 00       	push   $0x402da0
4090b4:	ba 04 01 00 00       	mov    $0x104,%edx
4090b9:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
4090bf:	e8 3e 08 00 00       	call   0x409902
4090c4:	85 c0                	test   %eax,%eax
4090c6:	79 15                	jns    0x4090dd
4090c8:	bf 05 40 00 80       	mov    $0x80004005,%edi
4090cd:	57                   	push   %edi
4090ce:	68 74 2d 40 00       	push   $0x402d74
4090d3:	68 ec 00 00 00       	push   $0xec
4090d8:	e9 61 ff ff ff       	jmp    0x40903e
4090dd:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
4090e3:	50                   	push   %eax
4090e4:	ff 15 ec 60 41 00    	call   *0x4160ec
4090ea:	8b f0                	mov    %eax,%esi
4090ec:	85 f6                	test   %esi,%esi
4090ee:	75 1d                	jne    0x40910d
4090f0:	57                   	push   %edi
4090f1:	68 74 2d 40 00       	push   $0x402d74
4090f6:	68 f7 00 00 00       	push   $0xf7
4090fb:	68 00 2d 40 00       	push   $0x402d00
409100:	51                   	push   %ecx
409101:	e8 cc 7e 00 00       	call   0x410fd2
409106:	bf 05 40 00 80       	mov    $0x80004005,%edi
40910b:	eb 1f                	jmp    0x40912c
40910d:	68 b8 2d 40 00       	push   $0x402db8
409112:	56                   	push   %esi
409113:	ff 15 70 61 41 00    	call   *0x416170
409119:	85 c0                	test   %eax,%eax
40911b:	74 03                	je     0x409120
40911d:	89 73 0c             	mov    %esi,0xc(%ebx)
409120:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
409126:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40912c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40912f:	8b c7                	mov    %edi,%eax
409131:	5f                   	pop    %edi
409132:	5e                   	pop    %esi
409133:	33 cd                	xor    %ebp,%ecx
409135:	5b                   	pop    %ebx
409136:	e8 b5 8e 00 00       	call   0x411ff0
40913b:	c9                   	leave
40913c:	c2 04 00             	ret    $0x4
40913f:	cc                   	int3
409140:	8b ff                	mov    %edi,%edi
409142:	55                   	push   %ebp
409143:	8b ec                	mov    %esp,%ebp
409145:	51                   	push   %ecx
409146:	56                   	push   %esi
409147:	8b 75 0c             	mov    0xc(%ebp),%esi
40914a:	85 f6                	test   %esi,%esi
40914c:	75 20                	jne    0x40916e
40914e:	56                   	push   %esi
40914f:	68 c4 2d 40 00       	push   $0x402dc4
409154:	68 2b 01 00 00       	push   $0x12b
409159:	68 00 2d 40 00       	push   $0x402d00
40915e:	51                   	push   %ecx
40915f:	e8 6e 7e 00 00       	call   0x410fd2
409164:	b8 03 40 00 80       	mov    $0x80004003,%eax
409169:	e9 8e 00 00 00       	jmp    0x4091fc
40916e:	53                   	push   %ebx
40916f:	57                   	push   %edi
409170:	8b 7d 08             	mov    0x8(%ebp),%edi
409173:	33 c0                	xor    %eax,%eax
409175:	89 06                	mov    %eax,(%esi)
409177:	bb 05 40 00 80       	mov    $0x80004005,%ebx
40917c:	39 87 28 04 00 00    	cmp    %eax,0x428(%edi)
409182:	74 2b                	je     0x4091af
409184:	bf 00 2d 40 00       	mov    $0x402d00,%edi
409189:	57                   	push   %edi
40918a:	68 3a 01 00 00       	push   $0x13a
40918f:	68 f8 2a 40 00       	push   $0x402af8
409194:	e8 84 7d 00 00       	call   0x410f1d
409199:	57                   	push   %edi
40919a:	68 3d 01 00 00       	push   $0x13d
40919f:	33 db                	xor    %ebx,%ebx
4091a1:	21 1e                	and    %ebx,(%esi)
4091a3:	68 68 2c 40 00       	push   $0x402c68
4091a8:	e8 70 7d 00 00       	call   0x410f1d
4091ad:	eb 49                	jmp    0x4091f8
4091af:	39 47 08             	cmp    %eax,0x8(%edi)
4091b2:	75 36                	jne    0x4091ea
4091b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4091b7:	8d 4f fc             	lea    -0x4(%edi),%ecx
4091ba:	8d 45 fc             	lea    -0x4(%ebp),%eax
4091bd:	50                   	push   %eax
4091be:	e8 2d fe ff ff       	call   0x408ff0
4091c3:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4091c7:	75 1f                	jne    0x4091e8
4091c9:	6a 00                	push   $0x0
4091cb:	68 c4 2d 40 00       	push   $0x402dc4
4091d0:	68 4e 01 00 00       	push   $0x14e
4091d5:	68 00 2d 40 00       	push   $0x402d00
4091da:	51                   	push   %ecx
4091db:	c7 06 01 00 00 00    	movl   $0x1,(%esi)
4091e1:	e8 ec 7d 00 00       	call   0x410fd2
4091e6:	eb 10                	jmp    0x4091f8
4091e8:	33 c0                	xor    %eax,%eax
4091ea:	c7 87 28 04 00 00 01 	movl   $0x1,0x428(%edi)
4091f1:	00 00 00
4091f4:	8b d8                	mov    %eax,%ebx
4091f6:	89 06                	mov    %eax,(%esi)
4091f8:	5f                   	pop    %edi
4091f9:	8b c3                	mov    %ebx,%eax
4091fb:	5b                   	pop    %ebx
4091fc:	5e                   	pop    %esi
4091fd:	c9                   	leave
4091fe:	c2 0c 00             	ret    $0xc
409201:	cc                   	int3
409202:	cc                   	int3
409203:	cc                   	int3
409204:	cc                   	int3
409205:	cc                   	int3
409206:	cc                   	int3
409207:	cc                   	int3
409208:	cc                   	int3
409209:	cc                   	int3
40920a:	cc                   	int3
40920b:	cc                   	int3
40920c:	cc                   	int3
40920d:	cc                   	int3
40920e:	cc                   	int3
40920f:	cc                   	int3
409210:	8b ff                	mov    %edi,%edi
409212:	55                   	push   %ebp
409213:	8b ec                	mov    %esp,%ebp
409215:	8b 45 08             	mov    0x8(%ebp),%eax
409218:	83 b8 28 04 00 00 00 	cmpl   $0x0,0x428(%eax)
40921f:	74 07                	je     0x409228
409221:	83 a0 28 04 00 00 00 	andl   $0x0,0x428(%eax)
409228:	33 c0                	xor    %eax,%eax
40922a:	5d                   	pop    %ebp
40922b:	c2 04 00             	ret    $0x4
40922e:	cc                   	int3
40922f:	cc                   	int3
409230:	8b ff                	mov    %edi,%edi
409232:	55                   	push   %ebp
409233:	8b ec                	mov    %esp,%ebp
409235:	83 e4 f8             	and    $0xfffffff8,%esp
409238:	51                   	push   %ecx
409239:	53                   	push   %ebx
40923a:	56                   	push   %esi
40923b:	33 db                	xor    %ebx,%ebx
40923d:	57                   	push   %edi
40923e:	8b 7d 0c             	mov    0xc(%ebp),%edi
409241:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
409245:	89 1d c4 55 41 00    	mov    %ebx,0x4155c4
40924b:	85 ff                	test   %edi,%edi
40924d:	75 20                	jne    0x40926f
40924f:	be 03 40 00 80       	mov    $0x80004003,%esi
409254:	56                   	push   %esi
409255:	68 e4 2d 40 00       	push   $0x402de4
40925a:	68 a1 01 00 00       	push   $0x1a1
40925f:	68 00 2d 40 00       	push   $0x402d00
409264:	51                   	push   %ecx
409265:	e8 68 7d 00 00       	call   0x410fd2
40926a:	e9 fb 00 00 00       	jmp    0x40936a
40926f:	8b 75 08             	mov    0x8(%ebp),%esi
409272:	89 1f                	mov    %ebx,(%edi)
409274:	39 9e 28 04 00 00    	cmp    %ebx,0x428(%esi)
40927a:	75 10                	jne    0x40928c
40927c:	33 f6                	xor    %esi,%esi
40927e:	46                   	inc    %esi
40927f:	56                   	push   %esi
409280:	68 e4 2d 40 00       	push   $0x402de4
409285:	68 ab 01 00 00       	push   $0x1ab
40928a:	eb d3                	jmp    0x40925f
40928c:	68 0c 2e 40 00       	push   $0x402e0c
409291:	ff 76 08             	push   0x8(%esi)
409294:	ff 15 70 61 41 00    	call   *0x416170
40929a:	a3 c4 55 41 00       	mov    %eax,0x4155c4
40929f:	85 c0                	test   %eax,%eax
4092a1:	75 12                	jne    0x4092b5
4092a3:	53                   	push   %ebx
4092a4:	68 e4 2d 40 00       	push   $0x402de4
4092a9:	be 05 40 00 80       	mov    $0x80004005,%esi
4092ae:	68 b4 01 00 00       	push   $0x1b4
4092b3:	eb aa                	jmp    0x40925f
4092b5:	8d 44 24 0c          	lea    0xc(%esp),%eax
4092b9:	50                   	push   %eax
4092ba:	8d 4e fc             	lea    -0x4(%esi),%ecx
4092bd:	e8 9a 02 00 00       	call   0x40955c
4092c2:	8b f0                	mov    %eax,%esi
4092c4:	85 f6                	test   %esi,%esi
4092c6:	79 0d                	jns    0x4092d5
4092c8:	56                   	push   %esi
4092c9:	68 e4 2d 40 00       	push   $0x402de4
4092ce:	68 ba 01 00 00       	push   $0x1ba
4092d3:	eb 8a                	jmp    0x40925f
4092d5:	53                   	push   %ebx
4092d6:	53                   	push   %ebx
4092d7:	ff 74 24 14          	push   0x14(%esp)
4092db:	68 30 98 40 00       	push   $0x409830
4092e0:	53                   	push   %ebx
4092e1:	53                   	push   %ebx
4092e2:	ff 15 f0 60 41 00    	call   *0x4160f0
4092e8:	85 c0                	test   %eax,%eax
4092ea:	75 15                	jne    0x409301
4092ec:	53                   	push   %ebx
4092ed:	68 e4 2d 40 00       	push   $0x402de4
4092f2:	be 05 40 00 80       	mov    $0x80004005,%esi
4092f7:	68 c8 01 00 00       	push   $0x1c8
4092fc:	e9 5e ff ff ff       	jmp    0x40925f
409301:	6a ff                	push   $0xffffffff
409303:	50                   	push   %eax
409304:	ff 15 f4 60 41 00    	call   *0x4160f4
40930a:	85 c0                	test   %eax,%eax
40930c:	75 5c                	jne    0x40936a
40930e:	68 00 2d 40 00       	push   $0x402d00
409313:	68 d0 01 00 00       	push   $0x1d0
409318:	68 f8 2a 40 00       	push   $0x402af8
40931d:	e8 fb 7b 00 00       	call   0x410f1d
409322:	8b 45 10             	mov    0x10(%ebp),%eax
409325:	8b 0d c0 55 41 00    	mov    0x4155c0,%ecx
40932b:	89 08                	mov    %ecx,(%eax)
40932d:	85 c9                	test   %ecx,%ecx
40932f:	75 0a                	jne    0x40933b
409331:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
409337:	8b f3                	mov    %ebx,%esi
409339:	eb 1b                	jmp    0x409356
40933b:	53                   	push   %ebx
40933c:	68 e4 2d 40 00       	push   $0x402de4
409341:	68 dd 01 00 00       	push   $0x1dd
409346:	68 00 2d 40 00       	push   $0x402d00
40934b:	51                   	push   %ecx
40934c:	be 05 40 00 80       	mov    $0x80004005,%esi
409351:	e8 7c 7c 00 00       	call   0x410fd2
409356:	68 00 2d 40 00       	push   $0x402d00
40935b:	68 e1 01 00 00       	push   $0x1e1
409360:	68 68 2c 40 00       	push   $0x402c68
409365:	e8 b3 7b 00 00       	call   0x410f1d
40936a:	8d 4c 24 0c          	lea    0xc(%esp),%ecx
40936e:	e8 fd 03 00 00       	call   0x409770
409373:	5f                   	pop    %edi
409374:	8b c6                	mov    %esi,%eax
409376:	5e                   	pop    %esi
409377:	5b                   	pop    %ebx
409378:	8b e5                	mov    %ebp,%esp
40937a:	5d                   	pop    %ebp
40937b:	c2 0c 00             	ret    $0xc
40937e:	cc                   	int3
40937f:	cc                   	int3
409380:	8b ff                	mov    %edi,%edi
409382:	55                   	push   %ebp
409383:	8b ec                	mov    %esp,%ebp
409385:	56                   	push   %esi
409386:	8b 75 0c             	mov    0xc(%ebp),%esi
409389:	85 f6                	test   %esi,%esi
40938b:	75 07                	jne    0x409394
40938d:	b8 03 40 00 80       	mov    $0x80004003,%eax
409392:	eb 12                	jmp    0x4093a6
409394:	8b 4d 08             	mov    0x8(%ebp),%ecx
409397:	8d 89 2c 04 00 00    	lea    0x42c(%ecx),%ecx
40939d:	e8 3f 05 00 00       	call   0x4098e1
4093a2:	89 06                	mov    %eax,(%esi)
4093a4:	33 c0                	xor    %eax,%eax
4093a6:	5e                   	pop    %esi
4093a7:	5d                   	pop    %ebp
4093a8:	c2 08 00             	ret    $0x8
4093ab:	cc                   	int3
4093ac:	cc                   	int3
4093ad:	cc                   	int3
4093ae:	cc                   	int3