405a82:	89 3e                	mov    %edi,(%esi)
405a84:	ff 15 f0 32 43 00    	call   *0x4332f0
405a8a:	ff 35 7c 25 43 00    	push   0x43257c
405a90:	8b f8                	mov    %eax,%edi
405a92:	57                   	push   %edi
405a93:	ff 15 ac 30 43 00    	call   *0x4330ac
405a99:	8b 15 c0 18 41 00    	mov    0x4118c0,%edx
405a9f:	8b d8                	mov    %eax,%ebx
405aa1:	8b ca                	mov    %edx,%ecx
405aa3:	8d 41 02             	lea    0x2(%ecx),%eax
405aa6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405aa9:	66 8b 01             	mov    (%ecx),%ax
405aac:	83 c1 02             	add    $0x2,%ecx
405aaf:	66 3b 45 e0          	cmp    -0x20(%ebp),%ax
405ab3:	75 f4                	jne    0x405aa9
405ab5:	2b 4d e4             	sub    -0x1c(%ebp),%ecx
405ab8:	8d 45 d8             	lea    -0x28(%ebp),%eax
405abb:	50                   	push   %eax
405abc:	d1 f9                	sar    $1,%ecx
405abe:	51                   	push   %ecx
405abf:	52                   	push   %edx
405ac0:	57                   	push   %edi
405ac1:	ff 15 8c 30 43 00    	call   *0x43308c
405ac7:	53                   	push   %ebx
405ac8:	57                   	push   %edi
405ac9:	ff 15 ac 30 43 00    	call   *0x4330ac
405acf:	57                   	push   %edi
405ad0:	33 c0                	xor    %eax,%eax
405ad2:	50                   	push   %eax
405ad3:	ff 15 08 33 43 00    	call   *0x433308
405ad9:	8b 4d d8             	mov    -0x28(%ebp),%ecx
405adc:	a1 e4 18 41 00       	mov    0x4118e4,%eax
405ae1:	8b 1d 64 25 43 00    	mov    0x432564,%ebx
405ae7:	8b 3d f4 18 41 00    	mov    0x4118f4,%edi
405aed:	8d 04 41             	lea    (%ecx,%eax,2),%eax
405af0:	89 45 d8             	mov    %eax,-0x28(%ebp)
405af3:	39 06                	cmp    %eax,(%esi)
405af5:	7d 10                	jge    0x405b07
405af7:	8b cf                	mov    %edi,%ecx
405af9:	89 06                	mov    %eax,(%esi)
405afb:	0f af cb             	imul   %ebx,%ecx
405afe:	2b c1                	sub    %ecx,%eax
405b00:	99                   	cltd
405b01:	2b c2                	sub    %edx,%eax
405b03:	d1 f8                	sar    $1,%eax
405b05:	eb 05                	jmp    0x405b0c
405b07:	a1 fc 18 41 00       	mov    0x4118fc,%eax
405b0c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
405b0f:	89 4e 04             	mov    %ecx,0x4(%esi)
405b12:	8b 0d f8 18 41 00    	mov    0x4118f8,%ecx
405b18:	0f af fb             	imul   %ebx,%edi
405b1b:	33 db                	xor    %ebx,%ebx
405b1d:	a3 cc 18 41 00       	mov    %eax,0x4118cc
405b22:	a3 dc 18 41 00       	mov    %eax,0x4118dc
405b27:	89 0d d0 18 41 00    	mov    %ecx,0x4118d0
405b2d:	03 f8                	add    %eax,%edi
405b2f:	a1 f0 18 41 00       	mov    0x4118f0,%eax
405b34:	0f af 05 68 25 43 00 	imul   0x432568,%eax
405b3b:	89 3d d4 18 41 00    	mov    %edi,0x4118d4
405b41:	03 c1                	add    %ecx,%eax
405b43:	a3 d8 18 41 00       	mov    %eax,0x4118d8
405b48:	8d 45 ec             	lea    -0x14(%ebp),%eax
405b4b:	ff 76 04             	push   0x4(%esi)
405b4e:	ff 36                	push   (%esi)
405b50:	53                   	push   %ebx
405b51:	53                   	push   %ebx
405b52:	50                   	push   %eax
405b53:	ff 15 1c 32 43 00    	call   *0x43321c
405b59:	ff 75 08             	push   0x8(%ebp)
405b5c:	8d 45 ec             	lea    -0x14(%ebp),%eax
405b5f:	53                   	push   %ebx
405b60:	68 00 00 c8 00       	push   $0xc80000
405b65:	50                   	push   %eax
405b66:	ff 15 20 32 43 00    	call   *0x433220
405b6c:	8b 45 f4             	mov    -0xc(%ebp),%eax
405b6f:	2b 45 ec             	sub    -0x14(%ebp),%eax
405b72:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405b75:	89 06                	mov    %eax,(%esi)
405b77:	33 cd                	xor    %ebp,%ecx
405b79:	8b 45 f8             	mov    -0x8(%ebp),%eax
405b7c:	2b 45 f0             	sub    -0x10(%ebp),%eax
405b7f:	5f                   	pop    %edi
405b80:	89 46 04             	mov    %eax,0x4(%esi)
405b83:	5e                   	pop    %esi
405b84:	5b                   	pop    %ebx
405b85:	e8 a6 a8 00 00       	call   0x410430
405b8a:	c9                   	leave
405b8b:	c2 10 00             	ret    $0x10
405b8e:	cc                   	int3
405b8f:	cc                   	int3
405b90:	8b ff                	mov    %edi,%edi
405b92:	55                   	push   %ebp
405b93:	8b ec                	mov    %esp,%ebp
405b95:	83 e4 f8             	and    $0xfffffff8,%esp
405b98:	81 ec b4 00 00 00    	sub    $0xb4,%esp
405b9e:	a1 64 10 41 00       	mov    0x411064,%eax
405ba3:	33 c4                	xor    %esp,%eax
405ba5:	89 84 24 b0 00 00 00 	mov    %eax,0xb0(%esp)
405bac:	53                   	push   %ebx
405bad:	56                   	push   %esi
405bae:	8b 75 08             	mov    0x8(%ebp),%esi
405bb1:	b8 11 01 00 00       	mov    $0x111,%eax
405bb6:	57                   	push   %edi
405bb7:	8b 7d 0c             	mov    0xc(%ebp),%edi
405bba:	89 74 24 20          	mov    %esi,0x20(%esp)
405bbe:	3b f8                	cmp    %eax,%edi
405bc0:	0f 87 f2 06 00 00    	ja     0x4062b8
405bc6:	0f 84 d9 06 00 00    	je     0x4062a5
405bcc:	8b c7                	mov    %edi,%eax
405bce:	83 e8 01             	sub    $0x1,%eax
405bd1:	0f 84 f8 08 00 00    	je     0x4064cf
405bd7:	83 e8 01             	sub    $0x1,%eax
405bda:	0f 84 95 06 00 00    	je     0x406275
405be0:	83 e8 0d             	sub    $0xd,%eax
405be3:	0f 84 03 06 00 00    	je     0x4061ec
405be9:	83 e8 01             	sub    $0x1,%eax
405bec:	0f 84 6c 05 00 00    	je     0x40615e
405bf2:	2d f0 00 00 00       	sub    $0xf0,%eax
405bf7:	0f 84 5a 01 00 00    	je     0x405d57
405bfd:	48                   	dec    %eax
405bfe:	83 e8 01             	sub    $0x1,%eax
405c01:	0f 85 dc 06 00 00    	jne    0x4062e3
405c07:	a1 ac 10 41 00       	mov    0x4110ac,%eax
405c0c:	89 44 24 1c          	mov    %eax,0x1c(%esp)
405c10:	a1 a8 10 41 00       	mov    0x4110a8,%eax
405c15:	56                   	push   %esi
405c16:	89 44 24 28          	mov    %eax,0x28(%esp)
405c1a:	ff 15 f0 32 43 00    	call   *0x4332f0
405c20:	8b 3d 64 25 43 00    	mov    0x432564,%edi
405c26:	33 db                	xor    %ebx,%ebx
405c28:	66 8b 4d 10          	mov    0x10(%ebp),%cx
405c2c:	89 44 24 14          	mov    %eax,0x14(%esp)
405c30:	a1 68 25 43 00       	mov    0x432568,%eax
405c35:	48                   	dec    %eax
405c36:	66 89 4c 24 10       	mov    %cx,0x10(%esp)
405c3b:	4f                   	dec    %edi
405c3c:	a3 ac 10 41 00       	mov    %eax,0x4110ac
405c41:	43                   	inc    %ebx
405c42:	8b d7                	mov    %edi,%edx
405c44:	89 3d a8 10 41 00    	mov    %edi,0x4110a8
405c4a:	8b c8                	mov    %eax,%ecx
405c4c:	e8 49 0e 00 00       	call   0x406a9a
405c51:	85 c0                	test   %eax,%eax
405c53:	74 2b                	je     0x405c80
405c55:	8d 4c 24 18          	lea    0x18(%esp),%ecx
405c59:	e8 12 0e 00 00       	call   0x406a70
405c5e:	53                   	push   %ebx
405c5f:	8d 44 24 14          	lea    0x14(%esp),%eax
405c63:	50                   	push   %eax
405c64:	53                   	push   %ebx
405c65:	8b c1                	mov    %ecx,%eax
405c67:	50                   	push   %eax
405c68:	68 03 00 03 00       	push   $0x30003
405c6d:	6a 00                	push   $0x0
405c6f:	ff 15 c0 31 43 00    	call   *0x4331c0
405c75:	8b 3d a8 10 41 00    	mov    0x4110a8,%edi
405c7b:	83 f8 02             	cmp    $0x2,%eax
405c7e:	74 29                	je     0x405ca9
405c80:	a1 ac 10 41 00       	mov    0x4110ac,%eax
405c85:	83 ef 01             	sub    $0x1,%edi
405c88:	8b d7                	mov    %edi,%edx
405c8a:	89 3d a8 10 41 00    	mov    %edi,0x4110a8
405c90:	79 b8                	jns    0x405c4a
405c92:	83 e8 01             	sub    $0x1,%eax
405c95:	a3 ac 10 41 00       	mov    %eax,0x4110ac
405c9a:	0f 88 95 00 00 00    	js     0x405d35
405ca0:	8b 3d 64 25 43 00    	mov    0x432564,%edi
405ca6:	4f                   	dec    %edi
405ca7:	eb 99                	jmp    0x405c42
405ca9:	8b 44 24 1c          	mov    0x1c(%esp),%eax
405cad:	8d 4c 24 28          	lea    0x28(%esp),%ecx
405cb1:	8b 35 ac 10 41 00    	mov    0x4110ac,%esi
405cb7:	a3 ac 10 41 00       	mov    %eax,0x4110ac
405cbc:	8b 44 24 24          	mov    0x24(%esp),%eax
405cc0:	a3 a8 10 41 00       	mov    %eax,0x4110a8
405cc5:	e8 22 0d 00 00       	call   0x4069ec
405cca:	8d 4c 24 18          	lea    0x18(%esp),%ecx
405cce:	e8 9d 0d 00 00       	call   0x406a70
405cd3:	8b 4c 24 14          	mov    0x14(%esp),%ecx
405cd7:	8d 54 24 28          	lea    0x28(%esp),%edx
405cdb:	53                   	push   %ebx
405cdc:	ff 74 24 1c          	push   0x1c(%esp)
405ce0:	6a 00                	push   $0x0
405ce2:	e8 ad 0b 00 00       	call   0x406894
405ce7:	8d 4c 24 28          	lea    0x28(%esp),%ecx
405ceb:	89 35 ac 10 41 00    	mov    %esi,0x4110ac
405cf1:	89 3d a8 10 41 00    	mov    %edi,0x4110a8
405cf7:	e8 f0 0c 00 00       	call   0x4069ec
405cfc:	8d 4c 24 18          	lea    0x18(%esp),%ecx
405d00:	e8 6b 0d 00 00       	call   0x406a70
405d05:	53                   	push   %ebx
405d06:	ff 74 24 1c          	push   0x1c(%esp)
405d0a:	8d 54 24 30          	lea    0x30(%esp),%edx
405d0e:	53                   	push   %ebx
405d0f:	8b 5c 24 20          	mov    0x20(%esp),%ebx
405d13:	8b cb                	mov    %ebx,%ecx
405d15:	e8 7a 0b 00 00       	call   0x406894
405d1a:	53                   	push   %ebx
405d1b:	ff 74 24 24          	push   0x24(%esp)
405d1f:	ff 15 08 33 43 00    	call   *0x433308
405d25:	8b 0d 10 19 43 00    	mov    0x431910,%ecx
405d2b:	e8 0a 78 00 00       	call   0x40d53a
405d30:	e9 9a 07 00 00       	jmp    0x4064cf
405d35:	ff 74 24 14          	push   0x14(%esp)
405d39:	8b 44 24 20          	mov    0x20(%esp),%eax
405d3d:	a3 ac 10 41 00       	mov    %eax,0x4110ac
405d42:	8b 44 24 28          	mov    0x28(%esp),%eax
405d46:	56                   	push   %esi
405d47:	a3 a8 10 41 00       	mov    %eax,0x4110a8
405d4c:	ff 15 08 33 43 00    	call   *0x433308
405d52:	e9 78 07 00 00       	jmp    0x4064cf
405d57:	a1 a8 10 41 00       	mov    0x4110a8,%eax
405d5c:	8b 1d ac 10 41 00    	mov    0x4110ac,%ebx
405d62:	89 44 24 10          	mov    %eax,0x10(%esp)
405d66:	a1 74 25 43 00       	mov    0x432574,%eax
405d6b:	6a ec                	push   $0xffffffec
405d6d:	56                   	push   %esi
405d6e:	8b 40 08             	mov    0x8(%eax),%eax
405d71:	89 44 24 1c          	mov    %eax,0x1c(%esp)
405d75:	ff 15 fc 32 43 00    	call   *0x4332fc
405d7b:	a9 00 00 40 00       	test   $0x400000,%eax
405d80:	8b 45 10             	mov    0x10(%ebp),%eax
405d83:	74 11                	je     0x405d96
405d85:	83 f8 25             	cmp    $0x25,%eax
405d88:	75 04                	jne    0x405d8e
405d8a:	6a 27                	push   $0x27
405d8c:	eb 07                	jmp    0x405d95
405d8e:	83 f8 27             	cmp    $0x27,%eax
405d91:	75 03                	jne    0x405d96
405d93:	6a 25                	push   $0x25
405d95:	58                   	pop    %eax
405d96:	33 f6                	xor    %esi,%esi
405d98:	0f b7 c0             	movzwl %ax,%eax
405d9b:	33 ff                	xor    %edi,%edi
405d9d:	46                   	inc    %esi
405d9e:	83 f8 24             	cmp    $0x24,%eax
405da1:	0f 87 90 01 00 00    	ja     0x405f37
405da7:	0f 84 58 01 00 00    	je     0x405f05
405dad:	83 e8 09             	sub    $0x9,%eax
405db0:	0f 84 f6 00 00 00    	je     0x405eac
405db6:	83 e8 12             	sub    $0x12,%eax
405db9:	0f 84 d6 00 00 00    	je     0x405e95
405dbf:	83 e8 06             	sub    $0x6,%eax
405dc2:	0f 84 99 00 00 00    	je     0x405e61
405dc8:	2b c6                	sub    %esi,%eax
405dca:	74 4a                	je     0x405e16
405dcc:	2b c6                	sub    %esi,%eax
405dce:	0f 85 fb 06 00 00    	jne    0x4064cf
405dd4:	6a 11                	push   $0x11
405dd6:	ff 15 24 32 43 00    	call   *0x433224
405ddc:	66 85 c0             	test   %ax,%ax
405ddf:	74 1d                	je     0x405dfe
405de1:	39 3d c4 18 41 00    	cmp    %edi,0x4118c4
405de7:	74 0c                	je     0x405df5
405de9:	51                   	push   %ecx
405dea:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405dee:	6a 07                	push   $0x7
405df0:	e8 ca 07 00 00       	call   0x4065bf
405df5:	8b 44 24 14          	mov    0x14(%esp),%eax
405df9:	0f b7 58 0c          	movzwl 0xc(%eax),%ebx
405dfd:	4b                   	dec    %ebx
405dfe:	8b 15 64 25 43 00    	mov    0x432564,%edx
405e04:	4a                   	dec    %edx
405e05:	89 74 24 18          	mov    %esi,0x18(%esp)
405e09:	89 54 24 10          	mov    %edx,0x10(%esp)
405e0d:	89 74 24 1c          	mov    %esi,0x1c(%esp)
405e11:	e9 ef 01 00 00       	jmp    0x406005
405e16:	39 3d c4 18 41 00    	cmp    %edi,0x4118c4
405e1c:	74 2b                	je     0x405e49
405e1e:	8b 44 24 14          	mov    0x14(%esp),%eax
405e22:	8b 0d 68 25 43 00    	mov    0x432568,%ecx
405e28:	0f b7 50 0c          	movzwl 0xc(%eax),%edx
405e2c:	8b c2                	mov    %edx,%eax
405e2e:	2b c1                	sub    %ecx,%eax
405e30:	3b d8                	cmp    %eax,%ebx
405e32:	7c 05                	jl     0x405e39
405e34:	8d 5a ff             	lea    -0x1(%edx),%ebx
405e37:	eb 02                	jmp    0x405e3b
405e39:	03 d9                	add    %ecx,%ebx
405e3b:	51                   	push   %ecx
405e3c:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405e40:	6a 03                	push   $0x3
405e42:	e8 78 07 00 00       	call   0x4065bf
405e47:	eb 07                	jmp    0x405e50
405e49:	8b 1d 68 25 43 00    	mov    0x432568,%ebx
405e4f:	4b                   	dec    %ebx
405e50:	8b 54 24 10          	mov    0x10(%esp),%edx
405e54:	89 74 24 18          	mov    %esi,0x18(%esp)
405e58:	89 74 24 1c          	mov    %esi,0x1c(%esp)
405e5c:	e9 a4 01 00 00       	jmp    0x406005
405e61:	39 3d c4 18 41 00    	cmp    %edi,0x4118c4
405e67:	74 1d                	je     0x405e86
405e69:	a1 68 25 43 00       	mov    0x432568,%eax
405e6e:	3b d8                	cmp    %eax,%ebx
405e70:	7d 04                	jge    0x405e76
405e72:	8b df                	mov    %edi,%ebx
405e74:	eb 02                	jmp    0x405e78
405e76:	2b d8                	sub    %eax,%ebx
405e78:	51                   	push   %ecx
405e79:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405e7d:	6a 02                	push   $0x2
405e7f:	e8 3b 07 00 00       	call   0x4065bf
405e84:	eb 02                	jmp    0x405e88
405e86:	8b df                	mov    %edi,%ebx
405e88:	8b 54 24 10          	mov    0x10(%esp),%edx
405e8c:	89 74 24 1c          	mov    %esi,0x1c(%esp)
405e90:	e9 6c 01 00 00       	jmp    0x406001
405e95:	33 c0                	xor    %eax,%eax
405e97:	50                   	push   %eax
405e98:	50                   	push   %eax
405e99:	6a 10                	push   $0x10
405e9b:	ff 35 88 25 43 00    	push   0x432588
405ea1:	ff 15 10 33 43 00    	call   *0x433310
405ea7:	e9 23 06 00 00       	jmp    0x4064cf
405eac:	6a 10                	push   $0x10
405eae:	ff 15 24 32 43 00    	call   *0x433224
405eb4:	66 85 c0             	test   %ax,%ax
405eb7:	0f 85 0a 01 00 00    	jne    0x405fc7
405ebd:	a1 64 25 43 00       	mov    0x432564,%eax
405ec2:	8b 54 24 10          	mov    0x10(%esp),%edx
405ec6:	48                   	dec    %eax
405ec7:	3b d0                	cmp    %eax,%edx
405ec9:	0f 85 c8 00 00 00    	jne    0x405f97
405ecf:	8b 44 24 14          	mov    0x14(%esp),%eax
405ed3:	0f b7 40 0c          	movzwl 0xc(%eax),%eax
405ed7:	48                   	dec    %eax
405ed8:	3b d8                	cmp    %eax,%ebx
405eda:	0f 8d bc 00 00 00    	jge    0x405f9c
405ee0:	8b d7                	mov    %edi,%edx
405ee2:	43                   	inc    %ebx
405ee3:	89 54 24 10          	mov    %edx,0x10(%esp)
405ee7:	39 15 c4 18 41 00    	cmp    %edx,0x4118c4
405eed:	0f 84 a9 00 00 00    	je     0x405f9c
405ef3:	51                   	push   %ecx
405ef4:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405ef8:	56                   	push   %esi
405ef9:	e8 c1 06 00 00       	call   0x4065bf
405efe:	8b d7                	mov    %edi,%edx
405f00:	e9 97 00 00 00       	jmp    0x405f9c
405f05:	6a 11                	push   $0x11
405f07:	ff 15 24 32 43 00    	call   *0x433224
405f0d:	66 85 c0             	test   %ax,%ax
405f10:	74 16                	je     0x405f28
405f12:	39 3d c4 18 41 00    	cmp    %edi,0x4118c4
405f18:	74 0c                	je     0x405f26
405f1a:	51                   	push   %ecx
405f1b:	8b 4c 24 24          	mov    0x24(%esp),%ecx
405f1f:	6a 06                	push   $0x6
405f21:	e8 99 06 00 00       	call   0x4065bf
405f26:	8b df                	mov    %edi,%ebx