40a11a:	33 c9                	xor    %ecx,%ecx
40a11c:	e8 6f ef ff ff       	call   0x409090
40a121:	83 c4 28             	add    $0x28,%esp
40a124:	5f                   	pop    %edi
40a125:	5e                   	pop    %esi
40a126:	5b                   	pop    %ebx
40a127:	c3                   	ret
40a128:	53                   	push   %ebx
40a129:	56                   	push   %esi
40a12a:	8b f2                	mov    %edx,%esi
40a12c:	8b d8                	mov    %eax,%ebx
40a12e:	8b c3                	mov    %ebx,%eax
40a130:	8b d6                	mov    %esi,%edx
40a132:	e8 81 b8 ff ff       	call   0x4059b8
40a137:	5e                   	pop    %esi
40a138:	5b                   	pop    %ebx
40a139:	c3                   	ret
40a13a:	8b c0                	mov    %eax,%eax
40a13c:	53                   	push   %ebx
40a13d:	8b d8                	mov    %eax,%ebx
40a13f:	8b c3                	mov    %ebx,%eax
40a141:	e8 22 a7 ff ff       	call   0x404868
40a146:	5b                   	pop    %ebx
40a147:	c3                   	ret
40a148:	55                   	push   %ebp
40a149:	8b ec                	mov    %esp,%ebp
40a14b:	83 c4 8c             	add    $0xffffff8c,%esp
40a14e:	53                   	push   %ebx
40a14f:	33 db                	xor    %ebx,%ebx
40a151:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40a154:	53                   	push   %ebx
40a155:	56                   	push   %esi
40a156:	57                   	push   %edi
40a157:	89 c7                	mov    %eax,%edi
40a159:	89 ce                	mov    %ecx,%esi
40a15b:	31 c0                	xor    %eax,%eax
40a15d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a160:	03 4d 10             	add    0x10(%ebp),%ecx
40a163:	89 7d f8             	mov    %edi,-0x8(%ebp)
40a166:	31 c0                	xor    %eax,%eax
40a168:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a16b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40a16e:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a171:	09 d2                	or     %edx,%edx
40a173:	74 0d                	je     0x40a182
40a175:	39 ce                	cmp    %ecx,%esi
40a177:	74 09                	je     0x40a182
40a179:	ac                   	lods   %ds:(%esi),%al
40a17a:	3c 25                	cmp    $0x25,%al
40a17c:	74 0e                	je     0x40a18c
40a17e:	aa                   	stos   %al,%es:(%edi)
40a17f:	4a                   	dec    %edx
40a180:	75 f3                	jne    0x40a175
40a182:	89 f8                	mov    %edi,%eax
40a184:	2b 45 f8             	sub    -0x8(%ebp),%eax
40a187:	e9 c0 03 00 00       	jmp    0x40a54c
40a18c:	39 ce                	cmp    %ecx,%esi
40a18e:	74 f2                	je     0x40a182
40a190:	ac                   	lods   %ds:(%esi),%al
40a191:	3c 25                	cmp    $0x25,%al
40a193:	74 e9                	je     0x40a17e
40a195:	8d 5e fe             	lea    -0x2(%esi),%ebx
40a198:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40a19b:	88 45 e7             	mov    %al,-0x19(%ebp)
40a19e:	3c 2d                	cmp    $0x2d,%al
40a1a0:	75 05                	jne    0x40a1a7
40a1a2:	39 ce                	cmp    %ecx,%esi
40a1a4:	74 dc                	je     0x40a182
40a1a6:	ac                   	lods   %ds:(%esi),%al
40a1a7:	e8 7e 00 00 00       	call   0x40a22a
40a1ac:	3c 3a                	cmp    $0x3a,%al
40a1ae:	75 0a                	jne    0x40a1ba
40a1b0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40a1b3:	39 ce                	cmp    %ecx,%esi
40a1b5:	74 cb                	je     0x40a182
40a1b7:	ac                   	lods   %ds:(%esi),%al
40a1b8:	eb e1                	jmp    0x40a19b
40a1ba:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a1bd:	bb ff ff ff ff       	mov    $0xffffffff,%ebx
40a1c2:	3c 2e                	cmp    $0x2e,%al
40a1c4:	75 0a                	jne    0x40a1d0
40a1c6:	39 ce                	cmp    %ecx,%esi
40a1c8:	74 b8                	je     0x40a182
40a1ca:	ac                   	lods   %ds:(%esi),%al
40a1cb:	e8 5a 00 00 00       	call   0x40a22a
40a1d0:	89 5d dc             	mov    %ebx,-0x24(%ebp)
40a1d3:	89 75 d8             	mov    %esi,-0x28(%ebp)
40a1d6:	51                   	push   %ecx
40a1d7:	52                   	push   %edx
40a1d8:	e8 95 00 00 00       	call   0x40a272
40a1dd:	5a                   	pop    %edx
40a1de:	8b 5d e0             	mov    -0x20(%ebp),%ebx
40a1e1:	29 cb                	sub    %ecx,%ebx
40a1e3:	73 02                	jae    0x40a1e7
40a1e5:	31 db                	xor    %ebx,%ebx
40a1e7:	80 7d e7 2d          	cmpb   $0x2d,-0x19(%ebp)
40a1eb:	75 0a                	jne    0x40a1f7
40a1ed:	29 ca                	sub    %ecx,%edx
40a1ef:	73 04                	jae    0x40a1f5
40a1f1:	01 d1                	add    %edx,%ecx
40a1f3:	31 d2                	xor    %edx,%edx
40a1f5:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40a1f7:	87 d9                	xchg   %ebx,%ecx
40a1f9:	29 ca                	sub    %ecx,%edx
40a1fb:	73 04                	jae    0x40a201
40a1fd:	01 d1                	add    %edx,%ecx
40a1ff:	31 d2                	xor    %edx,%edx
40a201:	b0 20                	mov    $0x20,%al
40a203:	f3 aa                	rep stos %al,%es:(%edi)
40a205:	87 d9                	xchg   %ebx,%ecx
40a207:	29 ca                	sub    %ecx,%edx
40a209:	73 04                	jae    0x40a20f
40a20b:	01 d1                	add    %edx,%ecx
40a20d:	31 d2                	xor    %edx,%edx
40a20f:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40a211:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40a215:	74 0a                	je     0x40a221
40a217:	52                   	push   %edx
40a218:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a21b:	e8 1c ff ff ff       	call   0x40a13c
40a220:	5a                   	pop    %edx
40a221:	59                   	pop    %ecx
40a222:	8b 75 d8             	mov    -0x28(%ebp),%esi
40a225:	e9 47 ff ff ff       	jmp    0x40a171
40a22a:	31 db                	xor    %ebx,%ebx
40a22c:	3c 2a                	cmp    $0x2a,%al
40a22e:	74 22                	je     0x40a252
40a230:	3c 30                	cmp    $0x30,%al
40a232:	72 3d                	jb     0x40a271
40a234:	3c 39                	cmp    $0x39,%al
40a236:	77 39                	ja     0x40a271
40a238:	69 db 0a 00 00 00    	imul   $0xa,%ebx,%ebx
40a23e:	2c 30                	sub    $0x30,%al
40a240:	0f b6 c0             	movzbl %al,%eax
40a243:	01 c3                	add    %eax,%ebx
40a245:	39 ce                	cmp    %ecx,%esi
40a247:	74 03                	je     0x40a24c
40a249:	ac                   	lods   %ds:(%esi),%al
40a24a:	eb e4                	jmp    0x40a230
40a24c:	58                   	pop    %eax
40a24d:	e9 30 ff ff ff       	jmp    0x40a182
40a252:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a255:	3b 45 08             	cmp    0x8(%ebp),%eax
40a258:	77 12                	ja     0x40a26c
40a25a:	ff 45 f4             	incl   -0xc(%ebp)
40a25d:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40a260:	80 7c c3 04 00       	cmpb   $0x0,0x4(%ebx,%eax,8)
40a265:	8b 1c c3             	mov    (%ebx,%eax,8),%ebx
40a268:	74 02                	je     0x40a26c
40a26a:	31 db                	xor    %ebx,%ebx
40a26c:	39 ce                	cmp    %ecx,%esi
40a26e:	74 dc                	je     0x40a24c
40a270:	ac                   	lods   %ds:(%esi),%al
40a271:	c3                   	ret
40a272:	24 df                	and    $0xdf,%al
40a274:	88 c1                	mov    %al,%cl
40a276:	b8 01 00 00 00       	mov    $0x1,%eax
40a27b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40a27e:	3b 5d 08             	cmp    0x8(%ebp),%ebx
40a281:	77 5c                	ja     0x40a2df
40a283:	ff 45 f4             	incl   -0xc(%ebp)
40a286:	8b 75 0c             	mov    0xc(%ebp),%esi
40a289:	8d 34 de             	lea    (%esi,%ebx,8),%esi
40a28c:	8b 06                	mov    (%esi),%eax
40a28e:	0f b6 56 04          	movzbl 0x4(%esi),%edx
40a292:	ff 24 95 99 a2 40 00 	jmp    *0x40a299(,%edx,4)
40a299:	9a a3 40 00 dd a2 40 	lcall  $0x40a2,$0xdd0040a3
40a2a0:	00 01                	add    %al,(%ecx)
40a2a2:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40a2a3:	40                   	inc    %eax
40a2a4:	00 c7                	add    %al,%bh
40a2a6:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40a2a7:	40                   	inc    %eax
40a2a8:	00 31                	add    %dh,(%ecx)
40a2aa:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40a2ab:	40                   	inc    %eax
40a2ac:	00 a9 a4 40 00 89    	add    %ch,-0x76ffbf5c(%ecx)
40a2b2:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40a2b3:	40                   	inc    %eax
40a2b4:	00 dd                	add    %bl,%ch
40a2b6:	a2 40 00 dd a2       	mov    %al,0xa2dd0040
40a2bb:	40                   	inc    %eax
40a2bc:	00 dd                	add    %bl,%ch
40a2be:	a2 40 00 42 a4       	mov    %al,0xa4420040
40a2c3:	40                   	inc    %eax
40a2c4:	00 6d a4             	add    %ch,-0x5c(%ebp)
40a2c7:	40                   	inc    %eax
40a2c8:	00 c3                	add    %al,%bl
40a2ca:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40a2cb:	40                   	inc    %eax
40a2cc:	00 10                	add    %dl,(%eax)
40a2ce:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40a2cf:	40                   	inc    %eax
40a2d0:	00 dd                	add    %bl,%ch
40a2d2:	a2 40 00 49 a4       	mov    %al,0xa4490040
40a2d7:	40                   	inc    %eax
40a2d8:	00 f4                	add    %dh,%ah
40a2da:	a2 40 00 31 c0       	mov    %al,0xc0310040
40a2df:	e8 58 02 00 00       	call   0x40a53c
40a2e4:	8b 55 e8             	mov    -0x18(%ebp),%edx
40a2e7:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40a2ea:	29 d1                	sub    %edx,%ecx
40a2ec:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a2ef:	e8 dc fd ff ff       	call   0x40a0d0
40a2f4:	8d 5d d0             	lea    -0x30(%ebp),%ebx
40a2f7:	8b 10                	mov    (%eax),%edx
40a2f9:	89 13                	mov    %edx,(%ebx)
40a2fb:	8b 50 04             	mov    0x4(%eax),%edx
40a2fe:	89 53 04             	mov    %edx,0x4(%ebx)
40a301:	80 f9 44             	cmp    $0x44,%cl
40a304:	74 11                	je     0x40a317
40a306:	80 f9 55             	cmp    $0x55,%cl
40a309:	74 2a                	je     0x40a335
40a30b:	80 f9 58             	cmp    $0x58,%cl
40a30e:	75 cd                	jne    0x40a2dd
40a310:	b9 10 00 00 00       	mov    $0x10,%ecx
40a315:	eb 23                	jmp    0x40a33a
40a317:	f7 43 04 00 00 00 80 	testl  $0x80000000,0x4(%ebx)
40a31e:	74 15                	je     0x40a335
40a320:	f7 1b                	negl   (%ebx)
40a322:	83 53 04 00          	adcl   $0x0,0x4(%ebx)
40a326:	f7 5b 04             	negl   0x4(%ebx)
40a329:	e8 07 00 00 00       	call   0x40a335
40a32e:	b0 2d                	mov    $0x2d,%al
40a330:	41                   	inc    %ecx
40a331:	4e                   	dec    %esi
40a332:	88 06                	mov    %al,(%esi)
40a334:	c3                   	ret
40a335:	b9 0a 00 00 00       	mov    $0xa,%ecx
40a33a:	8d 75 af             	lea    -0x51(%ebp),%esi
40a33d:	53                   	push   %ebx
40a33e:	51                   	push   %ecx
40a33f:	6a 00                	push   $0x0
40a341:	51                   	push   %ecx
40a342:	8b 03                	mov    (%ebx),%eax
40a344:	8b 53 04             	mov    0x4(%ebx),%edx
40a347:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a34a:	e8 9d b8 ff ff       	call   0x405bec
40a34f:	59                   	pop    %ecx
40a350:	5b                   	pop    %ebx
40a351:	92                   	xchg   %eax,%edx
40a352:	80 c2 30             	add    $0x30,%dl
40a355:	80 fa 3a             	cmp    $0x3a,%dl
40a358:	72 03                	jb     0x40a35d
40a35a:	80 c2 07             	add    $0x7,%dl
40a35d:	4e                   	dec    %esi
40a35e:	88 16                	mov    %dl,(%esi)
40a360:	53                   	push   %ebx
40a361:	51                   	push   %ecx
40a362:	6a 00                	push   $0x0
40a364:	51                   	push   %ecx
40a365:	8b 03                	mov    (%ebx),%eax
40a367:	8b 53 04             	mov    0x4(%ebx),%edx
40a36a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40a36d:	e8 b2 b7 ff ff       	call   0x405b24
40a372:	59                   	pop    %ecx
40a373:	5b                   	pop    %ebx
40a374:	89 03                	mov    %eax,(%ebx)
40a376:	89 53 04             	mov    %edx,0x4(%ebx)
40a379:	09 d0                	or     %edx,%eax
40a37b:	75 c0                	jne    0x40a33d
40a37d:	8d 4d af             	lea    -0x51(%ebp),%ecx
40a380:	29 f1                	sub    %esi,%ecx
40a382:	8b 55 dc             	mov    -0x24(%ebp),%edx
40a385:	83 fa 10             	cmp    $0x10,%edx
40a388:	76 01                	jbe    0x40a38b
40a38a:	c3                   	ret
40a38b:	29 ca                	sub    %ecx,%edx
40a38d:	76 0a                	jbe    0x40a399
40a38f:	01 d1                	add    %edx,%ecx
40a391:	b0 30                	mov    $0x30,%al
40a393:	4e                   	dec    %esi
40a394:	88 06                	mov    %al,(%esi)
40a396:	4a                   	dec    %edx
40a397:	75 fa                	jne    0x40a393
40a399:	c3                   	ret
40a39a:	80 f9 44             	cmp    $0x44,%cl
40a39d:	74 15                	je     0x40a3b4
40a39f:	80 f9 55             	cmp    $0x55,%cl
40a3a2:	74 22                	je     0x40a3c6
40a3a4:	80 f9 58             	cmp    $0x58,%cl
40a3a7:	0f 85 30 ff ff ff    	jne    0x40a2dd
40a3ad:	b9 10 00 00 00       	mov    $0x10,%ecx
40a3b2:	eb 17                	jmp    0x40a3cb
40a3b4:	09 c0                	or     %eax,%eax
40a3b6:	79 0e                	jns    0x40a3c6
40a3b8:	f7 d8                	neg    %eax
40a3ba:	e8 07 00 00 00       	call   0x40a3c6
40a3bf:	b0 2d                	mov    $0x2d,%al
40a3c1:	41                   	inc    %ecx
40a3c2:	4e                   	dec    %esi
40a3c3:	88 06                	mov    %al,(%esi)
40a3c5:	c3                   	ret
40a3c6:	b9 0a 00 00 00       	mov    $0xa,%ecx
40a3cb:	8d 75 9f             	lea    -0x61(%ebp),%esi
40a3ce:	31 d2                	xor    %edx,%edx
40a3d0:	f7 f1                	div    %ecx
40a3d2:	80 c2 30             	add    $0x30,%dl
40a3d5:	80 fa 3a             	cmp    $0x3a,%dl
40a3d8:	72 03                	jb     0x40a3dd
40a3da:	80 c2 07             	add    $0x7,%dl
40a3dd:	4e                   	dec    %esi
40a3de:	88 16                	mov    %dl,(%esi)
40a3e0:	09 c0                	or     %eax,%eax
40a3e2:	75 ea                	jne    0x40a3ce
40a3e4:	8d 4d 9f             	lea    -0x61(%ebp),%ecx
40a3e7:	29 f1                	sub    %esi,%ecx
40a3e9:	8b 55 dc             	mov    -0x24(%ebp),%edx
40a3ec:	83 fa 10             	cmp    $0x10,%edx
40a3ef:	76 01                	jbe    0x40a3f2
40a3f1:	c3                   	ret
40a3f2:	29 ca                	sub    %ecx,%edx
40a3f4:	76 0a                	jbe    0x40a400
40a3f6:	01 d1                	add    %edx,%ecx
40a3f8:	b0 30                	mov    $0x30,%al
40a3fa:	4e                   	dec    %esi
40a3fb:	88 06                	mov    %al,(%esi)
40a3fd:	4a                   	dec    %edx
40a3fe:	75 fa                	jne    0x40a3fa
40a400:	c3                   	ret
40a401:	80 f9 53             	cmp    $0x53,%cl
40a404:	0f 85 d3 fe ff ff    	jne    0x40a2dd
40a40a:	b9 01 00 00 00       	mov    $0x1,%ecx
40a40f:	c3                   	ret
40a410:	80 f9 53             	cmp    $0x53,%cl
40a413:	0f 85 c4 fe ff ff    	jne    0x40a2dd
40a419:	66 83 38 01          	cmpw   $0x1,(%eax)
40a41d:	76 0f                	jbe    0x40a42e
40a41f:	89 c2                	mov    %eax,%edx
40a421:	8d 45 f0             	lea    -0x10(%ebp),%eax
40a424:	e8 ff fc ff ff       	call   0x40a128
40a429:	8b 75 f0             	mov    -0x10(%ebp),%esi
40a42c:	eb 4a                	jmp    0x40a478
40a42e:	31 c9                	xor    %ecx,%ecx
40a430:	c3                   	ret
40a431:	80 f9 53             	cmp    $0x53,%cl
40a434:	0f 85 a3 fe ff ff    	jne    0x40a2dd
40a43a:	89 c6                	mov    %eax,%esi
40a43c:	ac                   	lods   %ds:(%esi),%al
40a43d:	0f b6 c8             	movzbl %al,%ecx
40a440:	eb 3d                	jmp    0x40a47f
40a442:	be 88 4a 40 00       	mov    $0x404a88,%esi
40a447:	eb 05                	jmp    0x40a44e
40a449:	be e8 4a 40 00       	mov    $0x404ae8,%esi
40a44e:	03 75 fc             	add    -0x4(%ebp),%esi
40a451:	80 f9 53             	cmp    $0x53,%cl
40a454:	0f 85 83 fe ff ff    	jne    0x40a2dd
40a45a:	89 c2                	mov    %eax,%edx
40a45c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a45f:	53                   	push   %ebx