401c20:	ff 75 cc             	push   -0x34(%ebp)
401c23:	50                   	push   %eax
401c24:	57                   	push   %edi
401c25:	ff 15 44 72 40 00    	call   *0x407244
401c2b:	eb 2c                	jmp    0x401c59
401c2d:	e8 c4 0d 00 00       	call   0x4029f6
401c32:	6a 12                	push   $0x12
401c34:	8b f8                	mov    %eax,%edi
401c36:	e8 bb 0d 00 00       	call   0x4029f6
401c3b:	8a 08                	mov    (%eax),%cl
401c3d:	f6 d9                	neg    %cl
401c3f:	1b c9                	sbb    %ecx,%ecx
401c41:	23 c8                	and    %eax,%ecx
401c43:	8a 07                	mov    (%edi),%al
401c45:	f6 d8                	neg    %al
401c47:	1b c0                	sbb    %eax,%eax
401c49:	51                   	push   %ecx
401c4a:	23 c7                	and    %edi,%eax
401c4c:	50                   	push   %eax
401c4d:	ff 75 08             	push   0x8(%ebp)
401c50:	ff 75 cc             	push   -0x34(%ebp)
401c53:	ff 15 08 72 40 00    	call   *0x407208
401c59:	89 45 f8             	mov    %eax,-0x8(%ebp)
401c5c:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
401c5f:	0f 8c 26 0c 00 00    	jl     0x40288b
401c65:	ff 75 f8             	push   -0x8(%ebp)
401c68:	e9 f4 f8 ff ff       	jmp    0x401561
401c6d:	53                   	push   %ebx
401c6e:	e8 66 0d 00 00       	call   0x4029d9
401c73:	50                   	push   %eax
401c74:	ff 15 28 72 40 00    	call   *0x407228
401c7a:	85 c0                	test   %eax,%eax
401c7c:	0f 84 54 fd ff ff    	je     0x4019d6
401c82:	8b 45 e0             	mov    -0x20(%ebp),%eax
401c85:	e9 0c 0c 00 00       	jmp    0x402896
401c8a:	6a 02                	push   $0x2
401c8c:	e8 48 0d 00 00       	call   0x4029d9
401c91:	50                   	push   %eax
401c92:	6a 01                	push   $0x1
401c94:	e8 40 0d 00 00       	call   0x4029d9
401c99:	50                   	push   %eax
401c9a:	ff 15 2c 72 40 00    	call   *0x40722c
401ca0:	e9 13 08 00 00       	jmp    0x4024b8
401ca5:	a1 e8 3e 42 00       	mov    0x423ee8,%eax
401caa:	03 c2                	add    %edx,%eax
401cac:	50                   	push   %eax
401cad:	6a eb                	push   $0xffffffeb
401caf:	53                   	push   %ebx
401cb0:	e8 24 0d 00 00       	call   0x4029d9
401cb5:	50                   	push   %eax
401cb6:	ff 15 30 72 40 00    	call   *0x407230
401cbc:	e9 ca 0b 00 00       	jmp    0x40288b
401cc1:	52                   	push   %edx
401cc2:	ff 75 cc             	push   -0x34(%ebp)
401cc5:	ff 15 2c 72 40 00    	call   *0x40722c
401ccb:	8b f0                	mov    %eax,%esi
401ccd:	8d 45 c0             	lea    -0x40(%ebp),%eax
401cd0:	50                   	push   %eax
401cd1:	56                   	push   %esi
401cd2:	ff 15 50 72 40 00    	call   *0x407250
401cd8:	8b 45 cc             	mov    -0x34(%ebp),%eax
401cdb:	6a 10                	push   $0x10
401cdd:	0f af 45 e4          	imul   -0x1c(%ebp),%eax
401ce1:	50                   	push   %eax
401ce2:	8b 45 c8             	mov    -0x38(%ebp),%eax
401ce5:	0f af 45 e4          	imul   -0x1c(%ebp),%eax
401ce9:	50                   	push   %eax
401cea:	53                   	push   %ebx
401ceb:	53                   	push   %ebx
401cec:	e8 05 0d 00 00       	call   0x4029f6
401cf1:	50                   	push   %eax
401cf2:	53                   	push   %ebx
401cf3:	ff 15 34 72 40 00    	call   *0x407234
401cf9:	50                   	push   %eax
401cfa:	53                   	push   %ebx
401cfb:	68 72 01 00 00       	push   $0x172
401d00:	56                   	push   %esi
401d01:	ff 15 44 72 40 00    	call   *0x407244
401d07:	3b c3                	cmp    %ebx,%eax
401d09:	0f 84 7c 0b 00 00    	je     0x40288b
401d0f:	50                   	push   %eax
401d10:	ff 15 44 70 40 00    	call   *0x407044
401d16:	e9 70 0b 00 00       	jmp    0x40288b
401d1b:	6a 48                	push   $0x48
401d1d:	6a 5a                	push   $0x5a
401d1f:	ff 75 cc             	push   -0x34(%ebp)
401d22:	ff 15 38 72 40 00    	call   *0x407238
401d28:	50                   	push   %eax
401d29:	ff 15 40 70 40 00    	call   *0x407040
401d2f:	50                   	push   %eax
401d30:	6a 02                	push   $0x2
401d32:	e8 a2 0c 00 00       	call   0x4029d9
401d37:	50                   	push   %eax
401d38:	ff 15 30 71 40 00    	call   *0x407130
401d3e:	f7 d8                	neg    %eax
401d40:	6a 03                	push   $0x3
401d42:	a3 74 af 40 00       	mov    %eax,0x40af74
401d47:	e8 8d 0c 00 00       	call   0x4029d9
401d4c:	a3 84 af 40 00       	mov    %eax,0x40af84
401d51:	8a 45 ec             	mov    -0x14(%ebp),%al
401d54:	ff 75 e0             	push   -0x20(%ebp)
401d57:	8a c8                	mov    %al,%cl
401d59:	80 e1 01             	and    $0x1,%cl
401d5c:	c6 05 8b af 40 00 01 	movb   $0x1,0x40af8b
401d63:	88 0d 88 af 40 00    	mov    %cl,0x40af88
401d69:	8a c8                	mov    %al,%cl
401d6b:	80 e1 02             	and    $0x2,%cl
401d6e:	24 04                	and    $0x4,%al
401d70:	68 90 af 40 00       	push   $0x40af90
401d75:	88 0d 89 af 40 00    	mov    %cl,0x40af89
401d7b:	a2 8a af 40 00       	mov    %al,0x40af8a
401d80:	e8 03 3e 00 00       	call   0x405b88
401d85:	68 74 af 40 00       	push   $0x40af74
401d8a:	ff 15 4c 70 40 00    	call   *0x40704c
401d90:	e9 23 07 00 00       	jmp    0x4024b8
401d95:	53                   	push   %ebx
401d96:	e8 3e 0c 00 00       	call   0x4029d9
401d9b:	6a 01                	push   $0x1
401d9d:	8b f0                	mov    %eax,%esi
401d9f:	e8 35 0c 00 00       	call   0x4029d9
401da4:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
401da7:	50                   	push   %eax
401da8:	56                   	push   %esi
401da9:	75 0b                	jne    0x401db6
401dab:	ff 15 60 72 40 00    	call   *0x407260
401db1:	e9 d5 0a 00 00       	jmp    0x40288b
401db6:	ff 15 3c 72 40 00    	call   *0x40723c
401dbc:	e9 ca 0a 00 00       	jmp    0x40288b
401dc1:	53                   	push   %ebx
401dc2:	e8 2f 0c 00 00       	call   0x4029f6
401dc7:	6a 31                	push   $0x31
401dc9:	8b f0                	mov    %eax,%esi
401dcb:	e8 26 0c 00 00       	call   0x4029f6
401dd0:	6a 22                	push   $0x22
401dd2:	8b d8                	mov    %eax,%ebx
401dd4:	e8 1d 0c 00 00       	call   0x4029f6
401dd9:	6a 15                	push   $0x15
401ddb:	8b f8                	mov    %eax,%edi
401ddd:	e8 14 0c 00 00       	call   0x4029f6
401de2:	6a ec                	push   $0xffffffec
401de4:	e8 3a f6 ff ff       	call   0x401423
401de9:	8a 07                	mov    (%edi),%al
401deb:	ff 75 e8             	push   -0x18(%ebp)
401dee:	f6 d8                	neg    %al
401df0:	1b c0                	sbb    %eax,%eax
401df2:	68 00 98 42 00       	push   $0x429800
401df7:	23 c7                	and    %edi,%eax
401df9:	50                   	push   %eax
401dfa:	8a 06                	mov    (%esi),%al
401dfc:	f6 d8                	neg    %al
401dfe:	1b c0                	sbb    %eax,%eax
401e00:	53                   	push   %ebx
401e01:	23 c6                	and    %esi,%eax
401e03:	50                   	push   %eax
401e04:	ff 75 cc             	push   -0x34(%ebp)
401e07:	ff 15 5c 71 40 00    	call   *0x40715c
401e0d:	83 f8 21             	cmp    $0x21,%eax
401e10:	0f 8d 75 0a 00 00    	jge    0x40288b
401e16:	e9 41 08 00 00       	jmp    0x40265c
401e1b:	53                   	push   %ebx
401e1c:	e8 d5 0b 00 00       	call   0x4029f6
401e21:	8b f0                	mov    %eax,%esi
401e23:	56                   	push   %esi
401e24:	6a eb                	push   $0xffffffeb
401e26:	e8 d9 30 00 00       	call   0x404f04
401e2b:	56                   	push   %esi
401e2c:	e8 95 35 00 00       	call   0x4053c6
401e31:	3b c3                	cmp    %ebx,%eax
401e33:	89 45 08             	mov    %eax,0x8(%ebp)
401e36:	0f 84 20 08 00 00    	je     0x40265c
401e3c:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401e3f:	74 46                	je     0x401e87
401e41:	8b 35 04 71 40 00    	mov    0x407104,%esi
401e47:	eb 07                	jmp    0x401e50
401e49:	6a 0f                	push   $0xf
401e4b:	e8 71 40 00 00       	call   0x405ec1
401e50:	6a 64                	push   $0x64
401e52:	ff 75 08             	push   0x8(%ebp)
401e55:	ff d6                	call   *%esi
401e57:	3d 02 01 00 00       	cmp    $0x102,%eax
401e5c:	74 eb                	je     0x401e49
401e5e:	8d 45 f8             	lea    -0x8(%ebp),%eax
401e61:	50                   	push   %eax
401e62:	ff 75 08             	push   0x8(%ebp)
401e65:	ff 15 08 71 40 00    	call   *0x407108
401e6b:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
401e6e:	7c 0b                	jl     0x401e7b
401e70:	ff 75 f8             	push   -0x8(%ebp)
401e73:	57                   	push   %edi
401e74:	e8 4b 3c 00 00       	call   0x405ac4
401e79:	eb 0c                	jmp    0x401e87
401e7b:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
401e7e:	74 07                	je     0x401e87
401e80:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401e87:	ff 75 08             	push   0x8(%ebp)
401e8a:	ff 15 ec 70 40 00    	call   *0x4070ec
401e90:	e9 f6 09 00 00       	jmp    0x40288b
401e95:	6a 02                	push   $0x2
401e97:	e8 5a 0b 00 00       	call   0x4029f6
401e9c:	50                   	push   %eax
401e9d:	e8 bf 3f 00 00       	call   0x405e61
401ea2:	3b c3                	cmp    %ebx,%eax
401ea4:	89 45 08             	mov    %eax,0x8(%ebp)
401ea7:	74 13                	je     0x401ebc
401ea9:	8b d8                	mov    %eax,%ebx
401eab:	ff 73 14             	push   0x14(%ebx)
401eae:	57                   	push   %edi
401eaf:	e8 10 3c 00 00       	call   0x405ac4
401eb4:	ff 73 18             	push   0x18(%ebx)
401eb7:	e9 a5 f6 ff ff       	jmp    0x401561
401ebc:	88 1e                	mov    %bl,(%esi)
401ebe:	88 1f                	mov    %bl,(%edi)
401ec0:	e9 97 07 00 00       	jmp    0x40265c
401ec5:	6a ee                	push   $0xffffffee
401ec7:	e8 2a 0b 00 00       	call   0x4029f6
401ecc:	8d 4d d0             	lea    -0x30(%ebp),%ecx
401ecf:	89 45 d4             	mov    %eax,-0x2c(%ebp)
401ed2:	51                   	push   %ecx
401ed3:	50                   	push   %eax
401ed4:	e8 7b 4b 00 00       	call   0x406a54
401ed9:	88 1e                	mov    %bl,(%esi)
401edb:	3b c3                	cmp    %ebx,%eax
401edd:	89 45 f8             	mov    %eax,-0x8(%ebp)
401ee0:	88 1f                	mov    %bl,(%edi)
401ee2:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401ee9:	0f 84 9c 09 00 00    	je     0x40288b
401eef:	50                   	push   %eax
401ef0:	6a 40                	push   $0x40
401ef2:	ff 15 00 71 40 00    	call   *0x407100
401ef8:	3b c3                	cmp    %ebx,%eax
401efa:	89 45 08             	mov    %eax,0x8(%ebp)
401efd:	0f 84 88 09 00 00    	je     0x40288b
401f03:	50                   	push   %eax
401f04:	ff 75 f8             	push   -0x8(%ebp)
401f07:	53                   	push   %ebx
401f08:	ff 75 d4             	push   -0x2c(%ebp)
401f0b:	e8 3e 4b 00 00       	call   0x406a4e
401f10:	85 c0                	test   %eax,%eax
401f12:	74 34                	je     0x401f48
401f14:	8d 45 bc             	lea    -0x44(%ebp),%eax
401f17:	50                   	push   %eax
401f18:	8d 45 cc             	lea    -0x34(%ebp),%eax
401f1b:	50                   	push   %eax
401f1c:	68 10 90 40 00       	push   $0x409010
401f21:	ff 75 08             	push   0x8(%ebp)
401f24:	e8 1f 4b 00 00       	call   0x406a48
401f29:	85 c0                	test   %eax,%eax
401f2b:	74 1b                	je     0x401f48
401f2d:	8b 45 cc             	mov    -0x34(%ebp),%eax
401f30:	ff 70 08             	push   0x8(%eax)
401f33:	56                   	push   %esi
401f34:	e8 8b 3b 00 00       	call   0x405ac4
401f39:	8b 45 cc             	mov    -0x34(%ebp),%eax
401f3c:	ff 70 0c             	push   0xc(%eax)
401f3f:	57                   	push   %edi
401f40:	e8 7f 3b 00 00       	call   0x405ac4
401f45:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401f48:	ff 75 08             	push   0x8(%ebp)
401f4b:	e9 25 fc ff ff       	jmp    0x401b75
401f50:	39 1d 58 3f 42 00    	cmp    %ebx,0x423f58
401f56:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401f5d:	0f 8c b6 00 00 00    	jl     0x402019
401f63:	6a f0                	push   $0xfffffff0
401f65:	e8 8c 0a 00 00       	call   0x4029f6
401f6a:	6a 01                	push   $0x1
401f6c:	8b f0                	mov    %eax,%esi
401f6e:	e8 83 0a 00 00       	call   0x4029f6
401f73:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
401f76:	89 45 08             	mov    %eax,0x8(%ebp)
401f79:	74 0d                	je     0x401f88
401f7b:	56                   	push   %esi
401f7c:	ff 15 0c 71 40 00    	call   *0x40710c
401f82:	8b f8                	mov    %eax,%edi
401f84:	3b fb                	cmp    %ebx,%edi
401f86:	75 10                	jne    0x401f98
401f88:	6a 08                	push   $0x8
401f8a:	53                   	push   %ebx
401f8b:	56                   	push   %esi
401f8c:	ff 15 10 71 40 00    	call   *0x407110
401f92:	8b f8                	mov    %eax,%edi
401f94:	3b fb                	cmp    %ebx,%edi
401f96:	74 7a                	je     0x402012
401f98:	ff 75 08             	push   0x8(%ebp)
401f9b:	57                   	push   %edi
401f9c:	ff 15 14 71 40 00    	call   *0x407114
401fa2:	8b f0                	mov    %eax,%esi
401fa4:	3b f3                	cmp    %ebx,%esi
401fa6:	74 3d                	je     0x401fe5
401fa8:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
401fab:	89 5d fc             	mov    %ebx,-0x4(%ebp)
401fae:	74 17                	je     0x401fc7
401fb0:	ff 75 e4             	push   -0x1c(%ebp)
401fb3:	e8 6b f4 ff ff       	call   0x401423
401fb8:	ff d6                	call   *%esi
401fba:	85 c0                	test   %eax,%eax
401fbc:	74 31                	je     0x401fef
401fbe:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401fc5:	eb 28                	jmp    0x401fef
401fc7:	68 00 90 40 00       	push   $0x409000
401fcc:	68 70 af 40 00       	push   $0x40af70
401fd1:	68 00 40 42 00       	push   $0x424000
401fd6:	68 00 04 00 00       	push   $0x400
401fdb:	ff 75 cc             	push   -0x34(%ebp)
401fde:	ff d6                	call   *%esi
401fe0:	83 c4 14             	add    $0x14,%esp
401fe3:	eb 0a                	jmp    0x401fef
401fe5:	ff 75 08             	push   0x8(%ebp)
401fe8:	6a f7                	push   $0xfffffff7
401fea:	e8 15 2f 00 00       	call   0x404f04
401fef:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
401ff2:	0f 85 93 08 00 00    	jne    0x40288b
401ff8:	57                   	push   %edi
401ff9:	e8 51 16 00 00       	call   0x40364f
401ffe:	85 c0                	test   %eax,%eax
402000:	0f 84 85 08 00 00    	je     0x40288b
402006:	57                   	push   %edi
402007:	ff 15 18 71 40 00    	call   *0x407118
40200d:	e9 79 08 00 00       	jmp    0x40288b
402012:	6a f6                	push   $0xfffffff6
402014:	e9 4b 01 00 00       	jmp    0x402164
402019:	6a e7                	push   $0xffffffe7
40201b:	e9 44 01 00 00       	jmp    0x402164
402020:	6a f0                	push   $0xfffffff0
402022:	e8 cf 09 00 00       	call   0x4029f6
402027:	6a df                	push   $0xffffffdf
402029:	89 45 d0             	mov    %eax,-0x30(%ebp)
40202c:	e8 c5 09 00 00       	call   0x4029f6
402031:	6a 02                	push   $0x2
402033:	8b f0                	mov    %eax,%esi
402035:	e8 bc 09 00 00       	call   0x4029f6
40203a:	6a cd                	push   $0xffffffcd
40203c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40203f:	e8 b2 09 00 00       	call   0x4029f6
402044:	6a 45                	push   $0x45
402046:	89 45 f8             	mov    %eax,-0x8(%ebp)
402049:	e8 a8 09 00 00       	call   0x4029f6
40204e:	56                   	push   %esi
40204f:	89 45 bc             	mov    %eax,-0x44(%ebp)
402052:	e8 6f 36 00 00       	call   0x4056c6
402057:	85 c0                	test   %eax,%eax
402059:	75 07                	jne    0x402062
40205b:	6a 21                	push   $0x21
40205d:	e8 94 09 00 00       	call   0x4029f6
402062:	8d 45 08             	lea    0x8(%ebp),%eax
402065:	50                   	push   %eax
402066:	68 74 73 40 00       	push   $0x407374
40206b:	6a 01                	push   $0x1
40206d:	53                   	push   %ebx
40206e:	68 84 73 40 00       	push   $0x407384
402073:	ff 15 84 72 40 00    	call   *0x407284