00401000 <.text>:
401000:	55                   	push   %ebp
401001:	8b ec                	mov    %esp,%ebp
401003:	8b 45 08             	mov    0x8(%ebp),%eax
401006:	80 38 00             	cmpb   $0x0,(%eax)
401009:	75 04                	jne    0x40100f
40100b:	33 c0                	xor    %eax,%eax
40100d:	5d                   	pop    %ebp
40100e:	c3                   	ret
40100f:	8d 50 01             	lea    0x1(%eax),%edx
401012:	8a 08                	mov    (%eax),%cl
401014:	40                   	inc    %eax
401015:	84 c9                	test   %cl,%cl
401017:	75 f9                	jne    0x401012
401019:	2b c2                	sub    %edx,%eax
40101b:	5d                   	pop    %ebp
40101c:	c3                   	ret
40101d:	55                   	push   %ebp
40101e:	8b ec                	mov    %esp,%ebp
401020:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
401024:	56                   	push   %esi
401025:	8b f1                	mov    %ecx,%esi
401027:	c7 06 54 9f 41 00    	movl   $0x419f54,(%esi)
40102d:	74 07                	je     0x401036
40102f:	56                   	push   %esi
401030:	e8 c3 3e 00 00       	call   0x404ef8
401035:	59                   	pop    %ecx
401036:	8b c6                	mov    %esi,%eax
401038:	5e                   	pop    %esi
401039:	5d                   	pop    %ebp
40103a:	c2 04 00             	ret    $0x4
40103d:	55                   	push   %ebp
40103e:	8b ec                	mov    %esp,%ebp
401040:	8b 55 08             	mov    0x8(%ebp),%edx
401043:	8b 41 04             	mov    0x4(%ecx),%eax
401046:	3b 42 04             	cmp    0x4(%edx),%eax
401049:	75 0b                	jne    0x401056
40104b:	8b 01                	mov    (%ecx),%eax
40104d:	3b 02                	cmp    (%edx),%eax
40104f:	75 05                	jne    0x401056
401051:	33 c0                	xor    %eax,%eax
401053:	40                   	inc    %eax
401054:	eb 02                	jmp    0x401058
401056:	33 c0                	xor    %eax,%eax
401058:	5d                   	pop    %ebp
401059:	c2 04 00             	ret    $0x4
40105c:	55                   	push   %ebp
40105d:	8b ec                	mov    %esp,%ebp
40105f:	8b 45 08             	mov    0x8(%ebp),%eax
401062:	8b 55 0c             	mov    0xc(%ebp),%edx
401065:	89 10                	mov    %edx,(%eax)
401067:	89 48 04             	mov    %ecx,0x4(%eax)
40106a:	5d                   	pop    %ebp
40106b:	c2 08 00             	ret    $0x8
40106e:	55                   	push   %ebp
40106f:	8b ec                	mov    %esp,%ebp
401071:	51                   	push   %ecx
401072:	51                   	push   %ecx
401073:	ff 75 0c             	push   0xc(%ebp)
401076:	8b 01                	mov    (%ecx),%eax
401078:	ff 75 08             	push   0x8(%ebp)
40107b:	8d 55 f8             	lea    -0x8(%ebp),%edx
40107e:	52                   	push   %edx
40107f:	ff 50 0c             	call   *0xc(%eax)
401082:	8b c8                	mov    %eax,%ecx
401084:	e8 b4 ff ff ff       	call   0x40103d
401089:	c9                   	leave
40108a:	c2 08 00             	ret    $0x8
40108d:	55                   	push   %ebp
40108e:	8b ec                	mov    %esp,%ebp
401090:	8b 45 08             	mov    0x8(%ebp),%eax
401093:	3b 48 04             	cmp    0x4(%eax),%ecx
401096:	75 0c                	jne    0x4010a4
401098:	8b 00                	mov    (%eax),%eax
40109a:	3b 45 0c             	cmp    0xc(%ebp),%eax
40109d:	75 05                	jne    0x4010a4
40109f:	33 c0                	xor    %eax,%eax
4010a1:	40                   	inc    %eax
4010a2:	eb 02                	jmp    0x4010a6
4010a4:	33 c0                	xor    %eax,%eax
4010a6:	5d                   	pop    %ebp
4010a7:	c2 08 00             	ret    $0x8
4010aa:	b8 9c d3 41 00       	mov    $0x41d39c,%eax
4010af:	c3                   	ret
4010b0:	55                   	push   %ebp
4010b1:	8b ec                	mov    %esp,%ebp
4010b3:	51                   	push   %ecx
4010b4:	ff 75 0c             	push   0xc(%ebp)
4010b7:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4010bb:	e8 79 22 00 00       	call   0x403339
4010c0:	59                   	pop    %ecx
4010c1:	85 c0                	test   %eax,%eax
4010c3:	b9 a4 d3 41 00       	mov    $0x41d3a4,%ecx
4010c8:	0f 45 c8             	cmovne %eax,%ecx
4010cb:	51                   	push   %ecx
4010cc:	8b 4d 08             	mov    0x8(%ebp),%ecx
4010cf:	e8 99 00 00 00       	call   0x40116d
4010d4:	8b 45 08             	mov    0x8(%ebp),%eax
4010d7:	c9                   	leave
4010d8:	c2 08 00             	ret    $0x8
4010db:	b8 b4 d3 41 00       	mov    $0x41d3b4,%eax
4010e0:	c3                   	ret
4010e1:	55                   	push   %ebp
4010e2:	8b ec                	mov    %esp,%ebp
4010e4:	51                   	push   %ecx
4010e5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4010e9:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4010ed:	75 0f                	jne    0x4010fe
4010ef:	8b 4d 08             	mov    0x8(%ebp),%ecx
4010f2:	68 c0 d3 41 00       	push   $0x41d3c0
4010f7:	e8 71 00 00 00       	call   0x40116d
4010fc:	eb 0b                	jmp    0x401109
4010fe:	ff 75 0c             	push   0xc(%ebp)
401101:	ff 75 08             	push   0x8(%ebp)
401104:	e8 a7 ff ff ff       	call   0x4010b0
401109:	8b 45 08             	mov    0x8(%ebp),%eax
40110c:	c9                   	leave
40110d:	c2 08 00             	ret    $0x8
401110:	b8 d8 d3 41 00       	mov    $0x41d3d8,%eax
401115:	c3                   	ret
401116:	55                   	push   %ebp
401117:	8b ec                	mov    %esp,%ebp
401119:	51                   	push   %ecx
40111a:	ff 75 0c             	push   0xc(%ebp)
40111d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
401121:	e8 3d 22 00 00       	call   0x403363
401126:	59                   	pop    %ecx
401127:	85 c0                	test   %eax,%eax
401129:	b9 a4 d3 41 00       	mov    $0x41d3a4,%ecx
40112e:	0f 45 c8             	cmovne %eax,%ecx
401131:	51                   	push   %ecx
401132:	8b 4d 08             	mov    0x8(%ebp),%ecx
401135:	e8 33 00 00 00       	call   0x40116d
40113a:	8b 45 08             	mov    0x8(%ebp),%eax
40113d:	c9                   	leave
40113e:	c2 08 00             	ret    $0x8
401141:	55                   	push   %ebp
401142:	8b ec                	mov    %esp,%ebp
401144:	56                   	push   %esi
401145:	8b 75 0c             	mov    0xc(%ebp),%esi
401148:	56                   	push   %esi
401149:	e8 eb 21 00 00       	call   0x403339
40114e:	85 c0                	test   %eax,%eax
401150:	8b 45 08             	mov    0x8(%ebp),%eax
401153:	59                   	pop    %ecx
401154:	89 30                	mov    %esi,(%eax)
401156:	74 09                	je     0x401161
401158:	c7 40 04 b4 19 42 00 	movl   $0x4219b4,0x4(%eax)
40115f:	eb 07                	jmp    0x401168
401161:	c7 40 04 b0 19 42 00 	movl   $0x4219b0,0x4(%eax)
401168:	5e                   	pop    %esi
401169:	5d                   	pop    %ebp
40116a:	c2 08 00             	ret    $0x8
40116d:	55                   	push   %ebp
40116e:	8b ec                	mov    %esp,%ebp
401170:	56                   	push   %esi
401171:	ff 75 08             	push   0x8(%ebp)
401174:	8b f1                	mov    %ecx,%esi
401176:	83 66 10 00          	andl   $0x0,0x10(%esi)
40117a:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
401181:	c6 06 00             	movb   $0x0,(%esi)
401184:	e8 77 fe ff ff       	call   0x401000
401189:	59                   	pop    %ecx
40118a:	50                   	push   %eax
40118b:	ff 75 08             	push   0x8(%ebp)
40118e:	8b ce                	mov    %esi,%ecx
401190:	e8 6c 00 00 00       	call   0x401201
401195:	8b c6                	mov    %esi,%eax
401197:	5e                   	pop    %esi
401198:	5d                   	pop    %ebp
401199:	c2 04 00             	ret    $0x4
40119c:	56                   	push   %esi
40119d:	8b f1                	mov    %ecx,%esi
40119f:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4011a3:	72 08                	jb     0x4011ad
4011a5:	ff 36                	push   (%esi)
4011a7:	e8 4c 3d 00 00       	call   0x404ef8
4011ac:	59                   	pop    %ecx
4011ad:	83 66 10 00          	andl   $0x0,0x10(%esi)
4011b1:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4011b8:	c6 06 00             	movb   $0x0,(%esi)
4011bb:	5e                   	pop    %esi
4011bc:	c3                   	ret
4011bd:	55                   	push   %ebp
4011be:	8b ec                	mov    %esp,%ebp
4011c0:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
4011c4:	56                   	push   %esi
4011c5:	57                   	push   %edi
4011c6:	8b 7d 0c             	mov    0xc(%ebp),%edi
4011c9:	8b f1                	mov    %ecx,%esi
4011cb:	74 20                	je     0x4011ed
4011cd:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4011d1:	72 1a                	jb     0x4011ed
4011d3:	53                   	push   %ebx
4011d4:	8b 1e                	mov    (%esi),%ebx
4011d6:	85 ff                	test   %edi,%edi
4011d8:	74 0b                	je     0x4011e5
4011da:	57                   	push   %edi
4011db:	53                   	push   %ebx
4011dc:	56                   	push   %esi
4011dd:	e8 be 44 00 00       	call   0x4056a0
4011e2:	83 c4 0c             	add    $0xc,%esp
4011e5:	53                   	push   %ebx
4011e6:	e8 0d 3d 00 00       	call   0x404ef8
4011eb:	59                   	pop    %ecx
4011ec:	5b                   	pop    %ebx
4011ed:	89 7e 10             	mov    %edi,0x10(%esi)
4011f0:	c7 46 14 0f 00 00 00 	movl   $0xf,0x14(%esi)
4011f7:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
4011fb:	5f                   	pop    %edi
4011fc:	5e                   	pop    %esi
4011fd:	5d                   	pop    %ebp
4011fe:	c2 08 00             	ret    $0x8
401201:	55                   	push   %ebp
401202:	8b ec                	mov    %esp,%ebp
401204:	53                   	push   %ebx
401205:	8b 5d 08             	mov    0x8(%ebp),%ebx
401208:	56                   	push   %esi
401209:	53                   	push   %ebx
40120a:	8b f1                	mov    %ecx,%esi
40120c:	e8 60 01 00 00       	call   0x401371
401211:	84 c0                	test   %al,%al
401213:	74 1c                	je     0x401231
401215:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
401219:	72 04                	jb     0x40121f
40121b:	8b 06                	mov    (%esi),%eax
40121d:	eb 02                	jmp    0x401221
40121f:	8b c6                	mov    %esi,%eax
401221:	ff 75 0c             	push   0xc(%ebp)
401224:	2b d8                	sub    %eax,%ebx
401226:	53                   	push   %ebx
401227:	56                   	push   %esi
401228:	8b ce                	mov    %esi,%ecx
40122a:	e8 4b 00 00 00       	call   0x40127a
40122f:	eb 43                	jmp    0x401274
401231:	57                   	push   %edi
401232:	8b 7d 0c             	mov    0xc(%ebp),%edi
401235:	6a 00                	push   $0x0
401237:	57                   	push   %edi
401238:	8b ce                	mov    %esi,%ecx
40123a:	e8 cf 00 00 00       	call   0x40130e
40123f:	84 c0                	test   %al,%al
401241:	74 2e                	je     0x401271
401243:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
401247:	72 04                	jb     0x40124d
401249:	8b 06                	mov    (%esi),%eax
40124b:	eb 02                	jmp    0x40124f
40124d:	8b c6                	mov    %esi,%eax
40124f:	85 ff                	test   %edi,%edi
401251:	74 0b                	je     0x40125e
401253:	57                   	push   %edi
401254:	53                   	push   %ebx
401255:	50                   	push   %eax
401256:	e8 45 44 00 00       	call   0x4056a0
40125b:	83 c4 0c             	add    $0xc,%esp
40125e:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
401262:	89 7e 10             	mov    %edi,0x10(%esi)
401265:	72 04                	jb     0x40126b
401267:	8b 06                	mov    (%esi),%eax
401269:	eb 02                	jmp    0x40126d
40126b:	8b c6                	mov    %esi,%eax
40126d:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
401271:	8b c6                	mov    %esi,%eax
401273:	5f                   	pop    %edi
401274:	5e                   	pop    %esi
401275:	5b                   	pop    %ebx
401276:	5d                   	pop    %ebp
401277:	c2 08 00             	ret    $0x8
40127a:	55                   	push   %ebp
40127b:	8b ec                	mov    %esp,%ebp
40127d:	8b 45 0c             	mov    0xc(%ebp),%eax
401280:	53                   	push   %ebx
401281:	8b 5d 08             	mov    0x8(%ebp),%ebx
401284:	56                   	push   %esi
401285:	57                   	push   %edi
401286:	8b 7b 10             	mov    0x10(%ebx),%edi
401289:	8b f1                	mov    %ecx,%esi
40128b:	3b f8                	cmp    %eax,%edi
40128d:	72 74                	jb     0x401303
40128f:	2b f8                	sub    %eax,%edi
401291:	39 7d 10             	cmp    %edi,0x10(%ebp)
401294:	0f 42 7d 10          	cmovb  0x10(%ebp),%edi
401298:	3b f3                	cmp    %ebx,%esi
40129a:	75 17                	jne    0x4012b3
40129c:	03 c7                	add    %edi,%eax
40129e:	50                   	push   %eax
40129f:	e8 08 01 00 00       	call   0x4013ac
4012a4:	8b 45 0c             	mov    0xc(%ebp),%eax
4012a7:	50                   	push   %eax
4012a8:	6a 00                	push   $0x0
4012aa:	8b ce                	mov    %esi,%ecx
4012ac:	e8 2a 01 00 00       	call   0x4013db
4012b1:	eb 47                	jmp    0x4012fa
4012b3:	6a 00                	push   $0x0
4012b5:	57                   	push   %edi
4012b6:	e8 53 00 00 00       	call   0x40130e
4012bb:	84 c0                	test   %al,%al
4012bd:	74 3b                	je     0x4012fa
4012bf:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
4012c3:	72 02                	jb     0x4012c7
4012c5:	8b 1b                	mov    (%ebx),%ebx
4012c7:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4012cb:	72 04                	jb     0x4012d1
4012cd:	8b 0e                	mov    (%esi),%ecx
4012cf:	eb 02                	jmp    0x4012d3
4012d1:	8b ce                	mov    %esi,%ecx
4012d3:	85 ff                	test   %edi,%edi
4012d5:	74 10                	je     0x4012e7
4012d7:	8b 45 0c             	mov    0xc(%ebp),%eax
4012da:	57                   	push   %edi
4012db:	03 c3                	add    %ebx,%eax
4012dd:	50                   	push   %eax
4012de:	51                   	push   %ecx
4012df:	e8 bc 43 00 00       	call   0x4056a0
4012e4:	83 c4 0c             	add    $0xc,%esp
4012e7:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4012eb:	89 7e 10             	mov    %edi,0x10(%esi)
4012ee:	72 04                	jb     0x4012f4
4012f0:	8b 06                	mov    (%esi),%eax
4012f2:	eb 02                	jmp    0x4012f6
4012f4:	8b c6                	mov    %esi,%eax
4012f6:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
4012fa:	5f                   	pop    %edi
4012fb:	8b c6                	mov    %esi,%eax
4012fd:	5e                   	pop    %esi
4012fe:	5b                   	pop    %ebx
4012ff:	5d                   	pop    %ebp
401300:	c2 0c 00             	ret    $0xc
401303:	68 e0 d3 41 00       	push   $0x41d3e0
401308:	e8 7b 21 00 00       	call   0x403488
40130d:	cc                   	int3
40130e:	55                   	push   %ebp
40130f:	8b ec                	mov    %esp,%ebp
401311:	56                   	push   %esi
401312:	8b 75 08             	mov    0x8(%ebp),%esi
401315:	83 fe fe             	cmp    $0xfffffffe,%esi
401318:	77 4c                	ja     0x401366
40131a:	39 71 14             	cmp    %esi,0x14(%ecx)
40131d:	73 0b                	jae    0x40132a
40131f:	ff 71 10             	push   0x10(%ecx)
401322:	56                   	push   %esi
401323:	e8 35 01 00 00       	call   0x40145d
401328:	eb 2f                	jmp    0x401359
40132a:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
40132e:	74 17                	je     0x401347
401330:	83 fe 10             	cmp    $0x10,%esi
401333:	73 12                	jae    0x401347
401335:	8b 41 10             	mov    0x10(%ecx),%eax
401338:	3b f0                	cmp    %eax,%esi
40133a:	0f 42 c6             	cmovb  %esi,%eax