407fd5:	83 c4 14             	add    $0x14,%esp
407fd8:	85 f6                	test   %esi,%esi
407fda:	0f 85 0b 01 00 00    	jne    0x4080eb
407fe0:	8b 5c 24 10          	mov    0x10(%esp),%ebx
407fe4:	8b 6d 0c             	mov    0xc(%ebp),%ebp
407fe7:	85 ed                	test   %ebp,%ebp
407fe9:	0f 84 98 00 00 00    	je     0x408087
407fef:	90                   	nop
407ff0:	8b 7d 08             	mov    0x8(%ebp),%edi
407ff3:	b9 34 ce 45 00       	mov    $0x45ce34,%ecx
407ff8:	8b c7                	mov    %edi,%eax
407ffa:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
408000:	66 8b 10             	mov    (%eax),%dx
408003:	66 3b 11             	cmp    (%ecx),%dx
408006:	75 1e                	jne    0x408026
408008:	66 85 d2             	test   %dx,%dx
40800b:	74 15                	je     0x408022
40800d:	66 8b 50 02          	mov    0x2(%eax),%dx
408011:	66 3b 51 02          	cmp    0x2(%ecx),%dx
408015:	75 0f                	jne    0x408026
408017:	83 c0 04             	add    $0x4,%eax
40801a:	83 c1 04             	add    $0x4,%ecx
40801d:	66 85 d2             	test   %dx,%dx
408020:	75 de                	jne    0x408000
408022:	33 c0                	xor    %eax,%eax
408024:	eb 05                	jmp    0x40802b
408026:	1b c0                	sbb    %eax,%eax
408028:	83 d8 ff             	sbb    $0xffffffff,%eax
40802b:	8b 55 04             	mov    0x4(%ebp),%edx
40802e:	85 c0                	test   %eax,%eax
408030:	75 0c                	jne    0x40803e
408032:	52                   	push   %edx
408033:	53                   	push   %ebx
408034:	ff 15 b0 33 47 00    	call   *0x4733b0
40803a:	33 f6                	xor    %esi,%esi
40803c:	eb 3a                	jmp    0x408078
40803e:	85 ff                	test   %edi,%edi
408040:	74 28                	je     0x40806a
408042:	8b c7                	mov    %edi,%eax
408044:	8d 70 02             	lea    0x2(%eax),%esi
408047:	66 8b 08             	mov    (%eax),%cx
40804a:	83 c0 02             	add    $0x2,%eax
40804d:	66 85 c9             	test   %cx,%cx
408050:	75 f5                	jne    0x408047
408052:	2b c6                	sub    %esi,%eax
408054:	d1 f8                	sar    $1,%eax
408056:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
40805a:	50                   	push   %eax
40805b:	57                   	push   %edi
40805c:	6a 01                	push   $0x1
40805e:	6a 00                	push   $0x0
408060:	52                   	push   %edx
408061:	53                   	push   %ebx
408062:	ff 15 b8 33 47 00    	call   *0x4733b8
408068:	eb 08                	jmp    0x408072
40806a:	52                   	push   %edx
40806b:	53                   	push   %ebx
40806c:	ff 15 b0 33 47 00    	call   *0x4733b0
408072:	8b f0                	mov    %eax,%esi
408074:	85 f6                	test   %esi,%esi
408076:	75 6f                	jne    0x4080e7
408078:	8b 6d 00             	mov    0x0(%ebp),%ebp
40807b:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40807f:	85 ed                	test   %ebp,%ebp
408081:	0f 85 69 ff ff ff    	jne    0x407ff0
408087:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
40808b:	8b 41 04             	mov    0x4(%ecx),%eax
40808e:	85 c0                	test   %eax,%eax
408090:	74 19                	je     0x4080ab
408092:	51                   	push   %ecx
408093:	50                   	push   %eax
408094:	53                   	push   %ebx
408095:	e8 b6 fe ff ff       	call   0x407f50
40809a:	8b f0                	mov    %eax,%esi
40809c:	83 c4 0c             	add    $0xc,%esp
40809f:	85 f6                	test   %esi,%esi
4080a1:	75 44                	jne    0x4080e7
4080a3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4080a7:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4080ab:	8b 01                	mov    (%ecx),%eax
4080ad:	85 c0                	test   %eax,%eax
4080af:	74 19                	je     0x4080ca
4080b1:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4080b5:	8b 54 24 18          	mov    0x18(%esp),%edx
4080b9:	51                   	push   %ecx
4080ba:	50                   	push   %eax
4080bb:	52                   	push   %edx
4080bc:	e8 8f fe ff ff       	call   0x407f50
4080c1:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
4080c5:	83 c4 0c             	add    $0xc,%esp
4080c8:	8b f0                	mov    %eax,%esi
4080ca:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
4080ce:	85 db                	test   %ebx,%ebx
4080d0:	74 0d                	je     0x4080df
4080d2:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4080d6:	74 07                	je     0x4080df
4080d8:	53                   	push   %ebx
4080d9:	ff 15 68 33 47 00    	call   *0x473368
4080df:	5f                   	pop    %edi
4080e0:	8b c6                	mov    %esi,%eax
4080e2:	5e                   	pop    %esi
4080e3:	5d                   	pop    %ebp
4080e4:	5b                   	pop    %ebx
4080e5:	59                   	pop    %ecx
4080e6:	c3                   	ret
4080e7:	8b 6c 24 1c          	mov    0x1c(%esp),%ebp
4080eb:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4080ef:	eb dd                	jmp    0x4080ce
4080f1:	cc                   	int3
4080f2:	cc                   	int3
4080f3:	cc                   	int3
4080f4:	cc                   	int3
4080f5:	cc                   	int3
4080f6:	cc                   	int3
4080f7:	cc                   	int3
4080f8:	cc                   	int3
4080f9:	cc                   	int3
4080fa:	cc                   	int3
4080fb:	cc                   	int3
4080fc:	cc                   	int3
4080fd:	cc                   	int3
4080fe:	cc                   	int3
4080ff:	cc                   	int3
408100:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
408106:	68 04 01 00 00       	push   $0x104
40810b:	8d 44 24 08          	lea    0x8(%esp),%eax
40810f:	68 34 c9 45 00       	push   $0x45c934
408114:	50                   	push   %eax
408115:	e8 90 89 02 00       	call   0x430aaa
40811a:	8d 4c 24 10          	lea    0x10(%esp),%ecx
40811e:	51                   	push   %ecx
40811f:	e8 6c dd ff ff       	call   0x405e90
408124:	83 c4 10             	add    $0x10,%esp
408127:	6a 00                	push   $0x0
408129:	8d 54 24 04          	lea    0x4(%esp),%edx
40812d:	52                   	push   %edx
40812e:	6a 00                	push   $0x0
408130:	e8 db ad ff ff       	call   0x402f10
408135:	0d 0e 00 02 00       	or     $0x2000e,%eax
40813a:	50                   	push   %eax
40813b:	6a 00                	push   $0x0
40813d:	6a 00                	push   $0x0
40813f:	6a 00                	push   $0x0
408141:	8d 44 24 20          	lea    0x20(%esp),%eax
408145:	50                   	push   %eax
408146:	68 02 00 00 80       	push   $0x80000002
40814b:	ff 15 6c 33 47 00    	call   *0x47336c
408151:	85 c0                	test   %eax,%eax
408153:	75 45                	jne    0x40819a
408155:	8b 0c 24             	mov    (%esp),%ecx
408158:	56                   	push   %esi
408159:	8b b4 24 14 02 00 00 	mov    0x214(%esp),%esi
408160:	57                   	push   %edi
408161:	50                   	push   %eax
408162:	56                   	push   %esi
408163:	51                   	push   %ecx
408164:	e8 e7 fd ff ff       	call   0x407f50
408169:	8b f8                	mov    %eax,%edi
40816b:	83 c4 0c             	add    $0xc,%esp
40816e:	85 ff                	test   %edi,%edi
408170:	75 19                	jne    0x40818b
408172:	39 46 10             	cmp    %eax,0x10(%esi)
408175:	74 14                	je     0x40818b
408177:	8b 56 14             	mov    0x14(%esi),%edx
40817a:	8b 44 24 08          	mov    0x8(%esp),%eax
40817e:	56                   	push   %esi
40817f:	52                   	push   %edx
408180:	50                   	push   %eax
408181:	e8 ca e9 ff ff       	call   0x406b50
408186:	83 c4 0c             	add    $0xc,%esp
408189:	8b f8                	mov    %eax,%edi
40818b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40818f:	51                   	push   %ecx
408190:	ff 15 68 33 47 00    	call   *0x473368
408196:	8b c7                	mov    %edi,%eax
408198:	5f                   	pop    %edi
408199:	5e                   	pop    %esi
40819a:	81 c4 0c 02 00 00    	add    $0x20c,%esp
4081a0:	c3                   	ret
4081a1:	cc                   	int3
4081a2:	cc                   	int3
4081a3:	cc                   	int3
4081a4:	cc                   	int3
4081a5:	cc                   	int3
4081a6:	cc                   	int3
4081a7:	cc                   	int3
4081a8:	cc                   	int3
4081a9:	cc                   	int3
4081aa:	cc                   	int3
4081ab:	cc                   	int3
4081ac:	cc                   	int3
4081ad:	cc                   	int3
4081ae:	cc                   	int3
4081af:	cc                   	int3
4081b0:	8b 44 24 04          	mov    0x4(%esp),%eax
4081b4:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
4081ba:	85 c0                	test   %eax,%eax
4081bc:	75 11                	jne    0x4081cf
4081be:	68 04 01 00 00       	push   $0x104
4081c3:	68 34 c9 45 00       	push   $0x45c934
4081c8:	8d 44 24 0c          	lea    0xc(%esp),%eax
4081cc:	50                   	push   %eax
4081cd:	eb 34                	jmp    0x408203
4081cf:	83 bc 24 14 02 00 00 	cmpl   $0x0,0x214(%esp)
4081d6:	00
4081d7:	75 1f                	jne    0x4081f8
4081d9:	50                   	push   %eax
4081da:	68 34 c9 45 00       	push   $0x45c934
4081df:	68 0c c2 45 00       	push   $0x45c20c
4081e4:	8d 4c 24 10          	lea    0x10(%esp),%ecx
4081e8:	68 04 01 00 00       	push   $0x104
4081ed:	51                   	push   %ecx
4081ee:	e8 6c 84 02 00       	call   0x43065f
4081f3:	83 c4 14             	add    $0x14,%esp
4081f6:	eb 13                	jmp    0x40820b
4081f8:	68 04 01 00 00       	push   $0x104
4081fd:	50                   	push   %eax
4081fe:	8d 54 24 0c          	lea    0xc(%esp),%edx
408202:	52                   	push   %edx
408203:	e8 a2 88 02 00       	call   0x430aaa
408208:	83 c4 0c             	add    $0xc,%esp
40820b:	8d 44 24 04          	lea    0x4(%esp),%eax
40820f:	50                   	push   %eax
408210:	e8 7b dc ff ff       	call   0x405e90
408215:	83 c4 04             	add    $0x4,%esp
408218:	6a 00                	push   $0x0
40821a:	8d 4c 24 04          	lea    0x4(%esp),%ecx
40821e:	51                   	push   %ecx
40821f:	6a 00                	push   $0x0
408221:	e8 ea ac ff ff       	call   0x402f10
408226:	0d 06 00 02 00       	or     $0x20006,%eax
40822b:	50                   	push   %eax
40822c:	6a 00                	push   $0x0
40822e:	6a 00                	push   $0x0
408230:	6a 00                	push   $0x0
408232:	8d 54 24 20          	lea    0x20(%esp),%edx
408236:	52                   	push   %edx
408237:	68 02 00 00 80       	push   $0x80000002
40823c:	ff 15 6c 33 47 00    	call   *0x47336c
408242:	85 c0                	test   %eax,%eax
408244:	75 62                	jne    0x4082a8
408246:	8b 94 24 1c 02 00 00 	mov    0x21c(%esp),%edx
40824d:	56                   	push   %esi
40824e:	85 d2                	test   %edx,%edx
408250:	74 33                	je     0x408285
408252:	8b c2                	mov    %edx,%eax
408254:	8d 70 02             	lea    0x2(%eax),%esi
408257:	66 8b 08             	mov    (%eax),%cx
40825a:	83 c0 02             	add    $0x2,%eax
40825d:	66 85 c9             	test   %cx,%cx
408260:	75 f5                	jne    0x408257
408262:	8b 8c 24 1c 02 00 00 	mov    0x21c(%esp),%ecx
408269:	2b c6                	sub    %esi,%eax
40826b:	d1 f8                	sar    $1,%eax
40826d:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
408271:	50                   	push   %eax
408272:	52                   	push   %edx
408273:	8b 54 24 0c          	mov    0xc(%esp),%edx
408277:	6a 01                	push   $0x1
408279:	6a 00                	push   $0x0
40827b:	51                   	push   %ecx
40827c:	52                   	push   %edx
40827d:	ff 15 b8 33 47 00    	call   *0x4733b8
408283:	eb 13                	jmp    0x408298
408285:	8b 84 24 1c 02 00 00 	mov    0x21c(%esp),%eax
40828c:	8b 4c 24 04          	mov    0x4(%esp),%ecx
408290:	50                   	push   %eax
408291:	51                   	push   %ecx
408292:	ff 15 b0 33 47 00    	call   *0x4733b0
408298:	8b 54 24 04          	mov    0x4(%esp),%edx
40829c:	52                   	push   %edx
40829d:	8b f0                	mov    %eax,%esi
40829f:	ff 15 68 33 47 00    	call   *0x473368
4082a5:	8b c6                	mov    %esi,%eax
4082a7:	5e                   	pop    %esi
4082a8:	81 c4 0c 02 00 00    	add    $0x20c,%esp
4082ae:	c3                   	ret
4082af:	cc                   	int3
4082b0:	8b 44 24 04          	mov    0x4(%esp),%eax
4082b4:	81 ec 10 02 00 00    	sub    $0x210,%esp
4082ba:	85 c0                	test   %eax,%eax
4082bc:	75 11                	jne    0x4082cf
4082be:	68 04 01 00 00       	push   $0x104
4082c3:	68 34 c9 45 00       	push   $0x45c934
4082c8:	8d 44 24 10          	lea    0x10(%esp),%eax
4082cc:	50                   	push   %eax
4082cd:	eb 34                	jmp    0x408303
4082cf:	83 bc 24 18 02 00 00 	cmpl   $0x0,0x218(%esp)
4082d6:	00
4082d7:	75 1f                	jne    0x4082f8
4082d9:	50                   	push   %eax
4082da:	68 34 c9 45 00       	push   $0x45c934
4082df:	68 0c c2 45 00       	push   $0x45c20c
4082e4:	8d 4c 24 14          	lea    0x14(%esp),%ecx
4082e8:	68 04 01 00 00       	push   $0x104
4082ed:	51                   	push   %ecx
4082ee:	e8 6c 83 02 00       	call   0x43065f
4082f3:	83 c4 14             	add    $0x14,%esp
4082f6:	eb 13                	jmp    0x40830b
4082f8:	68 04 01 00 00       	push   $0x104
4082fd:	50                   	push   %eax
4082fe:	8d 54 24 10          	lea    0x10(%esp),%edx
408302:	52                   	push   %edx
408303:	e8 a2 87 02 00       	call   0x430aaa
408308:	83 c4 0c             	add    $0xc,%esp
40830b:	8d 44 24 08          	lea    0x8(%esp),%eax
40830f:	50                   	push   %eax
408310:	e8 7b db ff ff       	call   0x405e90
408315:	83 c4 04             	add    $0x4,%esp
408318:	6a 00                	push   $0x0
40831a:	8d 4c 24 04          	lea    0x4(%esp),%ecx
40831e:	51                   	push   %ecx
40831f:	6a 00                	push   $0x0
408321:	e8 ea ab ff ff       	call   0x402f10
408326:	0d 19 00 02 00       	or     $0x20019,%eax
40832b:	50                   	push   %eax
40832c:	6a 00                	push   $0x0
40832e:	6a 00                	push   $0x0
408330:	6a 00                	push   $0x0
408332:	8d 54 24 24          	lea    0x24(%esp),%edx
408336:	52                   	push   %edx
408337:	68 02 00 00 80       	push   $0x80000002
40833c:	ff 15 6c 33 47 00    	call   *0x47336c
408342:	85 c0                	test   %eax,%eax
408344:	75 43                	jne    0x408389
408346:	8b 84 24 24 02 00 00 	mov    0x224(%esp),%eax
40834d:	56                   	push   %esi
40834e:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
408351:	8b 84 24 24 02 00 00 	mov    0x224(%esp),%eax
408358:	8d 54 24 08          	lea    0x8(%esp),%edx
40835c:	52                   	push   %edx
40835d:	8b 54 24 08          	mov    0x8(%esp),%edx
408361:	50                   	push   %eax
408362:	6a 00                	push   $0x0
408364:	89 4c 24 14          	mov    %ecx,0x14(%esp)
408368:	8b 8c 24 2c 02 00 00 	mov    0x22c(%esp),%ecx
40836f:	6a 00                	push   $0x0
408371:	51                   	push   %ecx
408372:	52                   	push   %edx
408373:	ff 15 b4 33 47 00    	call   *0x4733b4
408379:	8b f0                	mov    %eax,%esi
40837b:	8b 44 24 04          	mov    0x4(%esp),%eax
40837f:	50                   	push   %eax
408380:	ff 15 68 33 47 00    	call   *0x473368
408386:	8b c6                	mov    %esi,%eax
408388:	5e                   	pop    %esi
408389:	81 c4 10 02 00 00    	add    $0x210,%esp
40838f:	c3                   	ret
408390:	53                   	push   %ebx
408391:	8b 5c 24 08          	mov    0x8(%esp),%ebx