405f7b:	75 ef                	jne    0x405f6c
405f7d:	05 00 00 00 00       	add    $0x0,%eax
405f82:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405f89:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405f90:	8b 01                	mov    (%ecx),%eax
405f92:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
405f97:	03 d0                	add    %eax,%edx
405f99:	83 f0 ff             	xor    $0xffffffff,%eax
405f9c:	33 c2                	xor    %edx,%eax
405f9e:	83 c1 04             	add    $0x4,%ecx
405fa1:	a9 00 01 01 81       	test   $0x81010100,%eax
405fa6:	74 e8                	je     0x405f90
405fa8:	8b 41 fc             	mov    -0x4(%ecx),%eax
405fab:	84 c0                	test   %al,%al
405fad:	74 32                	je     0x405fe1
405faf:	84 e4                	test   %ah,%ah
405fb1:	74 24                	je     0x405fd7
405fb3:	a9 00 00 ff 00       	test   $0xff0000,%eax
405fb8:	74 13                	je     0x405fcd
405fba:	a9 00 00 00 ff       	test   $0xff000000,%eax
405fbf:	74 02                	je     0x405fc3
405fc1:	eb cd                	jmp    0x405f90
405fc3:	8d 41 ff             	lea    -0x1(%ecx),%eax
405fc6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fca:	2b c1                	sub    %ecx,%eax
405fcc:	c3                   	ret
405fcd:	8d 41 fe             	lea    -0x2(%ecx),%eax
405fd0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fd4:	2b c1                	sub    %ecx,%eax
405fd6:	c3                   	ret
405fd7:	8d 41 fd             	lea    -0x3(%ecx),%eax
405fda:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fde:	2b c1                	sub    %ecx,%eax
405fe0:	c3                   	ret
405fe1:	8d 41 fc             	lea    -0x4(%ecx),%eax
405fe4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405fe8:	2b c1                	sub    %ecx,%eax
405fea:	c3                   	ret
405feb:	8b ff                	mov    %edi,%edi
405fed:	55                   	push   %ebp
405fee:	8b ec                	mov    %esp,%ebp
405ff0:	81 ec 28 03 00 00    	sub    $0x328,%esp
405ff6:	a1 68 b2 42 00       	mov    0x42b268,%eax
405ffb:	33 c5                	xor    %ebp,%eax
405ffd:	89 45 fc             	mov    %eax,-0x4(%ebp)
406000:	f6 05 60 b2 42 00 01 	testb  $0x1,0x42b260
406007:	56                   	push   %esi
406008:	74 08                	je     0x406012
40600a:	6a 0a                	push   $0xa
40600c:	e8 93 69 00 00       	call   0x40c9a4
406011:	59                   	pop    %ecx
406012:	e8 5b 76 00 00       	call   0x40d672
406017:	85 c0                	test   %eax,%eax
406019:	74 08                	je     0x406023
40601b:	6a 16                	push   $0x16
40601d:	e8 5d 76 00 00       	call   0x40d67f
406022:	59                   	pop    %ecx
406023:	f6 05 60 b2 42 00 02 	testb  $0x2,0x42b260
40602a:	0f 84 ca 00 00 00    	je     0x4060fa
406030:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
406036:	89 8d dc fd ff ff    	mov    %ecx,-0x224(%ebp)
40603c:	89 95 d8 fd ff ff    	mov    %edx,-0x228(%ebp)
406042:	89 9d d4 fd ff ff    	mov    %ebx,-0x22c(%ebp)
406048:	89 b5 d0 fd ff ff    	mov    %esi,-0x230(%ebp)
40604e:	89 bd cc fd ff ff    	mov    %edi,-0x234(%ebp)
406054:	66 8c 95 f8 fd ff ff 	data16 mov %ss,-0x208(%ebp)
40605b:	66 8c 8d ec fd ff ff 	data16 mov %cs,-0x214(%ebp)
406062:	66 8c 9d c8 fd ff ff 	data16 mov %ds,-0x238(%ebp)
406069:	66 8c 85 c4 fd ff ff 	data16 mov %es,-0x23c(%ebp)
406070:	66 8c a5 c0 fd ff ff 	data16 mov %fs,-0x240(%ebp)
406077:	66 8c ad bc fd ff ff 	data16 mov %gs,-0x244(%ebp)
40607e:	9c                   	pushf
40607f:	8f 85 f0 fd ff ff    	pop    -0x210(%ebp)
406085:	8b 75 04             	mov    0x4(%ebp),%esi
406088:	8d 45 04             	lea    0x4(%ebp),%eax
40608b:	89 85 f4 fd ff ff    	mov    %eax,-0x20c(%ebp)
406091:	c7 85 30 fd ff ff 01 	movl   $0x10001,-0x2d0(%ebp)
406098:	00 01 00
40609b:	89 b5 e8 fd ff ff    	mov    %esi,-0x218(%ebp)
4060a1:	8b 40 fc             	mov    -0x4(%eax),%eax
4060a4:	6a 50                	push   $0x50
4060a6:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
4060ac:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
4060b2:	6a 00                	push   $0x0
4060b4:	50                   	push   %eax
4060b5:	e8 46 46 00 00       	call   0x40a700
4060ba:	8d 85 d8 fc ff ff    	lea    -0x328(%ebp),%eax
4060c0:	83 c4 0c             	add    $0xc,%esp
4060c3:	89 85 28 fd ff ff    	mov    %eax,-0x2d8(%ebp)
4060c9:	8d 85 30 fd ff ff    	lea    -0x2d0(%ebp),%eax
4060cf:	6a 00                	push   $0x0
4060d1:	c7 85 d8 fc ff ff 15 	movl   $0x40000015,-0x328(%ebp)
4060d8:	00 00 40
4060db:	89 b5 e4 fc ff ff    	mov    %esi,-0x31c(%ebp)
4060e1:	89 85 2c fd ff ff    	mov    %eax,-0x2d4(%ebp)
4060e7:	ff 15 ac a0 41 00    	call   *0x41a0ac
4060ed:	8d 85 28 fd ff ff    	lea    -0x2d8(%ebp),%eax
4060f3:	50                   	push   %eax
4060f4:	ff 15 a8 a0 41 00    	call   *0x41a0a8
4060fa:	6a 03                	push   $0x3
4060fc:	e8 21 68 00 00       	call   0x40c922
406101:	cc                   	int3
406102:	8b ff                	mov    %edi,%edi
406104:	55                   	push   %ebp
406105:	8b ec                	mov    %esp,%ebp
406107:	51                   	push   %ecx
406108:	53                   	push   %ebx
406109:	56                   	push   %esi
40610a:	57                   	push   %edi
40610b:	ff 35 38 12 c7 00    	push   0xc71238
406111:	e8 df 46 00 00       	call   0x40a7f5
406116:	ff 35 34 12 c7 00    	push   0xc71234
40611c:	8b f8                	mov    %eax,%edi
40611e:	89 7d fc             	mov    %edi,-0x4(%ebp)
406121:	e8 cf 46 00 00       	call   0x40a7f5
406126:	8b f0                	mov    %eax,%esi
406128:	59                   	pop    %ecx
406129:	59                   	pop    %ecx
40612a:	3b f7                	cmp    %edi,%esi
40612c:	0f 82 83 00 00 00    	jb     0x4061b5
406132:	8b de                	mov    %esi,%ebx
406134:	2b df                	sub    %edi,%ebx
406136:	8d 43 04             	lea    0x4(%ebx),%eax
406139:	83 f8 04             	cmp    $0x4,%eax
40613c:	72 77                	jb     0x4061b5
40613e:	57                   	push   %edi
40613f:	e8 eb 76 00 00       	call   0x40d82f
406144:	8b f8                	mov    %eax,%edi
406146:	8d 43 04             	lea    0x4(%ebx),%eax
406149:	59                   	pop    %ecx
40614a:	3b f8                	cmp    %eax,%edi
40614c:	73 48                	jae    0x406196
40614e:	b8 00 08 00 00       	mov    $0x800,%eax
406153:	3b f8                	cmp    %eax,%edi
406155:	73 02                	jae    0x406159
406157:	8b c7                	mov    %edi,%eax
406159:	03 c7                	add    %edi,%eax
40615b:	3b c7                	cmp    %edi,%eax
40615d:	72 0f                	jb     0x40616e
40615f:	50                   	push   %eax
406160:	ff 75 fc             	push   -0x4(%ebp)
406163:	e8 89 1a 00 00       	call   0x407bf1
406168:	59                   	pop    %ecx
406169:	59                   	pop    %ecx
40616a:	85 c0                	test   %eax,%eax
40616c:	75 16                	jne    0x406184
40616e:	8d 47 10             	lea    0x10(%edi),%eax
406171:	3b c7                	cmp    %edi,%eax
406173:	72 40                	jb     0x4061b5
406175:	50                   	push   %eax
406176:	ff 75 fc             	push   -0x4(%ebp)
406179:	e8 73 1a 00 00       	call   0x407bf1
40617e:	59                   	pop    %ecx
40617f:	59                   	pop    %ecx
406180:	85 c0                	test   %eax,%eax
406182:	74 31                	je     0x4061b5
406184:	c1 fb 02             	sar    $0x2,%ebx
406187:	50                   	push   %eax
406188:	8d 34 98             	lea    (%eax,%ebx,4),%esi
40618b:	e8 ea 45 00 00       	call   0x40a77a
406190:	59                   	pop    %ecx
406191:	a3 38 12 c7 00       	mov    %eax,0xc71238
406196:	ff 75 08             	push   0x8(%ebp)
406199:	e8 dc 45 00 00       	call   0x40a77a
40619e:	89 06                	mov    %eax,(%esi)
4061a0:	83 c6 04             	add    $0x4,%esi
4061a3:	56                   	push   %esi
4061a4:	e8 d1 45 00 00       	call   0x40a77a
4061a9:	59                   	pop    %ecx
4061aa:	a3 34 12 c7 00       	mov    %eax,0xc71234
4061af:	8b 45 08             	mov    0x8(%ebp),%eax
4061b2:	59                   	pop    %ecx
4061b3:	eb 02                	jmp    0x4061b7
4061b5:	33 c0                	xor    %eax,%eax
4061b7:	5f                   	pop    %edi
4061b8:	5e                   	pop    %esi
4061b9:	5b                   	pop    %ebx
4061ba:	c9                   	leave
4061bb:	c3                   	ret
4061bc:	8b ff                	mov    %edi,%edi
4061be:	56                   	push   %esi
4061bf:	6a 04                	push   $0x4
4061c1:	6a 20                	push   $0x20
4061c3:	e8 dd 19 00 00       	call   0x407ba5
4061c8:	8b f0                	mov    %eax,%esi
4061ca:	56                   	push   %esi
4061cb:	e8 aa 45 00 00       	call   0x40a77a
4061d0:	83 c4 0c             	add    $0xc,%esp
4061d3:	a3 38 12 c7 00       	mov    %eax,0xc71238
4061d8:	a3 34 12 c7 00       	mov    %eax,0xc71234
4061dd:	85 f6                	test   %esi,%esi
4061df:	75 05                	jne    0x4061e6
4061e1:	6a 18                	push   $0x18
4061e3:	58                   	pop    %eax
4061e4:	5e                   	pop    %esi
4061e5:	c3                   	ret
4061e6:	83 26 00             	andl   $0x0,(%esi)
4061e9:	33 c0                	xor    %eax,%eax
4061eb:	5e                   	pop    %esi
4061ec:	c3                   	ret
4061ed:	6a 0c                	push   $0xc
4061ef:	68 98 95 42 00       	push   $0x429598
4061f4:	e8 e3 41 00 00       	call   0x40a3dc
4061f9:	e8 0a 65 00 00       	call   0x40c708
4061fe:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406202:	ff 75 08             	push   0x8(%ebp)
406205:	e8 f8 fe ff ff       	call   0x406102
40620a:	59                   	pop    %ecx
40620b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40620e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406215:	e8 09 00 00 00       	call   0x406223
40621a:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40621d:	e8 ff 41 00 00       	call   0x40a421
406222:	c3                   	ret
406223:	e8 e9 64 00 00       	call   0x40c711
406228:	c3                   	ret
406229:	8b ff                	mov    %edi,%edi
40622b:	55                   	push   %ebp
40622c:	8b ec                	mov    %esp,%ebp
40622e:	ff 75 08             	push   0x8(%ebp)
406231:	e8 b7 ff ff ff       	call   0x4061ed
406236:	f7 d8                	neg    %eax
406238:	1b c0                	sbb    %eax,%eax
40623a:	f7 d8                	neg    %eax
40623c:	59                   	pop    %ecx
40623d:	48                   	dec    %eax
40623e:	5d                   	pop    %ebp
40623f:	c3                   	ret
406240:	8b ff                	mov    %edi,%edi
406242:	55                   	push   %ebp
406243:	8b ec                	mov    %esp,%ebp
406245:	51                   	push   %ecx
406246:	53                   	push   %ebx
406247:	8b 45 0c             	mov    0xc(%ebp),%eax
40624a:	83 c0 0c             	add    $0xc,%eax
40624d:	89 45 fc             	mov    %eax,-0x4(%ebp)
406250:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
406257:	8b 03                	mov    (%ebx),%eax
406259:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40625f:	8b 45 08             	mov    0x8(%ebp),%eax
406262:	8b 5d 0c             	mov    0xc(%ebp),%ebx
406265:	8b 6d fc             	mov    -0x4(%ebp),%ebp
406268:	8b 63 fc             	mov    -0x4(%ebx),%esp
40626b:	ff e0                	jmp    *%eax
40626d:	5b                   	pop    %ebx
40626e:	c9                   	leave
40626f:	c2 08 00             	ret    $0x8
406272:	58                   	pop    %eax
406273:	59                   	pop    %ecx
406274:	87 04 24             	xchg   %eax,(%esp)
406277:	ff e0                	jmp    *%eax
406279:	8b ff                	mov    %edi,%edi
40627b:	55                   	push   %ebp
40627c:	8b ec                	mov    %esp,%ebp
40627e:	51                   	push   %ecx
40627f:	51                   	push   %ecx
406280:	53                   	push   %ebx
406281:	56                   	push   %esi
406282:	57                   	push   %edi
406283:	64 8b 35 00 00 00 00 	mov    %fs:0x0,%esi
40628a:	89 75 fc             	mov    %esi,-0x4(%ebp)
40628d:	c7 45 f8 a4 62 40 00 	movl   $0x4062a4,-0x8(%ebp)
406294:	6a 00                	push   $0x0
406296:	ff 75 0c             	push   0xc(%ebp)
406299:	ff 75 f8             	push   -0x8(%ebp)
40629c:	ff 75 08             	push   0x8(%ebp)
40629f:	e8 ea 33 01 00       	call   0x41968e
4062a4:	8b 45 0c             	mov    0xc(%ebp),%eax
4062a7:	8b 40 04             	mov    0x4(%eax),%eax
4062aa:	83 e0 fd             	and    $0xfffffffd,%eax
4062ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4062b0:	89 41 04             	mov    %eax,0x4(%ecx)
4062b3:	64 8b 3d 00 00 00 00 	mov    %fs:0x0,%edi
4062ba:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4062bd:	89 3b                	mov    %edi,(%ebx)
4062bf:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4062c6:	5f                   	pop    %edi
4062c7:	5e                   	pop    %esi
4062c8:	5b                   	pop    %ebx
4062c9:	c9                   	leave
4062ca:	c2 08 00             	ret    $0x8
4062cd:	55                   	push   %ebp
4062ce:	8b ec                	mov    %esp,%ebp
4062d0:	83 ec 08             	sub    $0x8,%esp
4062d3:	53                   	push   %ebx
4062d4:	56                   	push   %esi
4062d5:	57                   	push   %edi
4062d6:	fc                   	cld
4062d7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4062da:	33 c0                	xor    %eax,%eax
4062dc:	50                   	push   %eax
4062dd:	50                   	push   %eax
4062de:	50                   	push   %eax
4062df:	ff 75 fc             	push   -0x4(%ebp)
4062e2:	ff 75 14             	push   0x14(%ebp)
4062e5:	ff 75 10             	push   0x10(%ebp)
4062e8:	ff 75 0c             	push   0xc(%ebp)
4062eb:	ff 75 08             	push   0x8(%ebp)
4062ee:	e8 b2 81 00 00       	call   0x40e4a5
4062f3:	83 c4 20             	add    $0x20,%esp
4062f6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4062f9:	5f                   	pop    %edi
4062fa:	5e                   	pop    %esi
4062fb:	5b                   	pop    %ebx
4062fc:	8b 45 f8             	mov    -0x8(%ebp),%eax
4062ff:	8b e5                	mov    %ebp,%esp
406301:	5d                   	pop    %ebp
406302:	c3                   	ret
406303:	8b ff                	mov    %edi,%edi
406305:	55                   	push   %ebp
406306:	8b ec                	mov    %esp,%ebp
406308:	56                   	push   %esi
406309:	fc                   	cld
40630a:	8b 75 0c             	mov    0xc(%ebp),%esi
40630d:	8b 4e 08             	mov    0x8(%esi),%ecx
406310:	33 ce                	xor    %esi,%ecx
406312:	e8 0f 03 00 00       	call   0x406626
406317:	6a 00                	push   $0x0
406319:	56                   	push   %esi
40631a:	ff 76 14             	push   0x14(%esi)
40631d:	ff 76 0c             	push   0xc(%esi)
406320:	6a 00                	push   $0x0
406322:	ff 75 10             	push   0x10(%ebp)
406325:	ff 76 10             	push   0x10(%esi)
406328:	ff 75 08             	push   0x8(%ebp)
40632b:	e8 75 81 00 00       	call   0x40e4a5
406330:	83 c4 20             	add    $0x20,%esp
406333:	5e                   	pop    %esi
406334:	5d                   	pop    %ebp
406335:	c3                   	ret
406336:	8b ff                	mov    %edi,%edi
406338:	55                   	push   %ebp
406339:	8b ec                	mov    %esp,%ebp
40633b:	83 ec 38             	sub    $0x38,%esp
40633e:	53                   	push   %ebx
40633f:	81 7d 08 23 01 00 00 	cmpl   $0x123,0x8(%ebp)
406346:	75 12                	jne    0x40635a
406348:	b8 e1 63 40 00       	mov    $0x4063e1,%eax
40634d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
406350:	89 01                	mov    %eax,(%ecx)
406352:	33 c0                	xor    %eax,%eax
406354:	40                   	inc    %eax
406355:	e9 b0 00 00 00       	jmp    0x40640a
40635a:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
40635e:	c7 45 dc 0d 64 40 00 	movl   $0x40640d,-0x24(%ebp)
406365:	a1 68 b2 42 00       	mov    0x42b268,%eax
40636a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40636d:	33 c1                	xor    %ecx,%eax
40636f:	89 45 e0             	mov    %eax,-0x20(%ebp)
406372:	8b 45 18             	mov    0x18(%ebp),%eax