407ff1:	50                   	push   %eax
407ff2:	56                   	push   %esi
407ff3:	e8 a8 ca ff ff       	call   0x404aa0
407ff8:	33 c0                	xor    %eax,%eax
407ffa:	89 44 24 10          	mov    %eax,0x10(%esp)
407ffe:	33 c0                	xor    %eax,%eax
408000:	89 44 24 14          	mov    %eax,0x14(%esp)
408004:	8d 44 24 10          	lea    0x10(%esp),%eax
408008:	50                   	push   %eax
408009:	8b 43 1c             	mov    0x1c(%ebx),%eax
40800c:	50                   	push   %eax
40800d:	e8 be c9 ff ff       	call   0x4049d0
408012:	8b 44 24 14          	mov    0x14(%esp),%eax
408016:	f7 d8                	neg    %eax
408018:	50                   	push   %eax
408019:	8b 44 24 14          	mov    0x14(%esp),%eax
40801d:	f7 d8                	neg    %eax
40801f:	50                   	push   %eax
408020:	8d 44 24 28          	lea    0x28(%esp),%eax
408024:	50                   	push   %eax
408025:	e8 be ca ff ff       	call   0x404ae8
40802a:	8d 54 24 20          	lea    0x20(%esp),%edx
40802e:	8b c7                	mov    %edi,%eax
408030:	e8 67 fd ff ff       	call   0x407d9c
408035:	0f bf 83 36 01 00 00 	movswl 0x136(%ebx),%eax
40803c:	50                   	push   %eax
40803d:	0f bf 83 34 01 00 00 	movswl 0x134(%ebx),%eax
408044:	50                   	push   %eax
408045:	57                   	push   %edi
408046:	e8 f5 c8 ff ff       	call   0x404940
40804b:	6a eb                	push   $0xffffffeb
40804d:	56                   	push   %esi
40804e:	e8 59 cf ff ff       	call   0x404fac
408053:	89 44 24 18          	mov    %eax,0x18(%esp)
408057:	6a 01                	push   $0x1
408059:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
40805f:	50                   	push   %eax
408060:	57                   	push   %edi
408061:	57                   	push   %edi
408062:	e8 49 c8 ff ff       	call   0x4048b0
408067:	83 f8 02             	cmp    $0x2,%eax
40806a:	0f 8c 73 01 00 00    	jl     0x4081e3
408070:	8b 44 24 18          	mov    0x18(%esp),%eax
408074:	89 44 24 1c          	mov    %eax,0x1c(%esp)
408078:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
40807d:	0f 84 4a 01 00 00    	je     0x4081cd
408083:	8b 44 24 1c          	mov    0x1c(%esp),%eax
408087:	8a 40 35             	mov    0x35(%eax),%al
40808a:	22 05 98 82 40 00    	and    0x408298,%al
408090:	8a 15 9c 82 40 00    	mov    0x40829c,%dl
408096:	3a d0                	cmp    %al,%dl
408098:	0f 84 2f 01 00 00    	je     0x4081cd
40809e:	55                   	push   %ebp
40809f:	e8 ac c8 ff ff       	call   0x404950
4080a4:	89 44 24 04          	mov    %eax,0x4(%esp)
4080a8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4080ac:	80 88 2b 01 00 00 20 	orb    $0x20,0x12b(%eax)
4080b3:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4080b7:	e8 20 3b 00 00       	call   0x40bbdc
4080bc:	66 03 83 34 01 00 00 	add    0x134(%ebx),%ax
4080c3:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
4080c8:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4080cc:	e8 3b 3b 00 00       	call   0x40bc0c
4080d1:	66 03 83 36 01 00 00 	add    0x136(%ebx),%ax
4080d8:	66 89 44 24 0e       	mov    %ax,0xe(%esp)
4080dd:	6a 00                	push   $0x0
4080df:	0f bf 44 24 12       	movswl 0x12(%esp),%eax
4080e4:	f7 d8                	neg    %eax
4080e6:	50                   	push   %eax
4080e7:	0f bf 44 24 14       	movswl 0x14(%esp),%eax
4080ec:	f7 d8                	neg    %eax
4080ee:	50                   	push   %eax
4080ef:	55                   	push   %ebp
4080f0:	e8 b3 c8 ff ff       	call   0x4049a8
4080f5:	6a 02                	push   $0x2
4080f7:	55                   	push   %ebp
4080f8:	68 17 03 00 00       	push   $0x317
4080fd:	56                   	push   %esi
4080fe:	e8 f9 ce ff ff       	call   0x404ffc
408103:	33 c0                	xor    %eax,%eax
408105:	89 44 24 10          	mov    %eax,0x10(%esp)
408109:	33 c0                	xor    %eax,%eax
40810b:	89 44 24 14          	mov    %eax,0x14(%esp)
40810f:	8d 44 24 10          	lea    0x10(%esp),%eax
408113:	50                   	push   %eax
408114:	8b 44 24 20          	mov    0x20(%esp),%eax
408118:	8b 40 1c             	mov    0x1c(%eax),%eax
40811b:	50                   	push   %eax
40811c:	e8 af c8 ff ff       	call   0x4049d0
408121:	8d 44 24 20          	lea    0x20(%esp),%eax
408125:	50                   	push   %eax
408126:	8b 44 24 20          	mov    0x20(%esp),%eax
40812a:	8b 40 1c             	mov    0x1c(%eax),%eax
40812d:	50                   	push   %eax
40812e:	e8 6d c9 ff ff       	call   0x404aa0
408133:	66 8b 44 24 0c       	mov    0xc(%esp),%ax
408138:	66 03 44 24 10       	add    0x10(%esp),%ax
40813d:	66 2b 44 24 20       	sub    0x20(%esp),%ax
408142:	8b 54 24 1c          	mov    0x1c(%esp),%edx
408146:	66 89 82 34 01 00 00 	mov    %ax,0x134(%edx)
40814d:	66 8b 44 24 0e       	mov    0xe(%esp),%ax
408152:	66 03 44 24 14       	add    0x14(%esp),%ax
408157:	66 2b 44 24 24       	sub    0x24(%esp),%ax
40815c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
408160:	66 89 82 36 01 00 00 	mov    %ax,0x136(%edx)
408167:	6a 00                	push   $0x0
408169:	8b 44 24 20          	mov    0x20(%esp),%eax
40816d:	0f bf 80 36 01 00 00 	movswl 0x136(%eax),%eax
408174:	f7 d8                	neg    %eax
408176:	50                   	push   %eax
408177:	8b 44 24 24          	mov    0x24(%esp),%eax
40817b:	0f bf 80 34 01 00 00 	movswl 0x134(%eax),%eax
408182:	f7 d8                	neg    %eax
408184:	50                   	push   %eax
408185:	55                   	push   %ebp
408186:	e8 1d c8 ff ff       	call   0x4049a8
40818b:	8d 44 24 20          	lea    0x20(%esp),%eax
40818f:	50                   	push   %eax
408190:	56                   	push   %esi
408191:	e8 a2 c8 ff ff       	call   0x404a38
408196:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40819a:	50                   	push   %eax
40819b:	8b 44 24 2c          	mov    0x2c(%esp),%eax
40819f:	50                   	push   %eax
4081a0:	6a 00                	push   $0x0
4081a2:	6a 00                	push   $0x0
4081a4:	55                   	push   %ebp
4081a5:	e8 86 c7 ff ff       	call   0x404930
4081aa:	6a 00                	push   $0x0
4081ac:	55                   	push   %ebp
4081ad:	6a 0f                	push   $0xf
4081af:	56                   	push   %esi
4081b0:	e8 47 ce ff ff       	call   0x404ffc
4081b5:	8b 44 24 1c          	mov    0x1c(%esp),%eax
4081b9:	80 a0 2b 01 00 00 df 	andb   $0xdf,0x12b(%eax)
4081c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4081c4:	50                   	push   %eax
4081c5:	55                   	push   %ebp
4081c6:	e8 7d c7 ff ff       	call   0x404948
4081cb:	eb 16                	jmp    0x4081e3
4081cd:	6a 04                	push   $0x4
4081cf:	57                   	push   %edi
4081d0:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
4081d6:	50                   	push   %eax
4081d7:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
4081dd:	50                   	push   %eax
4081de:	e8 cd c6 ff ff       	call   0x4048b0
4081e3:	57                   	push   %edi
4081e4:	e8 17 c7 ff ff       	call   0x404900
4081e9:	6a 03                	push   $0x3
4081eb:	56                   	push   %esi
4081ec:	e8 9f c8 ff ff       	call   0x404a90
4081f1:	8b f0                	mov    %eax,%esi
4081f3:	85 f6                	test   %esi,%esi
4081f5:	0f 85 cb fd ff ff    	jne    0x407fc6
4081fb:	33 c0                	xor    %eax,%eax
4081fd:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408203:	80 a3 2b 01 00 00 ef 	andb   $0xef,0x12b(%ebx)
40820a:	f6 83 2b 01 00 00 20 	testb  $0x20,0x12b(%ebx)
408211:	75 77                	jne    0x40828a
408213:	6a 12                	push   $0x12
408215:	6a 00                	push   $0x0
408217:	8b 43 1c             	mov    0x1c(%ebx),%eax
40821a:	50                   	push   %eax
40821b:	e8 30 c8 ff ff       	call   0x404a50
408220:	8b f0                	mov    %eax,%esi
408222:	6a 01                	push   $0x1
408224:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
40822a:	50                   	push   %eax
40822b:	56                   	push   %esi
40822c:	e8 df c6 ff ff       	call   0x404910
408231:	68 20 00 cc 00       	push   $0xcc0020
408236:	6a 00                	push   $0x0
408238:	6a 00                	push   $0x0
40823a:	55                   	push   %ebp
40823b:	8b 44 24 4c          	mov    0x4c(%esp),%eax
40823f:	50                   	push   %eax
408240:	8b 44 24 4c          	mov    0x4c(%esp),%eax
408244:	50                   	push   %eax
408245:	6a 00                	push   $0x0
408247:	6a 00                	push   $0x0
408249:	56                   	push   %esi
40824a:	e8 59 c6 ff ff       	call   0x4048a8
40824f:	56                   	push   %esi
408250:	8b 43 1c             	mov    0x1c(%ebx),%eax
408253:	50                   	push   %eax
408254:	e8 9f c8 ff ff       	call   0x404af8
408259:	8b 44 24 08          	mov    0x8(%esp),%eax
40825d:	50                   	push   %eax
40825e:	55                   	push   %ebp
40825f:	e8 f4 c6 ff ff       	call   0x404958
408264:	50                   	push   %eax
408265:	e8 96 c6 ff ff       	call   0x404900
40826a:	8b 83 ce 00 00 00    	mov    0xce(%ebx),%eax
408270:	50                   	push   %eax
408271:	e8 8a c6 ff ff       	call   0x404900
408276:	55                   	push   %ebp
408277:	e8 7c c6 ff ff       	call   0x4048f8
40827c:	8d 44 24 40          	lea    0x40(%esp),%eax
408280:	50                   	push   %eax
408281:	8b 43 1c             	mov    0x1c(%ebx),%eax
408284:	50                   	push   %eax
408285:	e8 86 c7 ff ff       	call   0x404a10
40828a:	8a 04 24             	mov    (%esp),%al
40828d:	81 c4 80 00 00 00    	add    $0x80,%esp
408293:	5d                   	pop    %ebp
408294:	5f                   	pop    %edi
408295:	5e                   	pop    %esi
408296:	5b                   	pop    %ebx
408297:	c3                   	ret
408298:	03 00                	add    (%eax),%eax
40829a:	00 00                	add    %al,(%eax)
40829c:	00 00                	add    %al,(%eax)
40829e:	00 00                	add    %al,(%eax)
4082a0:	53                   	push   %ebx
4082a1:	56                   	push   %esi
4082a2:	57                   	push   %edi
4082a3:	55                   	push   %ebp
4082a4:	83 c4 b4             	add    $0xffffffb4,%esp
4082a7:	89 0c 24             	mov    %ecx,(%esp)
4082aa:	8b fa                	mov    %edx,%edi
4082ac:	8b f0                	mov    %eax,%esi
4082ae:	8b de                	mov    %esi,%ebx
4082b0:	8b 47 04             	mov    0x4(%edi),%eax
4082b3:	83 e8 0f             	sub    $0xf,%eax
4082b6:	0f 85 f0 00 00 00    	jne    0x4083ac
4082bc:	8b 43 50             	mov    0x50(%ebx),%eax
4082bf:	66 83 b8 b2 00 00 00 	cmpw   $0x0,0xb2(%eax)
4082c6:	00
4082c7:	0f 84 df 00 00 00    	je     0x4083ac
4082cd:	6a 00                	push   $0x0
4082cf:	6a 00                	push   $0x0
4082d1:	6a 00                	push   $0x0
4082d3:	6a 00                	push   $0x0
4082d5:	e8 0e c6 ff ff       	call   0x4048e8
4082da:	8b e8                	mov    %eax,%ebp
4082dc:	89 ab 94 00 00 00    	mov    %ebp,0x94(%ebx)
4082e2:	f6 43 38 40          	testb  $0x40,0x38(%ebx)
4082e6:	0f 95 c0             	setne  %al
4082e9:	f6 d8                	neg    %al
4082eb:	1b c0                	sbb    %eax,%eax
4082ed:	50                   	push   %eax
4082ee:	55                   	push   %ebp
4082ef:	8b 43 1c             	mov    0x1c(%ebx),%eax
4082f2:	50                   	push   %eax
4082f3:	e8 90 c7 ff ff       	call   0x404a88
4082f8:	83 f8 01             	cmp    $0x1,%eax
4082fb:	74 04                	je     0x408301
4082fd:	85 c0                	test   %eax,%eax
4082ff:	75 14                	jne    0x408315
408301:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
408307:	50                   	push   %eax
408308:	e8 f3 c5 ff ff       	call   0x404900
40830d:	33 c0                	xor    %eax,%eax
40830f:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
408315:	8b 83 98 00 00 00    	mov    0x98(%ebx),%eax
40831b:	89 44 24 08          	mov    %eax,0x8(%esp)
40831f:	8b 47 08             	mov    0x8(%edi),%eax
408322:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408328:	85 c0                	test   %eax,%eax
40832a:	75 14                	jne    0x408340
40832c:	8d 44 24 0c          	lea    0xc(%esp),%eax
408330:	50                   	push   %eax
408331:	8b 43 1c             	mov    0x1c(%ebx),%eax
408334:	50                   	push   %eax
408335:	e8 86 c6 ff ff       	call   0x4049c0
40833a:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408340:	8b 6b 50             	mov    0x50(%ebx),%ebp
408343:	8b 8b 98 00 00 00    	mov    0x98(%ebx),%ecx
408349:	8b d6                	mov    %esi,%edx
40834b:	8b 85 b4 00 00 00    	mov    0xb4(%ebp),%eax
408351:	ff 95 b0 00 00 00    	call   *0xb0(%ebp)
408357:	8b 86 ca 00 00 00    	mov    0xca(%esi),%eax
40835d:	85 c0                	test   %eax,%eax
40835f:	74 07                	je     0x408368
408361:	33 d2                	xor    %edx,%edx
408363:	e8 c0 24 00 00       	call   0x40a828
408368:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40836c:	75 0e                	jne    0x40837c
40836e:	8d 44 24 0c          	lea    0xc(%esp),%eax
408372:	50                   	push   %eax
408373:	8b 43 1c             	mov    0x1c(%ebx),%eax
408376:	50                   	push   %eax
408377:	e8 94 c6 ff ff       	call   0x404a10
40837c:	8b 44 24 08          	mov    0x8(%esp),%eax
408380:	89 83 98 00 00 00    	mov    %eax,0x98(%ebx)
408386:	8b 04 24             	mov    (%esp),%eax
408389:	33 d2                	xor    %edx,%edx
40838b:	89 10                	mov    %edx,(%eax)
40838d:	c6 44 24 04 01       	movb   $0x1,0x4(%esp)
408392:	8b 83 94 00 00 00    	mov    0x94(%ebx),%eax
408398:	85 c0                	test   %eax,%eax
40839a:	74 06                	je     0x4083a2
40839c:	50                   	push   %eax
40839d:	e8 5e c5 ff ff       	call   0x404900
4083a2:	33 c0                	xor    %eax,%eax
4083a4:	89 83 94 00 00 00    	mov    %eax,0x94(%ebx)
4083aa:	eb 05                	jmp    0x4083b1
4083ac:	c6 44 24 04 00       	movb   $0x0,0x4(%esp)
4083b1:	8a 44 24 04          	mov    0x4(%esp),%al
4083b5:	83 c4 4c             	add    $0x4c,%esp
4083b8:	5d                   	pop    %ebp
4083b9:	5f                   	pop    %edi
4083ba:	5e                   	pop    %esi
4083bb:	5b                   	pop    %ebx
4083bc:	c3                   	ret
4083bd:	8d 40 00             	lea    0x0(%eax),%eax
4083c0:	55                   	push   %ebp
4083c1:	8b ec                	mov    %esp,%ebp
4083c3:	53                   	push   %ebx
4083c4:	8b d8                	mov    %eax,%ebx
4083c6:	8b c3                	mov    %ebx,%eax
4083c8:	e8 0f 5c 00 00       	call   0x40dfdc
4083cd:	8b 55 08             	mov    0x8(%ebp),%edx
4083d0:	89 90 b0 00 00 00    	mov    %edx,0xb0(%eax)
4083d6:	8b 55 0c             	mov    0xc(%ebp),%edx
4083d9:	89 90 b4 00 00 00    	mov    %edx,0xb4(%eax)
4083df:	ba a0 82 40 00       	mov    $0x4082a0,%edx
4083e4:	8b c3                	mov    %ebx,%eax
4083e6:	e8 4d 16 00 00       	call   0x409a38
4083eb:	5b                   	pop    %ebx
4083ec:	5d                   	pop    %ebp
4083ed:	c2 08 00             	ret    $0x8
4083f0:	53                   	push   %ebx
4083f1:	56                   	push   %esi
4083f2:	8b da                	mov    %edx,%ebx
4083f4:	8b f0                	mov    %eax,%esi
4083f6:	8b c6                	mov    %esi,%eax
4083f8:	e8 07 3d 00 00       	call   0x40c104
4083fd:	3a d8                	cmp    %al,%bl
4083ff:	0f 84 98 00 00 00    	je     0x40849d
408405:	84 db                	test   %bl,%bl
408407:	74 69                	je     0x408472
408409:	f6 46 36 08          	testb  $0x8,0x36(%esi)
40840d:	75 36                	jne    0x408445
40840f:	8b 56 24             	mov    0x24(%esi),%edx
408412:	81 ca 00 00 04 00    	or     $0x40000,%edx
408418:	81 ca 00 00 80 00    	or     $0x800000,%edx
40841e:	81 ca 00 00 40 00    	or     $0x400000,%edx
408424:	81 ca 00 00 c0 00    	or     $0xc00000,%edx
40842a:	81 ca 00 00 02 00    	or     $0x20000,%edx
408430:	81 ca 00 00 01 00    	or     $0x10000,%edx
408436:	81 ca 00 00 08 00    	or     $0x80000,%edx
40843c:	8b c6                	mov    %esi,%eax
40843e:	e8 2d 33 00 00       	call   0x40b770
408443:	eb 58                	jmp    0x40849d
408445:	f6 86 b5 00 00 00 01 	testb  $0x1,0xb5(%esi)
40844c:	74 12                	je     0x408460
40844e:	8b 56 28             	mov    0x28(%esi),%edx
408451:	81 ca 00 02 00 00    	or     $0x200,%edx