40a020:	83 ec 0c             	sub    $0xc,%esp
40a023:	56                   	push   %esi
40a024:	8b 75 08             	mov    0x8(%ebp),%esi
40a027:	66 81 3e 11 20       	cmpw   $0x2011,(%esi)
40a02c:	75 69                	jne    0x40a097
40a02e:	ff 76 08             	push   0x8(%esi)
40a031:	ff 15 d4 04 4b 00    	call   *0x4b04d4
40a037:	83 f8 01             	cmp    $0x1,%eax
40a03a:	75 5b                	jne    0x40a097
40a03c:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a03f:	50                   	push   %eax
40a040:	6a 01                	push   $0x1
40a042:	ff 76 08             	push   0x8(%esi)
40a045:	ff 15 dc 04 4b 00    	call   *0x4b04dc
40a04b:	50                   	push   %eax
40a04c:	e8 43 fd ff ff       	call   0x409d94
40a051:	8d 45 08             	lea    0x8(%ebp),%eax
40a054:	50                   	push   %eax
40a055:	6a 01                	push   $0x1
40a057:	ff 76 08             	push   0x8(%esi)
40a05a:	ff 15 e0 04 4b 00    	call   *0x4b04e0
40a060:	50                   	push   %eax
40a061:	e8 2e fd ff ff       	call   0x409d94
40a066:	8b 45 08             	mov    0x8(%ebp),%eax
40a069:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a06c:	2b c2                	sub    %edx,%eax
40a06e:	79 02                	jns    0x40a072
40a070:	33 c0                	xor    %eax,%eax
40a072:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a075:	3b c1                	cmp    %ecx,%eax
40a077:	74 19                	je     0x40a092
40a079:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a07c:	50                   	push   %eax
40a07d:	ff 76 08             	push   0x8(%esi)
40a080:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40a083:	89 55 f8             	mov    %edx,-0x8(%ebp)
40a086:	ff 15 cc 04 4b 00    	call   *0x4b04cc
40a08c:	50                   	push   %eax
40a08d:	e8 02 fd ff ff       	call   0x409d94
40a092:	5e                   	pop    %esi
40a093:	c9                   	leave
40a094:	c2 08 00             	ret    $0x8
40a097:	56                   	push   %esi
40a098:	ff 15 f4 04 4b 00    	call   *0x4b04f4
40a09e:	8b 45 0c             	mov    0xc(%ebp),%eax
40a0a1:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40a0a5:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a0a8:	8d 45 f4             	lea    -0xc(%ebp),%eax
40a0ab:	50                   	push   %eax
40a0ac:	6a 01                	push   $0x1
40a0ae:	6a 11                	push   $0x11
40a0b0:	66 c7 06 11 20       	movw   $0x2011,(%esi)
40a0b5:	ff 15 d0 04 4b 00    	call   *0x4b04d0
40a0bb:	85 c0                	test   %eax,%eax
40a0bd:	89 46 08             	mov    %eax,0x8(%esi)
40a0c0:	75 d0                	jne    0x40a092
40a0c2:	e8 50 b3 02 00       	call   0x435417
40a0c7:	cc                   	int3
40a0c8:	55                   	push   %ebp
40a0c9:	8b ec                	mov    %esp,%ebp
40a0cb:	51                   	push   %ecx
40a0cc:	8d 45 fc             	lea    -0x4(%ebp),%eax
40a0cf:	50                   	push   %eax
40a0d0:	ff 75 08             	push   0x8(%ebp)
40a0d3:	ff 15 e4 04 4b 00    	call   *0x4b04e4
40a0d9:	50                   	push   %eax
40a0da:	e8 b5 fc ff ff       	call   0x409d94
40a0df:	ff 75 10             	push   0x10(%ebp)
40a0e2:	ff 75 0c             	push   0xc(%ebp)
40a0e5:	ff 75 fc             	push   -0x4(%ebp)
40a0e8:	e8 83 d7 00 00       	call   0x417870
40a0ed:	83 c4 0c             	add    $0xc,%esp
40a0f0:	ff 75 08             	push   0x8(%ebp)
40a0f3:	ff 15 e8 04 4b 00    	call   *0x4b04e8
40a0f9:	50                   	push   %eax
40a0fa:	e8 95 fc ff ff       	call   0x409d94
40a0ff:	c9                   	leave
40a100:	c2 0c 00             	ret    $0xc
40a103:	66 83 7c 24 08 0b    	cmpw   $0xb,0x8(%esp)
40a109:	8b c1                	mov    %ecx,%eax
40a10b:	66 8b 4c 24 04       	mov    0x4(%esp),%cx
40a110:	75 0c                	jne    0x40a11e
40a112:	66 f7 d9             	neg    %cx
40a115:	66 c7 00 0b 00       	movw   $0xb,(%eax)
40a11a:	1b c9                	sbb    %ecx,%ecx
40a11c:	eb 05                	jmp    0x40a123
40a11e:	66 c7 00 02 00       	movw   $0x2,(%eax)
40a123:	66 89 48 08          	mov    %cx,0x8(%eax)
40a127:	c2 08 00             	ret    $0x8
40a12a:	55                   	push   %ebp
40a12b:	8b ec                	mov    %esp,%ebp
40a12d:	8b c1                	mov    %ecx,%eax
40a12f:	66 8b 4d 0c          	mov    0xc(%ebp),%cx
40a133:	66 83 f9 0a          	cmp    $0xa,%cx
40a137:	75 05                	jne    0x40a13e
40a139:	66 89 08             	mov    %cx,(%eax)
40a13c:	eb 47                	jmp    0x40a185
40a13e:	66 83 f9 0b          	cmp    $0xb,%cx
40a142:	75 10                	jne    0x40a154
40a144:	66 89 08             	mov    %cx,(%eax)
40a147:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a14a:	f7 d9                	neg    %ecx
40a14c:	1b c9                	sbb    %ecx,%ecx
40a14e:	66 89 48 08          	mov    %cx,0x8(%eax)
40a152:	eb 37                	jmp    0x40a18b
40a154:	66 83 f9 16          	cmp    $0x16,%cx
40a158:	75 05                	jne    0x40a15f
40a15a:	66 89 08             	mov    %cx,(%eax)
40a15d:	eb 26                	jmp    0x40a185
40a15f:	66 83 f9 17          	cmp    $0x17,%cx
40a163:	75 05                	jne    0x40a16a
40a165:	66 89 08             	mov    %cx,(%eax)
40a168:	eb 1b                	jmp    0x40a185
40a16a:	66 83 f9 19          	cmp    $0x19,%cx
40a16e:	75 05                	jne    0x40a175
40a170:	66 89 08             	mov    %cx,(%eax)
40a173:	eb 10                	jmp    0x40a185
40a175:	66 83 f9 13          	cmp    $0x13,%cx
40a179:	75 05                	jne    0x40a180
40a17b:	66 89 08             	mov    %cx,(%eax)
40a17e:	eb 05                	jmp    0x40a185
40a180:	66 c7 00 03 00       	movw   $0x3,(%eax)
40a185:	8b 4d 08             	mov    0x8(%ebp),%ecx
40a188:	89 48 08             	mov    %ecx,0x8(%eax)
40a18b:	5d                   	pop    %ebp
40a18c:	c2 08 00             	ret    $0x8
40a18f:	8b 54 24 08          	mov    0x8(%esp),%edx
40a193:	85 d2                	test   %edx,%edx
40a195:	75 02                	jne    0x40a199
40a197:	8b d1                	mov    %ecx,%edx
40a199:	3b d1                	cmp    %ecx,%edx
40a19b:	8b 44 24 04          	mov    0x4(%esp),%eax
40a19f:	75 05                	jne    0x40a1a6
40a1a1:	66 3b 01             	cmp    (%ecx),%ax
40a1a4:	74 11                	je     0x40a1b7
40a1a6:	50                   	push   %eax
40a1a7:	6a 00                	push   $0x0
40a1a9:	52                   	push   %edx
40a1aa:	51                   	push   %ecx
40a1ab:	ff 15 f0 04 4b 00    	call   *0x4b04f0
40a1b1:	50                   	push   %eax
40a1b2:	e8 dd fb ff ff       	call   0x409d94
40a1b7:	c2 08 00             	ret    $0x8
40a1ba:	55                   	push   %ebp
40a1bb:	8b ec                	mov    %esp,%ebp
40a1bd:	83 ec 10             	sub    $0x10,%esp
40a1c0:	8b 45 08             	mov    0x8(%ebp),%eax
40a1c3:	56                   	push   %esi
40a1c4:	57                   	push   %edi
40a1c5:	8b f1                	mov    %ecx,%esi
40a1c7:	8d 7d f0             	lea    -0x10(%ebp),%edi
40a1ca:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1cb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1cc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1cd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1ce:	66 83 21 00          	andw   $0x0,(%ecx)
40a1d2:	8d 75 f0             	lea    -0x10(%ebp),%esi
40a1d5:	8b f8                	mov    %eax,%edi
40a1d7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1d8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1d9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1da:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a1db:	5f                   	pop    %edi
40a1dc:	5e                   	pop    %esi
40a1dd:	c9                   	leave
40a1de:	c2 04 00             	ret    $0x4
40a1e1:	56                   	push   %esi
40a1e2:	57                   	push   %edi
40a1e3:	8b 7c 24 0c          	mov    0xc(%esp),%edi
40a1e7:	8b f1                	mov    %ecx,%esi
40a1e9:	3b fe                	cmp    %esi,%edi
40a1eb:	74 4c                	je     0x40a239
40a1ed:	66 8b 06             	mov    (%esi),%ax
40a1f0:	66 39 07             	cmp    %ax,(%edi)
40a1f3:	75 72                	jne    0x40a267
40a1f5:	0f b7 c8             	movzwl %ax,%ecx
40a1f8:	83 f9 15             	cmp    $0x15,%ecx
40a1fb:	0f 87 b3 00 00 00    	ja     0x40a2b4
40a201:	ff 24 8d cb a2 40 00 	jmp    *0x40a2cb(,%ecx,4)
40a208:	66 8b 47 08          	mov    0x8(%edi),%ax
40a20c:	66 2b 46 08          	sub    0x8(%esi),%ax
40a210:	66 f7 d8             	neg    %ax
40a213:	1b c0                	sbb    %eax,%eax
40a215:	e9 97 00 00 00       	jmp    0x40a2b1
40a21a:	8a 47 08             	mov    0x8(%edi),%al
40a21d:	2a 46 08             	sub    0x8(%esi),%al
40a220:	f6 d8                	neg    %al
40a222:	1b c0                	sbb    %eax,%eax
40a224:	e9 88 00 00 00       	jmp    0x40a2b1
40a229:	8b 47 08             	mov    0x8(%edi),%eax
40a22c:	3b 46 08             	cmp    0x8(%esi),%eax
40a22f:	75 36                	jne    0x40a267
40a231:	8b 47 0c             	mov    0xc(%edi),%eax
40a234:	3b 46 0c             	cmp    0xc(%esi),%eax
40a237:	75 2e                	jne    0x40a267
40a239:	33 c0                	xor    %eax,%eax
40a23b:	40                   	inc    %eax
40a23c:	eb 2b                	jmp    0x40a269
40a23e:	8b 47 0c             	mov    0xc(%edi),%eax
40a241:	3b 46 0c             	cmp    0xc(%esi),%eax
40a244:	75 21                	jne    0x40a267
40a246:	8b 47 08             	mov    0x8(%edi),%eax
40a249:	3b 46 08             	cmp    0x8(%esi),%eax
40a24c:	eb e9                	jmp    0x40a237
40a24e:	d9 46 08             	flds   0x8(%esi)
40a251:	d9 47 08             	flds   0x8(%edi)
40a254:	da e9                	fucompp
40a256:	eb 08                	jmp    0x40a260
40a258:	dd 46 08             	fldl   0x8(%esi)
40a25b:	dd 47 08             	fldl   0x8(%edi)
40a25e:	da e9                	fucompp
40a260:	df e0                	fnstsw %ax
40a262:	f6 c4 44             	test   $0x44,%ah
40a265:	7b d2                	jnp    0x40a239
40a267:	33 c0                	xor    %eax,%eax
40a269:	5f                   	pop    %edi
40a26a:	5e                   	pop    %esi
40a26b:	c2 04 00             	ret    $0x4
40a26e:	53                   	push   %ebx
40a26f:	8b 1d fc 04 4b 00    	mov    0x4b04fc,%ebx
40a275:	55                   	push   %ebp
40a276:	ff 76 08             	push   0x8(%esi)
40a279:	ff d3                	call   *%ebx
40a27b:	ff 77 08             	push   0x8(%edi)
40a27e:	8b e8                	mov    %eax,%ebp
40a280:	ff d3                	call   *%ebx
40a282:	3b c5                	cmp    %ebp,%eax
40a284:	75 1b                	jne    0x40a2a1
40a286:	ff 76 08             	push   0x8(%esi)
40a289:	ff d3                	call   *%ebx
40a28b:	50                   	push   %eax
40a28c:	ff 76 08             	push   0x8(%esi)
40a28f:	ff 77 08             	push   0x8(%edi)
40a292:	e8 09 e7 00 00       	call   0x4189a0
40a297:	83 c4 0c             	add    $0xc,%esp
40a29a:	85 c0                	test   %eax,%eax
40a29c:	75 03                	jne    0x40a2a1
40a29e:	40                   	inc    %eax
40a29f:	eb 02                	jmp    0x40a2a3
40a2a1:	33 c0                	xor    %eax,%eax
40a2a3:	5d                   	pop    %ebp
40a2a4:	5b                   	pop    %ebx
40a2a5:	eb c2                	jmp    0x40a269
40a2a7:	8b 47 08             	mov    0x8(%edi),%eax
40a2aa:	2b 46 08             	sub    0x8(%esi),%eax
40a2ad:	f7 d8                	neg    %eax
40a2af:	1b c0                	sbb    %eax,%eax
40a2b1:	40                   	inc    %eax
40a2b2:	eb b5                	jmp    0x40a269
40a2b4:	f6 c4 20             	test   $0x20,%ah
40a2b7:	74 ae                	je     0x40a267
40a2b9:	f6 c4 40             	test   $0x40,%ah
40a2bc:	75 a9                	jne    0x40a267
40a2be:	ff 76 08             	push   0x8(%esi)
40a2c1:	ff 77 08             	push   0x8(%edi)
40a2c4:	e8 e8 fa ff ff       	call   0x409db1
40a2c9:	eb 9e                	jmp    0x40a269
40a2cb:	39 a2 40 00 39 a2    	cmp    %esp,-0x5dc6ffc0(%edx)
40a2d1:	40                   	inc    %eax
40a2d2:	00 08                	add    %cl,(%eax)
40a2d4:	a2 40 00 a7 a2       	mov    %al,0xa2a70040
40a2d9:	40                   	inc    %eax
40a2da:	00 4e a2             	add    %cl,-0x5e(%esi)
40a2dd:	40                   	inc    %eax
40a2de:	00 58 a2             	add    %bl,-0x5e(%eax)
40a2e1:	40                   	inc    %eax
40a2e2:	00 3e                	add    %bh,(%esi)
40a2e4:	a2 40 00 58 a2       	mov    %al,0xa2580040
40a2e9:	40                   	inc    %eax
40a2ea:	00 6e a2             	add    %ch,-0x5e(%esi)
40a2ed:	40                   	inc    %eax
40a2ee:	00 a7 a2 40 00 a7    	add    %ah,-0x58ffbf5e(%edi)
40a2f4:	a2 40 00 08 a2       	mov    %al,0xa2080040
40a2f9:	40                   	inc    %eax
40a2fa:	00 b4 a2 40 00 a7 a2 	add    %dh,-0x5d58ffc0(%edx,%eiz,4)
40a301:	40                   	inc    %eax
40a302:	00 b4 a2 40 00 b4 a2 	add    %dh,-0x5d4bffc0(%edx,%eiz,4)
40a309:	40                   	inc    %eax
40a30a:	00 1a                	add    %bl,(%edx)
40a30c:	a2 40 00 1a a2       	mov    %al,0xa21a0040
40a311:	40                   	inc    %eax
40a312:	00 08                	add    %cl,(%eax)
40a314:	a2 40 00 a7 a2       	mov    %al,0xa2a70040
40a319:	40                   	inc    %eax
40a31a:	00 29                	add    %ch,(%ecx)
40a31c:	a2 40 00 29 a2       	mov    %al,0xa2290040
40a321:	40                   	inc    %eax
40a322:	00 56 ff             	add    %dl,-0x1(%esi)
40a325:	74 24                	je     0x40a34b
40a327:	08 8b f1 56 ff 15    	or     %cl,0x15ff56f1(%ebx)
40a32d:	c8 04 4b 00          	enter  $0x4b04,$0x0
40a331:	50                   	push   %eax
40a332:	e8 5d fa ff ff       	call   0x409d94
40a337:	8b c6                	mov    %esi,%eax
40a339:	5e                   	pop    %esi
40a33a:	c2 04 00             	ret    $0x4
40a33d:	56                   	push   %esi
40a33e:	ff 74 24 08          	push   0x8(%esp)
40a342:	8b f1                	mov    %ecx,%esi
40a344:	56                   	push   %esi
40a345:	ff 15 c8 04 4b 00    	call   *0x4b04c8
40a34b:	50                   	push   %eax
40a34c:	e8 43 fa ff ff       	call   0x409d94
40a351:	8b c6                	mov    %esi,%eax
40a353:	5e                   	pop    %esi
40a354:	c2 04 00             	ret    $0x4
40a357:	56                   	push   %esi
40a358:	ff 74 24 08          	push   0x8(%esp)
40a35c:	8b f1                	mov    %ecx,%esi
40a35e:	56                   	push   %esi
40a35f:	ff 15 c8 04 4b 00    	call   *0x4b04c8
40a365:	50                   	push   %eax
40a366:	e8 29 fa ff ff       	call   0x409d94
40a36b:	8b c6                	mov    %esi,%eax
40a36d:	5e                   	pop    %esi
40a36e:	c2 04 00             	ret    $0x4
40a371:	56                   	push   %esi
40a372:	8b 74 24 08          	mov    0x8(%esp),%esi
40a376:	8b 46 08             	mov    0x8(%esi),%eax
40a379:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
40a37e:	57                   	push   %edi
40a37f:	8b f9                	mov    %ecx,%edi
40a381:	76 05                	jbe    0x40a388
40a383:	e8 8f b0 02 00       	call   0x435417
40a388:	50                   	push   %eax
40a389:	57                   	push   %edi
40a38a:	e8 8e fc ff ff       	call   0x40a01d
40a38f:	ff 76 04             	push   0x4(%esi)
40a392:	ff 15 40 03 4b 00    	call   *0x4b0340
40a398:	ff 76 08             	push   0x8(%esi)
40a39b:	50                   	push   %eax
40a39c:	ff 77 08             	push   0x8(%edi)
40a39f:	e8 24 fd ff ff       	call   0x40a0c8
40a3a4:	ff 76 04             	push   0x4(%esi)
40a3a7:	ff 15 44 03 4b 00    	call   *0x4b0344
40a3ad:	8b c7                	mov    %edi,%eax
40a3af:	5f                   	pop    %edi
40a3b0:	5e                   	pop    %esi
40a3b1:	c2 04 00             	ret    $0x4
40a3b4:	6a 10                	push   $0x10
40a3b6:	6a 00                	push   $0x0
40a3b8:	ff 74 24 0c          	push   0xc(%esp)
40a3bc:	e8 7f de 00 00       	call   0x418240
40a3c1:	83 c4 0c             	add    $0xc,%esp
40a3c4:	c2 04 00             	ret    $0x4
40a3c7:	55                   	push   %ebp
40a3c8:	8b ec                	mov    %esp,%ebp
40a3ca:	56                   	push   %esi
40a3cb:	8b 75 10             	mov    0x10(%ebp),%esi
40a3ce:	85 f6                	test   %esi,%esi