40f931:	48                   	dec    %eax
40f932:	84 d2                	test   %dl,%dl
40f934:	74 04                	je     0x40f93a
40f936:	85 c0                	test   %eax,%eax
40f938:	7d e3                	jge    0x40f91d
40f93a:	8b c2                	mov    %edx,%eax
40f93c:	5b                   	pop    %ebx
40f93d:	5d                   	pop    %ebp
40f93e:	c3                   	ret
40f93f:	90                   	nop
40f940:	55                   	push   %ebp
40f941:	8b ec                	mov    %esp,%ebp
40f943:	53                   	push   %ebx
40f944:	56                   	push   %esi
40f945:	b2 01                	mov    $0x1,%dl
40f947:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f94a:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40f951:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f954:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40f95b:	8b d9                	mov    %ecx,%ebx
40f95d:	8b 75 08             	mov    0x8(%ebp),%esi
40f960:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40f967:	8b 75 08             	mov    0x8(%ebp),%esi
40f96a:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40f971:	7f 22                	jg     0x40f995
40f973:	85 c0                	test   %eax,%eax
40f975:	75 04                	jne    0x40f97b
40f977:	33 d2                	xor    %edx,%edx
40f979:	eb 1a                	jmp    0x40f995
40f97b:	8b 55 08             	mov    0x8(%ebp),%edx
40f97e:	8b 55 08             	mov    0x8(%ebp),%edx
40f981:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40f988:	8b 55 08             	mov    0x8(%ebp),%edx
40f98b:	52                   	push   %edx
40f98c:	48                   	dec    %eax
40f98d:	e8 ae ff ff ff       	call   0x40f940
40f992:	59                   	pop    %ecx
40f993:	8b d0                	mov    %eax,%edx
40f995:	8b c2                	mov    %edx,%eax
40f997:	5e                   	pop    %esi
40f998:	5b                   	pop    %ebx
40f999:	5d                   	pop    %ebp
40f99a:	c3                   	ret
40f99b:	90                   	nop
40f99c:	55                   	push   %ebp
40f99d:	8b ec                	mov    %esp,%ebp
40f99f:	81 c4 e0 fc ff ff    	add    $0xfffffce0,%esp
40f9a5:	53                   	push   %ebx
40f9a6:	56                   	push   %esi
40f9a7:	57                   	push   %edi
40f9a8:	89 8d f8 fc ff ff    	mov    %ecx,-0x308(%ebp)
40f9ae:	8b da                	mov    %edx,%ebx
40f9b0:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40f9b6:	f6 43 01 20          	testb  $0x20,0x1(%ebx)
40f9ba:	75 0a                	jne    0x40f9c6
40f9bc:	b8 57 00 07 80       	mov    $0x80070057,%eax
40f9c1:	e8 7e fb ff ff       	call   0x40f544
40f9c6:	0f b7 03             	movzwl (%ebx),%eax
40f9c9:	8b d0                	mov    %eax,%edx
40f9cb:	66 81 e2 ff 0f       	and    $0xfff,%dx
40f9d0:	66 83 fa 0c          	cmp    $0xc,%dx
40f9d4:	0f 85 73 01 00 00    	jne    0x40fb4d
40f9da:	f6 c4 40             	test   $0x40,%ah
40f9dd:	74 0d                	je     0x40f9ec
40f9df:	8b 43 08             	mov    0x8(%ebx),%eax
40f9e2:	8b 00                	mov    (%eax),%eax
40f9e4:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40f9ea:	eb 09                	jmp    0x40f9f5
40f9ec:	8b 43 08             	mov    0x8(%ebx),%eax
40f9ef:	89 85 ec fc ff ff    	mov    %eax,-0x314(%ebp)
40f9f5:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40f9fb:	0f b7 00             	movzwl (%eax),%eax
40f9fe:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40fa04:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fa0a:	4b                   	dec    %ebx
40fa0b:	85 db                	test   %ebx,%ebx
40fa0d:	7c 6b                	jl     0x40fa7a
40fa0f:	43                   	inc    %ebx
40fa10:	33 ff                	xor    %edi,%edi
40fa12:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40fa18:	8b c6                	mov    %esi,%eax
40fa1a:	89 85 e0 fc ff ff    	mov    %eax,-0x320(%ebp)
40fa20:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40fa26:	83 c0 04             	add    $0x4,%eax
40fa29:	50                   	push   %eax
40fa2a:	8d 47 01             	lea    0x1(%edi),%eax
40fa2d:	50                   	push   %eax
40fa2e:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fa34:	50                   	push   %eax
40fa35:	e8 2a ed ff ff       	call   0x40e764
40fa3a:	e8 05 fb ff ff       	call   0x40f544
40fa3f:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40fa45:	50                   	push   %eax
40fa46:	8d 47 01             	lea    0x1(%edi),%eax
40fa49:	50                   	push   %eax
40fa4a:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fa50:	50                   	push   %eax
40fa51:	e8 16 ed ff ff       	call   0x40e76c
40fa56:	e8 e9 fa ff ff       	call   0x40f544
40fa5b:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40fa61:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40fa67:	2b 50 04             	sub    0x4(%eax),%edx
40fa6a:	42                   	inc    %edx
40fa6b:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40fa71:	89 10                	mov    %edx,(%eax)
40fa73:	47                   	inc    %edi
40fa74:	83 c6 08             	add    $0x8,%esi
40fa77:	4b                   	dec    %ebx
40fa78:	75 9e                	jne    0x40fa18
40fa7a:	8d 85 00 fd ff ff    	lea    -0x300(%ebp),%eax
40fa80:	50                   	push   %eax
40fa81:	8b 85 f0 fc ff ff    	mov    -0x310(%ebp),%eax
40fa87:	50                   	push   %eax
40fa88:	6a 0c                	push   $0xc
40fa8a:	e8 cd ec ff ff       	call   0x40e75c
40fa8f:	8b f0                	mov    %eax,%esi
40fa91:	85 f6                	test   %esi,%esi
40fa93:	75 05                	jne    0x40fa9a
40fa95:	e8 02 f8 ff ff       	call   0x40f29c
40fa9a:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40faa0:	e8 4f fe ff ff       	call   0x40f8f4
40faa5:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40faab:	66 c7 00 0c 20       	movw   $0x200c,(%eax)
40fab0:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fab6:	89 70 08             	mov    %esi,0x8(%eax)
40fab9:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fabf:	4b                   	dec    %ebx
40fac0:	85 db                	test   %ebx,%ebx
40fac2:	7c 1a                	jl     0x40fade
40fac4:	43                   	inc    %ebx
40fac5:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40facb:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40fad1:	8b 08                	mov    (%eax),%ecx
40fad3:	89 0a                	mov    %ecx,(%edx)
40fad5:	83 c2 04             	add    $0x4,%edx
40fad8:	83 c0 08             	add    $0x8,%eax
40fadb:	4b                   	dec    %ebx
40fadc:	75 f3                	jne    0x40fad1
40fade:	55                   	push   %ebp
40fadf:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40fae5:	4b                   	dec    %ebx
40fae6:	8b c3                	mov    %ebx,%eax
40fae8:	e8 23 fe ff ff       	call   0x40f910
40faed:	59                   	pop    %ecx
40faee:	84 c0                	test   %al,%al
40faf0:	74 4c                	je     0x40fb3e
40faf2:	8d 85 e8 fc ff ff    	lea    -0x318(%ebp),%eax
40faf8:	50                   	push   %eax
40faf9:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40faff:	50                   	push   %eax
40fb00:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40fb06:	50                   	push   %eax
40fb07:	e8 68 ec ff ff       	call   0x40e774
40fb0c:	e8 33 fa ff ff       	call   0x40f544
40fb11:	8d 85 e4 fc ff ff    	lea    -0x31c(%ebp),%eax
40fb17:	50                   	push   %eax
40fb18:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40fb1e:	50                   	push   %eax
40fb1f:	56                   	push   %esi
40fb20:	e8 4f ec ff ff       	call   0x40e774
40fb25:	e8 1a fa ff ff       	call   0x40f544
40fb2a:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40fb30:	8b d0                	mov    %eax,%edx
40fb32:	8b 85 e4 fc ff ff    	mov    -0x31c(%ebp),%eax
40fb38:	ff 95 f8 fc ff ff    	call   *-0x308(%ebp)
40fb3e:	55                   	push   %ebp
40fb3f:	8b c3                	mov    %ebx,%eax
40fb41:	e8 fa fd ff ff       	call   0x40f940
40fb46:	59                   	pop    %ecx
40fb47:	84 c0                	test   %al,%al
40fb49:	75 93                	jne    0x40fade
40fb4b:	eb 12                	jmp    0x40fb5f
40fb4d:	53                   	push   %ebx
40fb4e:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40fb54:	50                   	push   %eax
40fb55:	e8 aa e7 ff ff       	call   0x40e304
40fb5a:	e8 e5 f9 ff ff       	call   0x40f544
40fb5f:	5f                   	pop    %edi
40fb60:	5e                   	pop    %esi
40fb61:	5b                   	pop    %ebx
40fb62:	8b e5                	mov    %ebp,%esp
40fb64:	5d                   	pop    %ebp
40fb65:	c3                   	ret
40fb66:	8b c0                	mov    %eax,%eax
40fb68:	e8 af 00 00 00       	call   0x40fc1c
40fb6d:	c3                   	ret
40fb6e:	8b c0                	mov    %eax,%eax
40fb70:	53                   	push   %ebx
40fb71:	56                   	push   %esi
40fb72:	57                   	push   %edi
40fb73:	51                   	push   %ecx
40fb74:	8b f2                	mov    %edx,%esi
40fb76:	8b d8                	mov    %eax,%ebx
40fb78:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40fb7d:	74 07                	je     0x40fb86
40fb7f:	8b c3                	mov    %ebx,%eax
40fb81:	e8 f2 fc ff ff       	call   0x40f878
40fb86:	0f b7 3e             	movzwl (%esi),%edi
40fb89:	66 83 ff 14          	cmp    $0x14,%di
40fb8d:	73 0e                	jae    0x40fb9d
40fb8f:	56                   	push   %esi
40fb90:	53                   	push   %ebx
40fb91:	e8 6e e7 ff ff       	call   0x40e304
40fb96:	e8 a9 f9 ff ff       	call   0x40f544
40fb9b:	eb 79                	jmp    0x40fc16
40fb9d:	66 81 ff 00 01       	cmp    $0x100,%di
40fba2:	75 17                	jne    0x40fbbb
40fba4:	66 c7 03 00 01       	movw   $0x100,(%ebx)
40fba9:	33 c0                	xor    %eax,%eax
40fbab:	89 43 08             	mov    %eax,0x8(%ebx)
40fbae:	8d 43 08             	lea    0x8(%ebx),%eax
40fbb1:	8b 56 08             	mov    0x8(%esi),%edx
40fbb4:	e8 bb 4b ff ff       	call   0x404774
40fbb9:	eb 5b                	jmp    0x40fc16
40fbbb:	66 81 ff 01 01       	cmp    $0x101,%di
40fbc0:	75 13                	jne    0x40fbd5
40fbc2:	66 89 3b             	mov    %di,(%ebx)
40fbc5:	8b 46 08             	mov    0x8(%esi),%eax
40fbc8:	89 43 08             	mov    %eax,0x8(%ebx)
40fbcb:	8b c3                	mov    %ebx,%eax
40fbcd:	ff 15 a0 12 47 00    	call   *0x4712a0
40fbd3:	eb 41                	jmp    0x40fc16
40fbd5:	66 f7 c7 00 20       	test   $0x2000,%di
40fbda:	74 10                	je     0x40fbec
40fbdc:	b9 68 fb 40 00       	mov    $0x40fb68,%ecx
40fbe1:	8b d6                	mov    %esi,%edx
40fbe3:	8b c3                	mov    %ebx,%eax
40fbe5:	e8 b2 fd ff ff       	call   0x40f99c
40fbea:	eb 2a                	jmp    0x40fc16
40fbec:	8b d4                	mov    %esp,%edx
40fbee:	8b c7                	mov    %edi,%eax
40fbf0:	e8 5f 49 00 00       	call   0x414554
40fbf5:	84 c0                	test   %al,%al
40fbf7:	74 11                	je     0x40fc0a
40fbf9:	6a 00                	push   $0x0
40fbfb:	8b ce                	mov    %esi,%ecx
40fbfd:	8b d3                	mov    %ebx,%edx
40fbff:	8b 44 24 04          	mov    0x4(%esp),%eax
40fc03:	8b 18                	mov    (%eax),%ebx
40fc05:	ff 53 28             	call   *0x28(%ebx)
40fc08:	eb 0c                	jmp    0x40fc16
40fc0a:	56                   	push   %esi
40fc0b:	53                   	push   %ebx
40fc0c:	e8 f3 e6 ff ff       	call   0x40e304
40fc11:	e8 2e f9 ff ff       	call   0x40f544
40fc16:	5a                   	pop    %edx
40fc17:	5f                   	pop    %edi
40fc18:	5e                   	pop    %esi
40fc19:	5b                   	pop    %ebx
40fc1a:	c3                   	ret
40fc1b:	90                   	nop
40fc1c:	53                   	push   %ebx
40fc1d:	56                   	push   %esi
40fc1e:	8b da                	mov    %edx,%ebx
40fc20:	8b f0                	mov    %eax,%esi
40fc22:	3b f3                	cmp    %ebx,%esi
40fc24:	74 36                	je     0x40fc5c
40fc26:	66 f7 03 e8 bf       	testw  $0xbfe8,(%ebx)
40fc2b:	75 26                	jne    0x40fc53
40fc2d:	66 f7 06 e8 bf       	testw  $0xbfe8,(%esi)
40fc32:	74 07                	je     0x40fc3b
40fc34:	8b c6                	mov    %esi,%eax
40fc36:	e8 3d fc ff ff       	call   0x40f878
40fc3b:	8b 03                	mov    (%ebx),%eax
40fc3d:	89 06                	mov    %eax,(%esi)
40fc3f:	8b 43 04             	mov    0x4(%ebx),%eax
40fc42:	89 46 04             	mov    %eax,0x4(%esi)
40fc45:	8b 43 08             	mov    0x8(%ebx),%eax
40fc48:	89 46 08             	mov    %eax,0x8(%esi)
40fc4b:	8b 43 0c             	mov    0xc(%ebx),%eax
40fc4e:	89 46 0c             	mov    %eax,0xc(%esi)
40fc51:	eb 09                	jmp    0x40fc5c
40fc53:	8b d3                	mov    %ebx,%edx
40fc55:	8b c6                	mov    %esi,%eax
40fc57:	e8 14 ff ff ff       	call   0x40fb70
40fc5c:	5e                   	pop    %esi
40fc5d:	5b                   	pop    %ebx
40fc5e:	c3                   	ret
40fc5f:	90                   	nop
40fc60:	55                   	push   %ebp
40fc61:	8b ec                	mov    %esp,%ebp
40fc63:	83 c4 f0             	add    $0xfffffff0,%esp
40fc66:	53                   	push   %ebx
40fc67:	56                   	push   %esi
40fc68:	57                   	push   %edi
40fc69:	8b f9                	mov    %ecx,%edi
40fc6b:	8b f2                	mov    %edx,%esi
40fc6d:	8b d8                	mov    %eax,%ebx
40fc6f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fc72:	50                   	push   %eax
40fc73:	e8 7c e6 ff ff       	call   0x40e2f4
40fc78:	33 c0                	xor    %eax,%eax
40fc7a:	55                   	push   %ebp
40fc7b:	68 bc fc 40 00       	push   $0x40fcbc
40fc80:	64 ff 30             	push   %fs:(%eax)
40fc83:	64 89 20             	mov    %esp,%fs:(%eax)
40fc86:	8b d6                	mov    %esi,%edx
40fc88:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fc8b:	e8 8c ff ff ff       	call   0x40fc1c
40fc90:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fc93:	ff 15 9c 12 47 00    	call   *0x47129c
40fc99:	0f b7 cf             	movzwl %di,%ecx
40fc9c:	8d 55 f0             	lea    -0x10(%ebp),%edx
40fc9f:	8b c3                	mov    %ebx,%eax
40fca1:	e8 42 02 00 00       	call   0x40fee8
40fca6:	33 c0                	xor    %eax,%eax
40fca8:	5a                   	pop    %edx
40fca9:	59                   	pop    %ecx
40fcaa:	59                   	pop    %ecx
40fcab:	64 89 10             	mov    %edx,%fs:(%eax)
40fcae:	68 c3 fc 40 00       	push   $0x40fcc3
40fcb3:	8d 45 f0             	lea    -0x10(%ebp),%eax
40fcb6:	e8 39 fc ff ff       	call   0x40f8f4
40fcbb:	c3                   	ret
40fcbc:	e9 c7 43 ff ff       	jmp    0x404088
40fcc1:	eb f0                	jmp    0x40fcb3
40fcc3:	5f                   	pop    %edi
40fcc4:	5e                   	pop    %esi
40fcc5:	5b                   	pop    %ebx
40fcc6:	8b e5                	mov    %ebp,%esp
40fcc8:	5d                   	pop    %ebp
40fcc9:	c3                   	ret
40fcca:	8b c0                	mov    %eax,%eax
40fccc:	55                   	push   %ebp
40fccd:	8b ec                	mov    %esp,%ebp
40fccf:	6a 00                	push   $0x0
40fcd1:	53                   	push   %ebx
40fcd2:	8b d8                	mov    %eax,%ebx
40fcd4:	33 c0                	xor    %eax,%eax
40fcd6:	55                   	push   %ebp
40fcd7:	68 0a fd 40 00       	push   $0x40fd0a
40fcdc:	64 ff 30             	push   %fs:(%eax)
40fcdf:	64 89 20             	mov    %esp,%fs:(%eax)
40fce2:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fce5:	e8 2e 36 00 00       	call   0x413318
40fcea:	8b c3                	mov    %ebx,%eax
40fcec:	8b 55 fc             	mov    -0x4(%ebp),%edx
40fcef:	e8 c8 3f 00 00       	call   0x413cbc
40fcf4:	33 c0                	xor    %eax,%eax
40fcf6:	5a                   	pop    %edx
40fcf7:	59                   	pop    %ecx
40fcf8:	59                   	pop    %ecx
40fcf9:	64 89 10             	mov    %edx,%fs:(%eax)
40fcfc:	68 11 fd 40 00       	push   $0x40fd11
40fd01:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fd04:	e8 f7 51 ff ff       	call   0x404f00
40fd09:	c3                   	ret
40fd0a:	e9 79 43 ff ff       	jmp    0x404088
40fd0f:	eb f0                	jmp    0x40fd01
40fd11:	5b                   	pop    %ebx