40acb9:	8d 4e 02             	lea    0x2(%esi),%ecx
40acbc:	8d 64 24 00          	lea    0x0(%esp),%esp
40acc0:	66 8b 06             	mov    (%esi),%ax
40acc3:	83 c6 02             	add    $0x2,%esi
40acc6:	66 85 c0             	test   %ax,%ax
40acc9:	75 f5                	jne    0x40acc0
40accb:	2b f1                	sub    %ecx,%esi
40accd:	d1 fe                	sar    $1,%esi
40accf:	46                   	inc    %esi
40acd0:	8d 0c 36             	lea    (%esi,%esi,1),%ecx
40acd3:	e8 f8 2f 00 00       	call   0x40dcd0
40acd8:	8b d8                	mov    %eax,%ebx
40acda:	85 db                	test   %ebx,%ebx
40acdc:	74 42                	je     0x40ad20
40acde:	85 f6                	test   %esi,%esi
40ace0:	74 3e                	je     0x40ad20
40ace2:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40ace8:	0f 87 71 1e 01 00    	ja     0x41cb5f
40acee:	ba fe ff ff 7f       	mov    $0x7ffffffe,%edx
40acf3:	2b d6                	sub    %esi,%edx
40acf5:	2b fb                	sub    %ebx,%edi
40acf7:	8d 0c 32             	lea    (%edx,%esi,1),%ecx
40acfa:	85 c9                	test   %ecx,%ecx
40acfc:	74 19                	je     0x40ad17
40acfe:	0f b7 0c 07          	movzwl (%edi,%eax,1),%ecx
40ad02:	66 85 c9             	test   %cx,%cx
40ad05:	74 10                	je     0x40ad17
40ad07:	66 89 08             	mov    %cx,(%eax)
40ad0a:	83 c0 02             	add    $0x2,%eax
40ad0d:	83 ee 01             	sub    $0x1,%esi
40ad10:	75 e5                	jne    0x40acf7
40ad12:	83 e8 02             	sub    $0x2,%eax
40ad15:	eb 04                	jmp    0x40ad1b
40ad17:	85 f6                	test   %esi,%esi
40ad19:	74 f7                	je     0x40ad12
40ad1b:	33 c9                	xor    %ecx,%ecx
40ad1d:	66 89 08             	mov    %cx,(%eax)
40ad20:	5f                   	pop    %edi
40ad21:	5e                   	pop    %esi
40ad22:	8b c3                	mov    %ebx,%eax
40ad24:	5b                   	pop    %ebx
40ad25:	c3                   	ret
40ad26:	8b ff                	mov    %edi,%edi
40ad28:	55                   	push   %ebp
40ad29:	8b ec                	mov    %esp,%ebp
40ad2b:	83 ec 0c             	sub    $0xc,%esp
40ad2e:	53                   	push   %ebx
40ad2f:	8b d9                	mov    %ecx,%ebx
40ad31:	56                   	push   %esi
40ad32:	57                   	push   %edi
40ad33:	85 db                	test   %ebx,%ebx
40ad35:	74 09                	je     0x40ad40
40ad37:	83 3d 48 67 43 00 00 	cmpl   $0x0,0x436748
40ad3e:	74 05                	je     0x40ad45
40ad40:	5f                   	pop    %edi
40ad41:	5e                   	pop    %esi
40ad42:	5b                   	pop    %ebx
40ad43:	c9                   	leave
40ad44:	c3                   	ret
40ad45:	83 3d 58 67 43 00 00 	cmpl   $0x0,0x436758
40ad4c:	75 f2                	jne    0x40ad40
40ad4e:	e9 1e 1e 01 00       	jmp    0x41cb71
40ad53:	cc                   	int3
40ad54:	cc                   	int3
40ad55:	cc                   	int3
40ad56:	cc                   	int3
40ad57:	cc                   	int3
40ad58:	cc                   	int3
40ad59:	cc                   	int3
40ad5a:	cc                   	int3
40ad5b:	cc                   	int3
40ad5c:	cc                   	int3
40ad5d:	cc                   	int3
40ad5e:	cc                   	int3
40ad5f:	cc                   	int3
40ad60:	8b ff                	mov    %edi,%edi
40ad62:	55                   	push   %ebp
40ad63:	8b ec                	mov    %esp,%ebp
40ad65:	6a fe                	push   $0xfffffffe
40ad67:	68 f0 c9 42 00       	push   $0x42c9f0
40ad6c:	68 00 6e 41 00       	push   $0x416e00
40ad71:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ad77:	50                   	push   %eax
40ad78:	81 ec 50 04 00 00    	sub    $0x450,%esp
40ad7e:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40ad83:	31 45 f8             	xor    %eax,-0x8(%ebp)
40ad86:	33 c5                	xor    %ebp,%eax
40ad88:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ad8b:	53                   	push   %ebx
40ad8c:	56                   	push   %esi
40ad8d:	57                   	push   %edi
40ad8e:	50                   	push   %eax
40ad8f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40ad92:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40ad98:	8b f9                	mov    %ecx,%edi
40ad9a:	89 bd b0 fb ff ff    	mov    %edi,-0x450(%ebp)
40ada0:	c7 85 ac fb ff ff 00 	movl   $0x0,-0x454(%ebp)
40ada7:	00 00 00
40adaa:	68 04 01 00 00       	push   $0x104
40adaf:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
40adb5:	50                   	push   %eax
40adb6:	ff 15 48 a0 44 00    	call   *0x44a048
40adbc:	83 7f 38 00          	cmpl   $0x0,0x38(%edi)
40adc0:	0f 84 9a 1e 01 00    	je     0x41cc60
40adc6:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40adcc:	e8 5d ac 00 00       	call   0x415a2e
40add1:	80 bd c4 fd ff ff 00 	cmpb   $0x0,-0x23c(%ebp)
40add8:	0f 84 61 1e 01 00    	je     0x41cc3f
40adde:	b8 e7 7f 00 00       	mov    $0x7fe7,%eax
40ade3:	50                   	push   %eax
40ade4:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40adea:	e8 01 36 00 00       	call   0x40e3f0
40adef:	85 c0                	test   %eax,%eax
40adf1:	0f 88 5e 1e 01 00    	js     0x41cc55
40adf7:	8b 47 38             	mov    0x38(%edi),%eax
40adfa:	66 83 78 02 3a       	cmpw   $0x3a,0x2(%eax)
40adff:	0f 84 b4 02 00 00    	je     0x40b0b9
40ae05:	8d 95 b4 fb ff ff    	lea    -0x44c(%ebp),%edx
40ae0b:	8b cf                	mov    %edi,%ecx
40ae0d:	e8 3e 3b 00 00       	call   0x40e950
40ae12:	8b f0                	mov    %eax,%esi
40ae14:	89 b5 a8 fb ff ff    	mov    %esi,-0x458(%ebp)
40ae1a:	83 fe ff             	cmp    $0xffffffff,%esi
40ae1d:	0f 84 f5 02 00 00    	je     0x40b118
40ae23:	83 fe fe             	cmp    $0xfffffffe,%esi
40ae26:	0f 84 29 1e 01 00    	je     0x41cc55
40ae2c:	8d 04 76             	lea    (%esi,%esi,2),%eax
40ae2f:	8b 04 c5 84 16 40 00 	mov    0x401684(,%eax,8),%eax
40ae36:	89 85 a4 fb ff ff    	mov    %eax,-0x45c(%ebp)
40ae3c:	85 c0                	test   %eax,%eax
40ae3e:	0f 84 38 1e 01 00    	je     0x41cc7c
40ae44:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40ae4a:	85 c0                	test   %eax,%eax
40ae4c:	0f 84 3c 1e 01 00    	je     0x41cc8e
40ae52:	b9 2f 00 00 00       	mov    $0x2f,%ecx
40ae57:	66 89 08             	mov    %cx,(%eax)
40ae5a:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40ae60:	85 c0                	test   %eax,%eax
40ae62:	0f 84 31 1e 01 00    	je     0x41cc99
40ae68:	33 c9                	xor    %ecx,%ecx
40ae6a:	66 89 48 02          	mov    %cx,0x2(%eax)
40ae6e:	8b 95 c0 fd ff ff    	mov    -0x240(%ebp),%edx
40ae74:	85 d2                	test   %edx,%edx
40ae76:	0f 84 28 1e 01 00    	je     0x41cca4
40ae7c:	6a 02                	push   $0x2
40ae7e:	8b 4f 3c             	mov    0x3c(%edi),%ecx
40ae81:	e8 aa 0d 00 00       	call   0x40bc30
40ae86:	8b d8                	mov    %eax,%ebx
40ae88:	83 fe 0a             	cmp    $0xa,%esi
40ae8b:	0f 84 75 01 00 00    	je     0x40b006
40ae91:	83 fe 1f             	cmp    $0x1f,%esi
40ae94:	74 13                	je     0x40aea9
40ae96:	6a 01                	push   $0x1
40ae98:	8b d3                	mov    %ebx,%edx
40ae9a:	8b ce                	mov    %esi,%ecx
40ae9c:	e8 5f f9 ff ff       	call   0x40a800
40aea1:	84 c0                	test   %al,%al
40aea3:	0f 85 ac 1d 01 00    	jne    0x41cc55
40aea9:	85 db                	test   %ebx,%ebx
40aeab:	0f 84 c0 00 00 00    	je     0x40af71
40aeb1:	66 83 3b 00          	cmpw   $0x0,(%ebx)
40aeb5:	0f 84 b0 00 00 00    	je     0x40af6b
40aebb:	8b f3                	mov    %ebx,%esi
40aebd:	8d 4e 02             	lea    0x2(%esi),%ecx
40aec0:	66 8b 06             	mov    (%esi),%ax
40aec3:	83 c6 02             	add    $0x2,%esi
40aec6:	66 85 c0             	test   %ax,%ax
40aec9:	75 f5                	jne    0x40aec0
40aecb:	2b f1                	sub    %ecx,%esi
40aecd:	d1 fe                	sar    $1,%esi
40aecf:	6a 22                	push   $0x22
40aed1:	53                   	push   %ebx
40aed2:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40aed8:	83 c4 08             	add    $0x8,%esp
40aedb:	85 c0                	test   %eax,%eax
40aedd:	0f 85 50 01 00 00    	jne    0x40b033
40aee3:	8b d3                	mov    %ebx,%edx
40aee5:	83 c6 01             	add    $0x1,%esi
40aee8:	0f 84 c9 1d 01 00    	je     0x41ccb7
40aeee:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
40aef4:	0f 87 bd 1d 01 00    	ja     0x41ccb7
40aefa:	8b c3                	mov    %ebx,%eax
40aefc:	bf fe ff ff 7f       	mov    $0x7ffffffe,%edi
40af01:	2b fe                	sub    %esi,%edi
40af03:	2b d3                	sub    %ebx,%edx
40af05:	8d 0c 37             	lea    (%edi,%esi,1),%ecx
40af08:	85 c9                	test   %ecx,%ecx
40af0a:	74 14                	je     0x40af20
40af0c:	0f b7 0c 02          	movzwl (%edx,%eax,1),%ecx
40af10:	66 85 c9             	test   %cx,%cx
40af13:	74 0b                	je     0x40af20
40af15:	66 89 08             	mov    %cx,(%eax)
40af18:	83 c0 02             	add    $0x2,%eax
40af1b:	83 ee 01             	sub    $0x1,%esi
40af1e:	75 e5                	jne    0x40af05
40af20:	85 f6                	test   %esi,%esi
40af22:	0f 84 87 1d 01 00    	je     0x41ccaf
40af28:	33 c9                	xor    %ecx,%ecx
40af2a:	66 89 08             	mov    %cx,(%eax)
40af2d:	66 8b 85 b4 fb ff ff 	mov    -0x44c(%ebp),%ax
40af34:	a8 01                	test   $0x1,%al
40af36:	0f 85 f4 01 00 00    	jne    0x40b130
40af3c:	a8 02                	test   $0x2,%al
40af3e:	0f 85 28 02 00 00    	jne    0x40b16c
40af44:	8b cb                	mov    %ebx,%ecx
40af46:	8d 51 02             	lea    0x2(%ecx),%edx
40af49:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40af50:	66 8b 01             	mov    (%ecx),%ax
40af53:	83 c1 02             	add    $0x2,%ecx
40af56:	66 85 c0             	test   %ax,%ax
40af59:	75 f5                	jne    0x40af50
40af5b:	2b ca                	sub    %edx,%ecx
40af5d:	d1 f9                	sar    $1,%ecx
40af5f:	8d 1c 4b             	lea    (%ebx,%ecx,2),%ebx
40af62:	83 c3 02             	add    $0x2,%ebx
40af65:	0f 85 46 ff ff ff    	jne    0x40aeb1
40af6b:	8b bd b0 fb ff ff    	mov    -0x450(%ebp),%edi
40af71:	8b cf                	mov    %edi,%ecx
40af73:	e8 38 02 00 00       	call   0x40b1b0
40af78:	85 c0                	test   %eax,%eax
40af7a:	74 07                	je     0x40af83
40af7c:	8b c8                	mov    %eax,%ecx
40af7e:	e8 a3 fd ff ff       	call   0x40ad26
40af83:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40af8a:	8b b5 a4 fb ff ff    	mov    -0x45c(%ebp),%esi
40af90:	57                   	push   %edi
40af91:	81 fe 50 aa 40 00    	cmp    $0x40aa50,%esi
40af97:	74 2b                	je     0x40afc4
40af99:	81 fe c0 c6 40 00    	cmp    $0x40c6c0,%esi
40af9f:	0f 84 87 00 00 00    	je     0x40b02c
40afa5:	81 fe c0 9d 40 00    	cmp    $0x409dc0,%esi
40afab:	0f 84 e7 00 00 00    	je     0x40b098
40afb1:	81 fe 70 97 40 00    	cmp    $0x409770,%esi
40afb7:	0f 85 e5 00 00 00    	jne    0x40b0a2
40afbd:	e8 ae e7 ff ff       	call   0x409770
40afc2:	eb 05                	jmp    0x40afc9
40afc4:	e8 87 fa ff ff       	call   0x40aa50
40afc9:	8b f0                	mov    %eax,%esi
40afcb:	89 b5 ac fb ff ff    	mov    %esi,-0x454(%ebp)
40afd1:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40afd8:	e8 9e 01 00 00       	call   0x40b17b
40afdd:	8d 8d b8 fb ff ff    	lea    -0x448(%ebp),%ecx
40afe3:	e8 fe b1 00 00       	call   0x4161e6
40afe8:	8b c6                	mov    %esi,%eax
40afea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40afed:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40aff4:	59                   	pop    %ecx
40aff5:	5f                   	pop    %edi
40aff6:	5e                   	pop    %esi
40aff7:	5b                   	pop    %ebx
40aff8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40affb:	33 cd                	xor    %ebp,%ecx
40affd:	e8 2e bb 00 00       	call   0x416b30
40b002:	8b e5                	mov    %ebp,%esp
40b004:	5d                   	pop    %ebp
40b005:	c3                   	ret
40b006:	85 db                	test   %ebx,%ebx
40b008:	0f 84 83 fe ff ff    	je     0x40ae91
40b00e:	6a 04                	push   $0x4
40b010:	68 a8 22 40 00       	push   $0x4022a8
40b015:	53                   	push   %ebx
40b016:	ff 15 9c a3 44 00    	call   *0x44a39c
40b01c:	83 c4 0c             	add    $0xc,%esp
40b01f:	85 c0                	test   %eax,%eax
40b021:	0f 85 82 fe ff ff    	jne    0x40aea9
40b027:	e9 65 fe ff ff       	jmp    0x40ae91
40b02c:	e8 8f 16 00 00       	call   0x40c6c0
40b031:	eb 96                	jmp    0x40afc9
40b033:	b9 00 10 00 00       	mov    $0x1000,%ecx
40b038:	33 c0                	xor    %eax,%eax
40b03a:	bf d0 67 43 00       	mov    $0x4367d0,%edi
40b03f:	f3 ab                	rep stos %eax,%es:(%edi)
40b041:	8b fb                	mov    %ebx,%edi
40b043:	8d 4f 02             	lea    0x2(%edi),%ecx
40b046:	66 8b 07             	mov    (%edi),%ax
40b049:	83 c7 02             	add    $0x2,%edi
40b04c:	66 85 c0             	test   %ax,%ax
40b04f:	75 f5                	jne    0x40b046
40b051:	2b f9                	sub    %ecx,%edi
40b053:	d1 ff                	sar    $1,%edi
40b055:	33 d2                	xor    %edx,%edx
40b057:	33 c0                	xor    %eax,%eax
40b059:	85 ff                	test   %edi,%edi
40b05b:	7e 1a                	jle    0x40b077
40b05d:	8d 49 00             	lea    0x0(%ecx),%ecx
40b060:	0f b7 0c 43          	movzwl (%ebx,%eax,2),%ecx
40b064:	83 f9 22             	cmp    $0x22,%ecx
40b067:	74 09                	je     0x40b072
40b069:	66 89 0c 55 d0 67 43 	mov    %cx,0x4367d0(,%edx,2)
40b070:	00
40b071:	42                   	inc    %edx
40b072:	40                   	inc    %eax
40b073:	3b c7                	cmp    %edi,%eax
40b075:	7c e9                	jl     0x40b060
40b077:	03 d2                	add    %edx,%edx
40b079:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
40b07f:	0f 83 0e 01 00 00    	jae    0x40b193
40b085:	33 c0                	xor    %eax,%eax
40b087:	66 89 82 d0 67 43 00 	mov    %ax,0x4367d0(%edx)
40b08e:	ba d0 67 43 00       	mov    $0x4367d0,%edx
40b093:	e9 4d fe ff ff       	jmp    0x40aee5
40b098:	e8 23 ed ff ff       	call   0x409dc0
40b09d:	e9 27 ff ff ff       	jmp    0x40afc9
40b0a2:	81 fe 40 29 41 00    	cmp    $0x412940,%esi
40b0a8:	74 7c                	je     0x40b126
40b0aa:	8b ce                	mov    %esi,%ecx
40b0ac:	ff 15 c4 a4 44 00    	call   *0x44a4c4
40b0b2:	ff d6                	call   *%esi
40b0b4:	e9 10 ff ff ff       	jmp    0x40afc9
40b0b9:	66 8b 08             	mov    (%eax),%cx
40b0bc:	e8 51 5a 00 00       	call   0x410b12
40b0c1:	85 c0                	test   %eax,%eax
40b0c3:	0f 84 80 1b 01 00    	je     0x41cc49
40b0c9:	8b 47 38             	mov    0x38(%edi),%eax
40b0cc:	66 8b 08             	mov    (%eax),%cx
40b0cf:	e8 73 ce ff ff       	call   0x407f47
40b0d4:	85 c0                	test   %eax,%eax
40b0d6:	0f 85 8e 1b 01 00    	jne    0x41cc6a
40b0dc:	8b 47 38             	mov    0x38(%edi),%eax
40b0df:	0f b7 00             	movzwl (%eax),%eax
40b0e2:	50                   	push   %eax
40b0e3:	ff 15 18 a4 44 00    	call   *0x44a418
40b0e9:	83 c4 04             	add    $0x4,%esp
40b0ec:	66 83 e8 40          	sub    $0x40,%ax
40b0f0:	0f b7 f0             	movzwl %ax,%esi
40b0f3:	8b 4f 38             	mov    0x38(%edi),%ecx
40b0f6:	8d 51 02             	lea    0x2(%ecx),%edx
40b0f9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40b100:	66 8b 01             	mov    (%ecx),%ax
40b103:	83 c1 02             	add    $0x2,%ecx
40b106:	66 85 c0             	test   %ax,%ax
40b109:	75 f5                	jne    0x40b100
40b10b:	2b ca                	sub    %edx,%ecx
40b10d:	d1 f9                	sar    $1,%ecx
40b10f:	83 f9 02             	cmp    $0x2,%ecx
40b112:	0f 84 5d 1b 01 00    	je     0x41cc75
40b118:	8b cf                	mov    %edi,%ecx
40b11a:	e8 cf 70 00 00       	call   0x4121ee
40b11f:	8b f0                	mov    %eax,%esi
40b121:	e9 b7 fe ff ff       	jmp    0x40afdd
40b126:	e8 15 78 00 00       	call   0x412940
40b12b:	e9 99 fe ff ff       	jmp    0x40afc9
40b130:	66 83 7b 02 3a       	cmpw   $0x3a,0x2(%ebx)
40b135:	0f 85 01 fe ff ff    	jne    0x40af3c
40b13b:	66 8b 0b             	mov    (%ebx),%cx
40b13e:	e8 cf 59 00 00       	call   0x410b12
40b143:	85 c0                	test   %eax,%eax
40b145:	74 51                	je     0x40b198
40b147:	83 bd a8 fb ff ff 04 	cmpl   $0x4,-0x458(%ebp)
40b14e:	74 10                	je     0x40b160