401c2b:	89 45 f0             	mov    %eax,-0x10(%ebp)
401c2e:	e8 ec 0f 00 00       	call   0x402c1f
401c33:	f6 45 ec 01          	testb  $0x1,-0x14(%ebp)
401c37:	59                   	pop    %ecx
401c38:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401c3b:	59                   	pop    %ecx
401c3c:	89 45 08             	mov    %eax,0x8(%ebp)
401c3f:	74 0a                	je     0x401c4b
401c41:	6a 33                	push   $0x33
401c43:	e8 f9 0f 00 00       	call   0x402c41
401c48:	89 45 f0             	mov    %eax,-0x10(%ebp)
401c4b:	f6 45 ec 02          	testb  $0x2,-0x14(%ebp)
401c4f:	74 0a                	je     0x401c5b
401c51:	6a 44                	push   $0x44
401c53:	e8 e9 0f 00 00       	call   0x402c41
401c58:	89 45 08             	mov    %eax,0x8(%ebp)
401c5b:	83 7d d4 21          	cmpl   $0x21,-0x2c(%ebp)
401c5f:	6a 01                	push   $0x1
401c61:	75 4c                	jne    0x401caf
401c63:	e8 b7 0f 00 00       	call   0x402c1f
401c68:	6a 02                	push   $0x2
401c6a:	8b f8                	mov    %eax,%edi
401c6c:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401c6f:	e8 ab 0f 00 00       	call   0x402c1f
401c74:	59                   	pop    %ecx
401c75:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401c78:	59                   	pop    %ecx
401c79:	8b 4d ec             	mov    -0x14(%ebp),%ecx
401c7c:	c1 f9 02             	sar    $0x2,%ecx
401c7f:	74 1e                	je     0x401c9f
401c81:	8d 55 d0             	lea    -0x30(%ebp),%edx
401c84:	52                   	push   %edx
401c85:	51                   	push   %ecx
401c86:	53                   	push   %ebx
401c87:	ff 75 08             	push   0x8(%ebp)
401c8a:	ff 75 f0             	push   -0x10(%ebp)
401c8d:	50                   	push   %eax
401c8e:	57                   	push   %edi
401c8f:	ff 15 8c 82 40 00    	call   *0x40828c
401c95:	f7 d8                	neg    %eax
401c97:	1b c0                	sbb    %eax,%eax
401c99:	40                   	inc    %eax
401c9a:	89 45 fc             	mov    %eax,-0x4(%ebp)
401c9d:	eb 43                	jmp    0x401ce2
401c9f:	ff 75 08             	push   0x8(%ebp)
401ca2:	ff 75 f0             	push   -0x10(%ebp)
401ca5:	50                   	push   %eax
401ca6:	57                   	push   %edi
401ca7:	ff 15 18 82 40 00    	call   *0x408218
401cad:	eb 30                	jmp    0x401cdf
401caf:	e8 8d 0f 00 00       	call   0x402c41
401cb4:	6a 12                	push   $0x12
401cb6:	8b f8                	mov    %eax,%edi
401cb8:	e8 84 0f 00 00       	call   0x402c41
401cbd:	66 8b 08             	mov    (%eax),%cx
401cc0:	66 f7 d9             	neg    %cx
401cc3:	1b c9                	sbb    %ecx,%ecx
401cc5:	23 c8                	and    %eax,%ecx
401cc7:	66 8b 07             	mov    (%edi),%ax
401cca:	66 f7 d8             	neg    %ax
401ccd:	1b c0                	sbb    %eax,%eax
401ccf:	51                   	push   %ecx
401cd0:	23 c7                	and    %edi,%eax
401cd2:	50                   	push   %eax
401cd3:	ff 75 08             	push   0x8(%ebp)
401cd6:	ff 75 f0             	push   -0x10(%ebp)
401cd9:	ff 15 74 82 40 00    	call   *0x408274
401cdf:	89 45 d0             	mov    %eax,-0x30(%ebp)
401ce2:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
401ce5:	0f 8c da 0d 00 00    	jl     0x402ac5
401ceb:	ff 75 d0             	push   -0x30(%ebp)
401cee:	e9 7a f8 ff ff       	jmp    0x40156d
401cf3:	53                   	push   %ebx
401cf4:	e8 26 0f 00 00       	call   0x402c1f
401cf9:	59                   	pop    %ecx
401cfa:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401cfd:	50                   	push   %eax
401cfe:	ff 15 6c 82 40 00    	call   *0x40826c
401d04:	85 c0                	test   %eax,%eax
401d06:	0f 84 14 fd ff ff    	je     0x401a20
401d0c:	8b 45 dc             	mov    -0x24(%ebp),%eax
401d0f:	e9 bc 0d 00 00       	jmp    0x402ad0
401d14:	6a 02                	push   $0x2
401d16:	e8 04 0f 00 00       	call   0x402c1f
401d1b:	6a 01                	push   $0x1
401d1d:	8b f8                	mov    %eax,%edi
401d1f:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401d22:	e8 f8 0e 00 00       	call   0x402c1f
401d27:	59                   	pop    %ecx
401d28:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401d2b:	59                   	pop    %ecx
401d2c:	57                   	push   %edi
401d2d:	50                   	push   %eax
401d2e:	ff 15 e4 81 40 00    	call   *0x4081e4
401d34:	e9 59 08 00 00       	jmp    0x402592
401d39:	a1 a8 a2 42 00       	mov    0x42a2a8,%eax
401d3e:	8b 4d dc             	mov    -0x24(%ebp),%ecx
401d41:	53                   	push   %ebx
401d42:	8d 34 08             	lea    (%eax,%ecx,1),%esi
401d45:	e8 d5 0e 00 00       	call   0x402c1f
401d4a:	59                   	pop    %ecx
401d4b:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401d4e:	56                   	push   %esi
401d4f:	6a eb                	push   $0xffffffeb
401d51:	50                   	push   %eax
401d52:	ff 15 70 82 40 00    	call   *0x408270
401d58:	e9 68 0d 00 00       	jmp    0x402ac5
401d5d:	ff 75 dc             	push   -0x24(%ebp)
401d60:	ff 75 f8             	push   -0x8(%ebp)
401d63:	ff 15 e4 81 40 00    	call   *0x4081e4
401d69:	8b f0                	mov    %eax,%esi
401d6b:	8d 45 a8             	lea    -0x58(%ebp),%eax
401d6e:	50                   	push   %eax
401d6f:	56                   	push   %esi
401d70:	ff 15 24 82 40 00    	call   *0x408224
401d76:	8b 45 b4             	mov    -0x4c(%ebp),%eax
401d79:	6a 10                	push   $0x10
401d7b:	0f af 45 e0          	imul   -0x20(%ebp),%eax
401d7f:	50                   	push   %eax
401d80:	8b 45 b0             	mov    -0x50(%ebp),%eax
401d83:	0f af 45 e0          	imul   -0x20(%ebp),%eax
401d87:	50                   	push   %eax
401d88:	53                   	push   %ebx
401d89:	53                   	push   %ebx
401d8a:	e8 b2 0e 00 00       	call   0x402c41
401d8f:	50                   	push   %eax
401d90:	53                   	push   %ebx
401d91:	ff 15 60 82 40 00    	call   *0x408260
401d97:	50                   	push   %eax
401d98:	53                   	push   %ebx
401d99:	68 72 01 00 00       	push   $0x172
401d9e:	56                   	push   %esi
401d9f:	ff 15 18 82 40 00    	call   *0x408218
401da5:	3b c3                	cmp    %ebx,%eax
401da7:	0f 84 18 0d 00 00    	je     0x402ac5
401dad:	50                   	push   %eax
401dae:	ff 15 5c 80 40 00    	call   *0x40805c
401db4:	e9 0c 0d 00 00       	jmp    0x402ac5
401db9:	ff 75 f8             	push   -0x8(%ebp)
401dbc:	ff 15 54 82 40 00    	call   *0x408254
401dc2:	6a 02                	push   $0x2
401dc4:	8b f8                	mov    %eax,%edi
401dc6:	e8 54 0e 00 00       	call   0x402c1f
401dcb:	59                   	pop    %ecx
401dcc:	8b d8                	mov    %eax,%ebx
401dce:	6a 48                	push   $0x48
401dd0:	6a 5a                	push   $0x5a
401dd2:	57                   	push   %edi
401dd3:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401dd6:	ff 15 60 80 40 00    	call   *0x408060
401ddc:	50                   	push   %eax
401ddd:	53                   	push   %ebx
401dde:	ff 15 54 81 40 00    	call   *0x408154
401de4:	57                   	push   %edi
401de5:	ff 75 f8             	push   -0x8(%ebp)
401de8:	f7 d8                	neg    %eax
401dea:	a3 d8 cd 40 00       	mov    %eax,0x40cdd8
401def:	ff 15 0c 82 40 00    	call   *0x40820c
401df5:	6a 03                	push   $0x3
401df7:	e8 23 0e 00 00       	call   0x402c1f
401dfc:	a3 e8 cd 40 00       	mov    %eax,0x40cde8
401e01:	8a 45 e8             	mov    -0x18(%ebp),%al
401e04:	59                   	pop    %ecx
401e05:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401e08:	ff 75 dc             	push   -0x24(%ebp)
401e0b:	8a c8                	mov    %al,%cl
401e0d:	80 e1 01             	and    $0x1,%cl
401e10:	c6 05 ef cd 40 00 01 	movb   $0x1,0x40cdef
401e17:	88 0d ec cd 40 00    	mov    %cl,0x40cdec
401e1d:	8a c8                	mov    %al,%cl
401e1f:	80 e1 02             	and    $0x2,%cl
401e22:	24 04                	and    $0x4,%al
401e24:	68 f4 cd 40 00       	push   $0x40cdf4
401e29:	88 0d ed cd 40 00    	mov    %cl,0x40cded
401e2f:	a2 ee cd 40 00       	mov    %al,0x40cdee
401e34:	e8 d1 45 00 00       	call   0x40640a
401e39:	68 d8 cd 40 00       	push   $0x40cdd8
401e3e:	ff 15 54 80 40 00    	call   *0x408054
401e44:	e9 49 07 00 00       	jmp    0x402592
401e49:	53                   	push   %ebx
401e4a:	e8 d0 0d 00 00       	call   0x402c1f
401e4f:	6a 01                	push   $0x1
401e51:	8b f0                	mov    %eax,%esi
401e53:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401e56:	e8 c4 0d 00 00       	call   0x402c1f
401e5b:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401e5e:	59                   	pop    %ecx
401e5f:	59                   	pop    %ecx
401e60:	89 55 b4             	mov    %edx,-0x4c(%ebp)
401e63:	50                   	push   %eax
401e64:	56                   	push   %esi
401e65:	75 0b                	jne    0x401e72
401e67:	ff 15 68 82 40 00    	call   *0x408268
401e6d:	e9 53 0c 00 00       	jmp    0x402ac5
401e72:	ff 15 10 82 40 00    	call   *0x408210
401e78:	e9 48 0c 00 00       	jmp    0x402ac5
401e7d:	53                   	push   %ebx
401e7e:	e8 be 0d 00 00       	call   0x402c41
401e83:	6a 31                	push   $0x31
401e85:	8b f0                	mov    %eax,%esi
401e87:	e8 b5 0d 00 00       	call   0x402c41
401e8c:	6a 22                	push   $0x22
401e8e:	8b d8                	mov    %eax,%ebx
401e90:	e8 ac 0d 00 00       	call   0x402c41
401e95:	6a 15                	push   $0x15
401e97:	8b f8                	mov    %eax,%edi
401e99:	e8 a3 0d 00 00       	call   0x402c41
401e9e:	6a ec                	push   $0xffffffec
401ea0:	e8 7e f5 ff ff       	call   0x401423
401ea5:	8b 45 e8             	mov    -0x18(%ebp),%eax
401ea8:	89 45 80             	mov    %eax,-0x80(%ebp)
401eab:	8b 45 f8             	mov    -0x8(%ebp),%eax
401eae:	89 45 84             	mov    %eax,-0x7c(%ebp)
401eb1:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401eb4:	89 45 98             	mov    %eax,-0x68(%ebp)
401eb7:	66 8b 06             	mov    (%esi),%ax
401eba:	66 f7 d8             	neg    %ax
401ebd:	1b c0                	sbb    %eax,%eax
401ebf:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
401ec2:	23 c6                	and    %esi,%eax
401ec4:	89 45 88             	mov    %eax,-0x78(%ebp)
401ec7:	66 8b 07             	mov    (%edi),%ax
401eca:	66 f7 d8             	neg    %ax
401ecd:	1b c0                	sbb    %eax,%eax
401ecf:	c7 45 94 00 60 43 00 	movl   $0x436000,-0x6c(%ebp)
401ed6:	23 c7                	and    %edi,%eax
401ed8:	89 45 90             	mov    %eax,-0x70(%ebp)
401edb:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
401ee1:	50                   	push   %eax
401ee2:	e8 2d 3b 00 00       	call   0x405a14
401ee7:	85 c0                	test   %eax,%eax
401ee9:	0f 84 9c 09 00 00    	je     0x40288b
401eef:	f6 45 80 40          	testb  $0x40,-0x80(%ebp)
401ef3:	0f 84 cc 0b 00 00    	je     0x402ac5
401ef9:	ff 75 b4             	push   -0x4c(%ebp)
401efc:	e8 72 49 00 00       	call   0x406873
401f01:	ff 75 b4             	push   -0x4c(%ebp)
401f04:	eb 47                	jmp    0x401f4d
401f06:	53                   	push   %ebx
401f07:	e8 35 0d 00 00       	call   0x402c41
401f0c:	8b f0                	mov    %eax,%esi
401f0e:	56                   	push   %esi
401f0f:	6a eb                	push   $0xffffffeb
401f11:	e8 3a 35 00 00       	call   0x405450
401f16:	56                   	push   %esi
401f17:	e8 b5 3a 00 00       	call   0x4059d1
401f1c:	8b f0                	mov    %eax,%esi
401f1e:	3b f3                	cmp    %ebx,%esi
401f20:	0f 84 65 09 00 00    	je     0x40288b
401f26:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
401f29:	74 21                	je     0x401f4c
401f2b:	56                   	push   %esi
401f2c:	e8 42 49 00 00       	call   0x406873
401f31:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
401f34:	7c 0b                	jl     0x401f41
401f36:	50                   	push   %eax
401f37:	ff 75 f4             	push   -0xc(%ebp)
401f3a:	e8 f0 43 00 00       	call   0x40632f
401f3f:	eb 0b                	jmp    0x401f4c
401f41:	3b c3                	cmp    %ebx,%eax
401f43:	74 07                	je     0x401f4c
401f45:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401f4c:	56                   	push   %esi
401f4d:	ff 15 20 81 40 00    	call   *0x408120
401f53:	e9 6d 0b 00 00       	jmp    0x402ac5
401f58:	6a 02                	push   $0x2
401f5a:	e8 e2 0c 00 00       	call   0x402c41
401f5f:	50                   	push   %eax
401f60:	e8 c6 47 00 00       	call   0x40672b
401f65:	8b f8                	mov    %eax,%edi
401f67:	3b fb                	cmp    %ebx,%edi
401f69:	74 13                	je     0x401f7e
401f6b:	ff 77 14             	push   0x14(%edi)
401f6e:	ff 75 f4             	push   -0xc(%ebp)
401f71:	e8 b9 43 00 00       	call   0x40632f
401f76:	ff 77 18             	push   0x18(%edi)
401f79:	e9 ef f5 ff ff       	jmp    0x40156d
401f7e:	8b 45 f4             	mov    -0xc(%ebp),%eax
401f81:	66 89 1e             	mov    %bx,(%esi)
401f84:	66 89 18             	mov    %bx,(%eax)
401f87:	e9 ff 08 00 00       	jmp    0x40288b
401f8c:	6a ee                	push   $0xffffffee
401f8e:	e8 ae 0c 00 00       	call   0x402c41
401f93:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
401f96:	89 45 d0             	mov    %eax,-0x30(%ebp)
401f99:	51                   	push   %ecx
401f9a:	50                   	push   %eax
401f9b:	6a 09                	push   $0x9
401f9d:	e8 20 48 00 00       	call   0x4067c2
401fa2:	ff d0                	call   *%eax
401fa4:	8b f8                	mov    %eax,%edi
401fa6:	8b 45 f4             	mov    -0xc(%ebp),%eax
401fa9:	66 89 1e             	mov    %bx,(%esi)
401fac:	3b fb                	cmp    %ebx,%edi
401fae:	66 89 18             	mov    %bx,(%eax)
401fb1:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401fb8:	0f 84 07 0b 00 00    	je     0x402ac5
401fbe:	57                   	push   %edi
401fbf:	6a 40                	push   $0x40
401fc1:	ff 15 34 81 40 00    	call   *0x408134
401fc7:	3b c3                	cmp    %ebx,%eax
401fc9:	89 45 08             	mov    %eax,0x8(%ebp)
401fcc:	0f 84 f3 0a 00 00    	je     0x402ac5
401fd2:	6a 0a                	push   $0xa
401fd4:	e8 e9 47 00 00       	call   0x4067c2
401fd9:	6a 0b                	push   $0xb
401fdb:	89 45 c8             	mov    %eax,-0x38(%ebp)
401fde:	e8 df 47 00 00       	call   0x4067c2
401fe3:	ff 75 08             	push   0x8(%ebp)
401fe6:	89 45 f0             	mov    %eax,-0x10(%ebp)
401fe9:	57                   	push   %edi
401fea:	53                   	push   %ebx
401feb:	ff 75 d0             	push   -0x30(%ebp)
401fee:	ff 55 c8             	call   *-0x38(%ebp)
401ff1:	85 c0                	test   %eax,%eax
401ff3:	74 34                	je     0x402029
401ff5:	8d 45 b8             	lea    -0x48(%ebp),%eax
401ff8:	50                   	push   %eax
401ff9:	8d 45 c4             	lea    -0x3c(%ebp),%eax
401ffc:	50                   	push   %eax
401ffd:	68 14 a0 40 00       	push   $0x40a014
402002:	ff 75 08             	push   0x8(%ebp)
402005:	ff 55 f0             	call   *-0x10(%ebp)
402008:	85 c0                	test   %eax,%eax
40200a:	74 1d                	je     0x402029
40200c:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40200f:	ff 70 08             	push   0x8(%eax)
402012:	56                   	push   %esi
402013:	e8 17 43 00 00       	call   0x40632f
402018:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40201b:	ff 70 0c             	push   0xc(%eax)
40201e:	ff 75 f4             	push   -0xc(%ebp)
402021:	e8 09 43 00 00       	call   0x40632f
402026:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402029:	ff 75 08             	push   0x8(%ebp)
40202c:	e9 b6 fb ff ff       	jmp    0x401be7
402031:	39 1d 18 a3 42 00    	cmp    %ebx,0x42a318
402037:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40203e:	0f 8c b9 00 00 00    	jl     0x4020fd
402044:	6a f0                	push   $0xfffffff0
402046:	e8 f6 0b 00 00       	call   0x402c41
40204b:	6a 01                	push   $0x1
40204d:	8b f0                	mov    %eax,%esi
40204f:	e8 ed 0b 00 00       	call   0x402c41
402054:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402057:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40205a:	74 0e                	je     0x40206a
40205c:	56                   	push   %esi
40205d:	ff 15 70 81 40 00    	call   *0x408170
402063:	3b c3                	cmp    %ebx,%eax