41ab56:	40                   	inc    %eax
41ab57:	0f b7 c0             	movzwl %ax,%eax
41ab5a:	0f b7 f0             	movzwl %ax,%esi
41ab5d:	03 f6                	add    %esi,%esi
41ab5f:	89 45 f8             	mov    %eax,-0x8(%ebp)
41ab62:	56                   	push   %esi
41ab63:	53                   	push   %ebx
41ab64:	57                   	push   %edi
41ab65:	e8 d8 d0 ff ff       	call   0x417c42
41ab6a:	83 c4 0c             	add    $0xc,%esp
41ab6d:	33 c0                	xor    %eax,%eax
41ab6f:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
41ab73:	8b 75 f4             	mov    -0xc(%ebp),%esi
41ab76:	68 70 26 40 00       	push   $0x402670
41ab7b:	8b d6                	mov    %esi,%edx
41ab7d:	8b cf                	mov    %edi,%ecx
41ab7f:	e8 bc 50 ff ff       	call   0x40fc40
41ab84:	8b 4d f8             	mov    -0x8(%ebp),%ecx
41ab87:	8b d6                	mov    %esi,%edx
41ab89:	0f b7 c1             	movzwl %cx,%eax
41ab8c:	8b cf                	mov    %edi,%ecx
41ab8e:	8d 04 43             	lea    (%ebx,%eax,2),%eax
41ab91:	50                   	push   %eax
41ab92:	e8 a9 50 ff ff       	call   0x40fc40
41ab97:	e9 ef cc fe ff       	jmp    0x40788b
41ab9c:	8b 0d 0c 95 44 00    	mov    0x44950c,%ecx
41aba2:	3b cf                	cmp    %edi,%ecx
41aba4:	0f 82 c9 00 00 00    	jb     0x41ac73
41abaa:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41abad:	33 f6                	xor    %esi,%esi
41abaf:	50                   	push   %eax
41abb0:	53                   	push   %ebx
41abb1:	89 35 0c 95 44 00    	mov    %esi,0x44950c
41abb7:	ff 15 28 a0 44 00    	call   *0x44a028
41abbd:	85 c0                	test   %eax,%eax
41abbf:	0f 84 a5 00 00 00    	je     0x41ac6a
41abc5:	56                   	push   %esi
41abc6:	8d 45 c8             	lea    -0x38(%ebp),%eax
41abc9:	50                   	push   %eax
41abca:	ff 35 04 95 44 00    	push   0x449504
41abd0:	ff 35 08 95 44 00    	push   0x449508
41abd6:	53                   	push   %ebx
41abd7:	ff 15 0c a0 44 00    	call   *0x44a00c
41abdd:	85 c0                	test   %eax,%eax
41abdf:	0f 84 85 00 00 00    	je     0x41ac6a
41abe5:	6a f6                	push   $0xfffffff6
41abe7:	ff 15 bc a1 44 00    	call   *0x44a1bc
41abed:	50                   	push   %eax
41abee:	ff 15 30 a0 44 00    	call   *0x44a030
41abf4:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41abf7:	50                   	push   %eax
41abf8:	53                   	push   %ebx
41abf9:	ff 15 10 a0 44 00    	call   *0x44a010
41abff:	56                   	push   %esi
41ac00:	53                   	push   %ebx
41ac01:	ff 15 14 a0 44 00    	call   *0x44a014
41ac07:	ff 15 a8 a3 44 00    	call   *0x44a3a8
41ac0d:	ff 75 b4             	push   -0x4c(%ebp)
41ac10:	0f b7 f8             	movzwl %ax,%edi
41ac13:	53                   	push   %ebx
41ac14:	ff 15 14 a0 44 00    	call   *0x44a014
41ac1a:	8d 45 cc             	lea    -0x34(%ebp),%eax
41ac1d:	50                   	push   %eax
41ac1e:	53                   	push   %ebx
41ac1f:	ff 15 28 a0 44 00    	call   *0x44a028
41ac25:	0f bf 4d ea          	movswl -0x16(%ebp),%ecx
41ac29:	8d 45 c8             	lea    -0x38(%ebp),%eax
41ac2c:	0f bf 55 e4          	movswl -0x1c(%ebp),%edx
41ac30:	0f bf 75 cc          	movswl -0x34(%ebp),%esi
41ac34:	0f af d1             	imul   %ecx,%edx
41ac37:	0f bf 4d d2          	movswl -0x2e(%ebp),%ecx
41ac3b:	50                   	push   %eax
41ac3c:	8b 45 e8             	mov    -0x18(%ebp),%eax
41ac3f:	0f af f1             	imul   %ecx,%esi
41ac42:	50                   	push   %eax
41ac43:	98                   	cwtl
41ac44:	2b f2                	sub    %edx,%esi
41ac46:	03 f0                	add    %eax,%esi
41ac48:	0f bf 45 d0          	movswl -0x30(%ebp),%eax
41ac4c:	03 f0                	add    %eax,%esi
41ac4e:	56                   	push   %esi
41ac4f:	6a 20                	push   $0x20
41ac51:	53                   	push   %ebx
41ac52:	ff 15 34 a0 44 00    	call   *0x44a034
41ac58:	ff 75 e8             	push   -0x18(%ebp)
41ac5b:	53                   	push   %ebx
41ac5c:	ff 15 38 a0 44 00    	call   *0x44a038
41ac62:	83 ff 03             	cmp    $0x3,%edi
41ac65:	74 3f                	je     0x41aca6
41ac67:	8b 7d bc             	mov    -0x44(%ebp),%edi
41ac6a:	8b 0d 0c 95 44 00    	mov    0x44950c,%ecx
41ac70:	8b 55 c0             	mov    -0x40(%ebp),%edx
41ac73:	8b 45 c4             	mov    -0x3c(%ebp),%eax
41ac76:	8b f2                	mov    %edx,%esi
41ac78:	8d 04 42             	lea    (%edx,%eax,2),%eax
41ac7b:	89 45 b0             	mov    %eax,-0x50(%ebp)
41ac7e:	3b d0                	cmp    %eax,%edx
41ac80:	73 1b                	jae    0x41ac9d
41ac82:	3b cf                	cmp    %edi,%ecx
41ac84:	73 11                	jae    0x41ac97
41ac86:	0f b7 06             	movzwl (%esi),%eax
41ac89:	83 c6 02             	add    $0x2,%esi
41ac8c:	83 f8 0a             	cmp    $0xa,%eax
41ac8f:	75 01                	jne    0x41ac92
41ac91:	41                   	inc    %ecx
41ac92:	3b 75 b0             	cmp    -0x50(%ebp),%esi
41ac95:	72 eb                	jb     0x41ac82
41ac97:	89 0d 0c 95 44 00    	mov    %ecx,0x44950c
41ac9d:	2b f2                	sub    %edx,%esi
41ac9f:	d1 fe                	sar    $1,%esi
41aca1:	e9 0f cd fe ff       	jmp    0x4079b5
41aca6:	ff 35 a4 25 43 00    	push   0x4325a4
41acac:	ff 15 9c a2 44 00    	call   *0x44a29c
41acb2:	ff 35 a4 25 43 00    	push   0x4325a4
41acb8:	c7 05 9c 25 43 00 01 	movl   $0x1,0x43259c
41acbf:	00 00 00
41acc2:	ff 15 a8 a2 44 00    	call   *0x44a2a8
41acc8:	33 c0                	xor    %eax,%eax
41acca:	e9 19 cd fe ff       	jmp    0x4079e8
41accf:	83 7d b8 02          	cmpl   $0x2,-0x48(%ebp)
41acd3:	0f 85 0f cd fe ff    	jne    0x4079e8
41acd9:	6a 00                	push   $0x0
41acdb:	e8 90 71 ff ff       	call   0x411e70
41ace0:	85 c0                	test   %eax,%eax
41ace2:	74 f5                	je     0x41acd9
41ace4:	6a 01                	push   $0x1
41ace6:	ff 15 a4 a3 44 00    	call   *0x44a3a4
41acec:	cc                   	int3
41aced:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
41acf2:	e9 15 cf fe ff       	jmp    0x407c0c
41acf7:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41acfd:	e9 26 cf fe ff       	jmp    0x407c28
41ad02:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41ad05:	85 c9                	test   %ecx,%ecx
41ad07:	75 06                	jne    0x41ad0f
41ad09:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41ad0f:	e8 94 a1 ff ff       	call   0x414ea8
41ad14:	66 83 38 2e          	cmpw   $0x2e,(%eax)
41ad18:	0f 85 30 cf fe ff    	jne    0x407c4e
41ad1e:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41ad21:	85 c9                	test   %ecx,%ecx
41ad23:	75 06                	jne    0x41ad2b
41ad25:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41ad2b:	33 c0                	xor    %eax,%eax
41ad2d:	66 89 44 71 fc       	mov    %ax,-0x4(%ecx,%esi,2)
41ad32:	e9 29 cf fe ff       	jmp    0x407c60
41ad37:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41ad3d:	e9 17 cf fe ff       	jmp    0x407c59
41ad42:	b8 70 26 40 00       	mov    $0x402670,%eax
41ad47:	e9 30 cf fe ff       	jmp    0x407c7c
41ad4c:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
41ad52:	e9 3f cf fe ff       	jmp    0x407c96
41ad57:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
41ad5d:	85 c9                	test   %ecx,%ecx
41ad5f:	75 06                	jne    0x41ad67
41ad61:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
41ad67:	8d 51 02             	lea    0x2(%ecx),%edx
41ad6a:	66 8b 01             	mov    (%ecx),%ax
41ad6d:	83 c1 02             	add    $0x2,%ecx
41ad70:	66 3b c6             	cmp    %si,%ax
41ad73:	75 f5                	jne    0x41ad6a
41ad75:	2b ca                	sub    %edx,%ecx
41ad77:	d1 f9                	sar    $1,%ecx
41ad79:	8d 41 03             	lea    0x3(%ecx),%eax
41ad7c:	3d e7 7f 00 00       	cmp    $0x7fe7,%eax
41ad81:	0f 87 53 cf fe ff    	ja     0x407cda
41ad87:	80 bd c6 fb ff ff 00 	cmpb   $0x0,-0x43a(%ebp)
41ad8e:	0f 84 46 cf fe ff    	je     0x407cda
41ad94:	80 7b 08 00          	cmpb   $0x0,0x8(%ebx)
41ad98:	0f 84 3c cf fe ff    	je     0x407cda
41ad9e:	68 bc 24 40 00       	push   $0x4024bc
41ada3:	8d 8d c8 fb ff ff    	lea    -0x438(%ebp),%ecx
41ada9:	e8 7e 75 ff ff       	call   0x41232c
41adae:	e9 27 cf fe ff       	jmp    0x407cda
41adb3:	50                   	push   %eax
41adb4:	ff 77 04             	push   0x4(%edi)
41adb7:	ff 15 40 a4 44 00    	call   *0x44a440
41adbd:	59                   	pop    %ecx
41adbe:	59                   	pop    %ecx
41adbf:	85 c0                	test   %eax,%eax
41adc1:	74 42                	je     0x41ae05
41adc3:	6a 30                	push   $0x30
41adc5:	59                   	pop    %ecx
41adc6:	e8 05 2f ff ff       	call   0x40dcd0
41adcb:	8b f0                	mov    %eax,%esi
41adcd:	85 f6                	test   %esi,%esi
41adcf:	74 7e                	je     0x41ae4f
41add1:	89 37                	mov    %esi,(%edi)
41add3:	8b bd c0 fb ff ff    	mov    -0x440(%ebp),%edi
41add9:	89 b5 b8 fb ff ff    	mov    %esi,-0x448(%ebp)
41addf:	8b 4f 04             	mov    0x4(%edi),%ecx
41ade2:	e8 64 57 ff ff       	call   0x41054b
41ade7:	89 46 04             	mov    %eax,0x4(%esi)
41adea:	33 c0                	xor    %eax,%eax
41adec:	89 06                	mov    %eax,(%esi)
41adee:	8a 47 08             	mov    0x8(%edi),%al
41adf1:	88 46 10             	mov    %al,0x10(%esi)
41adf4:	89 7e 0c             	mov    %edi,0xc(%esi)
41adf7:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
41adfe:	8b f7                	mov    %edi,%esi
41ae00:	e9 1e cf fe ff       	jmp    0x407d23
41ae05:	ff 47 08             	incl   0x8(%edi)
41ae08:	e9 16 cf fe ff       	jmp    0x407d23
41ae0d:	33 f6                	xor    %esi,%esi
41ae0f:	80 bd c7 fb ff ff 00 	cmpb   $0x0,-0x439(%ebp)
41ae16:	0f 84 a3 cd fe ff    	je     0x407bbf
41ae1c:	56                   	push   %esi
41ae1d:	51                   	push   %ecx
41ae1e:	e9 95 cd fe ff       	jmp    0x407bb8
41ae23:	80 bd c7 fb ff ff 00 	cmpb   $0x0,-0x439(%ebp)
41ae2a:	0f 84 8f cd fe ff    	je     0x407bbf
41ae30:	56                   	push   %esi
41ae31:	6a 6f                	push   $0x6f
41ae33:	e9 80 cd fe ff       	jmp    0x407bb8
41ae38:	33 f6                	xor    %esi,%esi
41ae3a:	80 bd c7 fb ff ff 00 	cmpb   $0x0,-0x439(%ebp)
41ae41:	0f 84 78 cd fe ff    	je     0x407bbf
41ae47:	56                   	push   %esi
41ae48:	6a 02                	push   $0x2
41ae4a:	e9 69 cd fe ff       	jmp    0x407bb8
41ae4f:	e8 ce ea 00 00       	call   0x429922
41ae54:	6a 01                	push   $0x1
41ae56:	68 30 0a 44 00       	push   $0x440a30
41ae5b:	ff 15 30 a4 44 00    	call   *0x44a430
41ae61:	33 f6                	xor    %esi,%esi
41ae63:	80 bd c7 fb ff ff 00 	cmpb   $0x0,-0x439(%ebp)
41ae6a:	0f 84 4f cd fe ff    	je     0x407bbf
41ae70:	56                   	push   %esi
41ae71:	68 74 23 00 00       	push   $0x2374
41ae76:	e9 3d cd fe ff       	jmp    0x407bb8
41ae7b:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
41ae81:	e9 76 cf fe ff       	jmp    0x407dfc
41ae86:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
41ae8c:	e9 81 cf fe ff       	jmp    0x407e12
41ae91:	8b 95 dc fd ff ff    	mov    -0x224(%ebp),%edx
41ae97:	8b ce                	mov    %esi,%ecx
41ae99:	50                   	push   %eax
41ae9a:	e8 01 45 ff ff       	call   0x40f3a0
41ae9f:	6a 5c                	push   $0x5c
41aea1:	5a                   	pop    %edx
41aea2:	6a 3a                	push   $0x3a
41aea4:	59                   	pop    %ecx
41aea5:	e9 8c cf fe ff       	jmp    0x407e36
41aeaa:	66 39 56 02          	cmp    %dx,0x2(%esi)
41aeae:	0f 85 93 cf fe ff    	jne    0x407e47
41aeb4:	8d 4e 04             	lea    0x4(%esi),%ecx
41aeb7:	e8 73 f7 fe ff       	call   0x40a62f
41aebc:	85 c0                	test   %eax,%eax
41aebe:	74 4b                	je     0x41af0b
41aec0:	6a 5c                	push   $0x5c
41aec2:	8d 48 02             	lea    0x2(%eax),%ecx
41aec5:	5a                   	pop    %edx
41aec6:	e8 64 f7 fe ff       	call   0x40a62f
41aecb:	8b f8                	mov    %eax,%edi
41aecd:	85 ff                	test   %edi,%edi
41aecf:	74 08                	je     0x41aed9
41aed1:	0f b7 1f             	movzwl (%edi),%ebx
41aed4:	33 c0                	xor    %eax,%eax
41aed6:	66 89 07             	mov    %ax,(%edi)
41aed9:	8b ce                	mov    %esi,%ecx
41aedb:	8d 51 02             	lea    0x2(%ecx),%edx
41aede:	66 8b 01             	mov    (%ecx),%ax
41aee1:	83 c1 02             	add    $0x2,%ecx
41aee4:	66 3b 85 d8 fd ff ff 	cmp    -0x228(%ebp),%ax
41aeeb:	75 f1                	jne    0x41aede
41aeed:	2b ca                	sub    %edx,%ecx
41aeef:	d1 f9                	sar    $1,%ecx
41aef1:	81 f9 e7 7f 00 00    	cmp    $0x7fe7,%ecx
41aef7:	76 1b                	jbe    0x41af14
41aef9:	66 85 db             	test   %bx,%bx
41aefc:	74 03                	je     0x41af01
41aefe:	66 89 1f             	mov    %bx,(%edi)
41af01:	c7 05 a8 67 43 00 ce 	movl   $0xce,0x4367a8
41af08:	00 00 00
41af0b:	33 c0                	xor    %eax,%eax
41af0d:	8a d8                	mov    %al,%bl
41af0f:	e9 54 cf fe ff       	jmp    0x407e68
41af14:	8b 55 0c             	mov    0xc(%ebp),%edx
41af17:	8b 8d d4 fd ff ff    	mov    -0x22c(%ebp),%ecx
41af1d:	56                   	push   %esi
41af1e:	e8 7d 44 ff ff       	call   0x40f3a0
41af23:	66 85 db             	test   %bx,%bx
41af26:	0f 84 39 cf fe ff    	je     0x407e65
41af2c:	66 89 1f             	mov    %bx,(%edi)
41af2f:	e9 31 cf fe ff       	jmp    0x407e65
41af34:	cc                   	int3
41af35:	cc                   	int3
41af36:	66 3b d3             	cmp    %bx,%dx
41af39:	0f 85 ab cf fe ff    	jne    0x407eea
41af3f:	83 c1 02             	add    $0x2,%ecx
41af42:	e9 a3 cf fe ff       	jmp    0x407eea
41af47:	8b c6                	mov    %esi,%eax
41af49:	c1 e0 02             	shl    $0x2,%eax
41af4c:	50                   	push   %eax
41af4d:	6a 00                	push   $0x0
41af4f:	ff 15 34 a1 44 00    	call   *0x44a134
41af55:	50                   	push   %eax
41af56:	ff 15 28 a1 44 00    	call   *0x44a128
41af5c:	8b d8                	mov    %eax,%ebx
41af5e:	85 db                	test   %ebx,%ebx
41af60:	0f 84 ba cf fe ff    	je     0x407f20
41af66:	33 c9                	xor    %ecx,%ecx
41af68:	85 f6                	test   %esi,%esi
41af6a:	74 24                	je     0x41af90
41af6c:	8b 55 08             	mov    0x8(%ebp),%edx
41af6f:	8b 7d 98             	mov    -0x68(%ebp),%edi
41af72:	3b ca                	cmp    %edx,%ecx
41af74:	73 0a                	jae    0x41af80
41af76:	83 07 04             	addl   $0x4,(%edi)
41af79:	8b 07                	mov    (%edi),%eax
41af7b:	8b 40 fc             	mov    -0x4(%eax),%eax
41af7e:	eb 05                	jmp    0x41af85
41af80:	b8 4c 23 40 00       	mov    $0x40234c,%eax
41af85:	89 04 8b             	mov    %eax,(%ebx,%ecx,4)
41af88:	41                   	inc    %ecx
41af89:	3b ce                	cmp    %esi,%ecx
41af8b:	72 e5                	jb     0x41af72
41af8d:	8b 7d 94             	mov    -0x6c(%ebp),%edi
41af90:	53                   	push   %ebx
41af91:	68 00 20 00 00       	push   $0x2000
41af96:	68 f0 0a 44 00       	push   $0x440af0
41af9b:	6a 00                	push   $0x0
41af9d:	57                   	push   %edi
41af9e:	6a 00                	push   $0x0
41afa0:	68 00 38 00 00       	push   $0x3800
41afa5:	ff 15 88 a1 44 00    	call   *0x44a188
41afab:	53                   	push   %ebx
41afac:	6a 00                	push   $0x0
41afae:	8b f0                	mov    %eax,%esi
41afb0:	ff 15 34 a1 44 00    	call   *0x44a134
41afb6:	50                   	push   %eax
41afb7:	ff 15 3c a1 44 00    	call   *0x44a13c
41afbd:	e9 5c cf fe ff       	jmp    0x407f1e
41afc2:	6a 10                	push   $0x10
41afc4:	8d 45 dc             	lea    -0x24(%ebp),%eax
41afc7:	50                   	push   %eax
41afc8:	57                   	push   %edi
41afc9:	ff 15 90 a3 44 00    	call   *0x44a390
41afcf:	83 c4 0c             	add    $0xc,%esp
41afd2:	8d 45 9c             	lea    -0x64(%ebp),%eax
41afd5:	6a 20                	push   $0x20
41afd7:	50                   	push   %eax
41afd8:	6a ff                	push   $0xffffffff
41afda:	8d 45 dc             	lea    -0x24(%ebp),%eax
41afdd:	50                   	push   %eax
41afde:	ff 15 90 a1 44 00    	call   *0x44a190
41afe4:	8b c8                	mov    %eax,%ecx
41afe6:	e8 5d 32 ff ff       	call   0x40e248
41afeb:	f7 d8                	neg    %eax
41afed:	1b c0                	sbb    %eax,%eax