401a3c:	7c 08                	jl     0x401a46
401a3e:	7e 96                	jle    0x4019d6
401a40:	eb 0e                	jmp    0x401a50
401a42:	3b f0                	cmp    %eax,%esi
401a44:	73 08                	jae    0x401a4e
401a46:	8b 45 e8             	mov    -0x18(%ebp),%eax
401a49:	e9 48 0e 00 00       	jmp    0x402896
401a4e:	76 86                	jbe    0x4019d6
401a50:	8b 45 ec             	mov    -0x14(%ebp),%eax
401a53:	e9 3e 0e 00 00       	jmp    0x402896
401a58:	6a 01                	push   $0x1
401a5a:	e8 7a 0f 00 00       	call   0x4029d9
401a5f:	6a 02                	push   $0x2
401a61:	8b f8                	mov    %eax,%edi
401a63:	e8 71 0f 00 00       	call   0x4029d9
401a68:	8b c8                	mov    %eax,%ecx
401a6a:	8b 45 e8             	mov    -0x18(%ebp),%eax
401a6d:	83 f8 0c             	cmp    $0xc,%eax
401a70:	77 6d                	ja     0x401adf
401a72:	ff 24 85 a5 29 40 00 	jmp    *0x4029a5(,%eax,4)
401a79:	03 f9                	add    %ecx,%edi
401a7b:	eb 62                	jmp    0x401adf
401a7d:	2b f9                	sub    %ecx,%edi
401a7f:	eb 5e                	jmp    0x401adf
401a81:	0f af cf             	imul   %edi,%ecx
401a84:	8b f9                	mov    %ecx,%edi
401a86:	eb 57                	jmp    0x401adf
401a88:	3b cb                	cmp    %ebx,%ecx
401a8a:	74 42                	je     0x401ace
401a8c:	8b c7                	mov    %edi,%eax
401a8e:	99                   	cltd
401a8f:	f7 f9                	idiv   %ecx
401a91:	8b f8                	mov    %eax,%edi
401a93:	eb 4a                	jmp    0x401adf
401a95:	0b f9                	or     %ecx,%edi
401a97:	eb 46                	jmp    0x401adf
401a99:	23 f9                	and    %ecx,%edi
401a9b:	eb 42                	jmp    0x401adf
401a9d:	33 f9                	xor    %ecx,%edi
401a9f:	eb 3e                	jmp    0x401adf
401aa1:	33 c0                	xor    %eax,%eax
401aa3:	3b fb                	cmp    %ebx,%edi
401aa5:	0f 94 c0             	sete   %al
401aa8:	eb e7                	jmp    0x401a91
401aaa:	3b fb                	cmp    %ebx,%edi
401aac:	75 0e                	jne    0x401abc
401aae:	eb 08                	jmp    0x401ab8
401ab0:	33 ff                	xor    %edi,%edi
401ab2:	eb 2b                	jmp    0x401adf
401ab4:	3b fb                	cmp    %ebx,%edi
401ab6:	74 f8                	je     0x401ab0
401ab8:	3b cb                	cmp    %ebx,%ecx
401aba:	74 f4                	je     0x401ab0
401abc:	33 ff                	xor    %edi,%edi
401abe:	47                   	inc    %edi
401abf:	eb 1e                	jmp    0x401adf
401ac1:	3b cb                	cmp    %ebx,%ecx
401ac3:	74 09                	je     0x401ace
401ac5:	8b c7                	mov    %edi,%eax
401ac7:	99                   	cltd
401ac8:	f7 f9                	idiv   %ecx
401aca:	8b fa                	mov    %edx,%edi
401acc:	eb 11                	jmp    0x401adf
401ace:	33 ff                	xor    %edi,%edi
401ad0:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401ad7:	eb 06                	jmp    0x401adf
401ad9:	d3 e7                	shl    %cl,%edi
401adb:	eb 02                	jmp    0x401adf
401add:	d3 ff                	sar    %cl,%edi
401adf:	57                   	push   %edi
401ae0:	e9 7c fa ff ff       	jmp    0x401561
401ae5:	6a 01                	push   $0x1
401ae7:	e8 0a 0f 00 00       	call   0x4029f6
401aec:	6a 02                	push   $0x2
401aee:	8b f8                	mov    %eax,%edi
401af0:	e8 e4 0e 00 00       	call   0x4029d9
401af5:	50                   	push   %eax
401af6:	57                   	push   %edi
401af7:	56                   	push   %esi
401af8:	ff 15 00 72 40 00    	call   *0x407200
401afe:	83 c4 0c             	add    $0xc,%esp
401b01:	e9 85 0d 00 00       	jmp    0x40288b
401b06:	8b 45 e4             	mov    -0x1c(%ebp),%eax
401b09:	8b 3d 70 af 40 00    	mov    0x40af70,%edi
401b0f:	3b c3                	cmp    %ebx,%eax
401b11:	74 44                	je     0x401b57
401b13:	48                   	dec    %eax
401b14:	3b fb                	cmp    %ebx,%edi
401b16:	0f 84 df 06 00 00    	je     0x4021fb
401b1c:	8b 3f                	mov    (%edi),%edi
401b1e:	3b c3                	cmp    %ebx,%eax
401b20:	75 f1                	jne    0x401b13
401b22:	3b fb                	cmp    %ebx,%edi
401b24:	0f 84 d1 06 00 00    	je     0x4021fb
401b2a:	83 c7 04             	add    $0x4,%edi
401b2d:	be 70 9b 40 00       	mov    $0x409b70,%esi
401b32:	57                   	push   %edi
401b33:	56                   	push   %esi
401b34:	e8 2d 40 00 00       	call   0x405b66
401b39:	a1 70 af 40 00       	mov    0x40af70,%eax
401b3e:	83 c0 04             	add    $0x4,%eax
401b41:	50                   	push   %eax
401b42:	57                   	push   %edi
401b43:	e8 1e 40 00 00       	call   0x405b66
401b48:	a1 70 af 40 00       	mov    0x40af70,%eax
401b4d:	56                   	push   %esi
401b4e:	83 c0 04             	add    $0x4,%eax
401b51:	50                   	push   %eax
401b52:	e9 5a 0c 00 00       	jmp    0x4027b1
401b57:	3b d3                	cmp    %ebx,%edx
401b59:	74 25                	je     0x401b80
401b5b:	3b fb                	cmp    %ebx,%edi
401b5d:	0f 84 f9 0a 00 00    	je     0x40265c
401b63:	8d 47 04             	lea    0x4(%edi),%eax
401b66:	50                   	push   %eax
401b67:	56                   	push   %esi
401b68:	e8 f9 3f 00 00       	call   0x405b66
401b6d:	8b 07                	mov    (%edi),%eax
401b6f:	57                   	push   %edi
401b70:	a3 70 af 40 00       	mov    %eax,0x40af70
401b75:	ff 15 fc 70 40 00    	call   *0x4070fc
401b7b:	e9 0b 0d 00 00       	jmp    0x40288b
401b80:	68 04 04 00 00       	push   $0x404
401b85:	6a 40                	push   $0x40
401b87:	ff 15 00 71 40 00    	call   *0x407100
401b8d:	ff 75 dc             	push   -0x24(%ebp)
401b90:	8b f0                	mov    %eax,%esi
401b92:	8d 46 04             	lea    0x4(%esi),%eax
401b95:	50                   	push   %eax
401b96:	e8 ed 3f 00 00       	call   0x405b88
401b9b:	a1 70 af 40 00       	mov    0x40af70,%eax
401ba0:	89 06                	mov    %eax,(%esi)
401ba2:	89 35 70 af 40 00    	mov    %esi,0x40af70
401ba8:	e9 de 0c 00 00       	jmp    0x40288b
401bad:	6a 03                	push   $0x3
401baf:	e8 25 0e 00 00       	call   0x4029d9
401bb4:	6a 04                	push   $0x4
401bb6:	89 45 cc             	mov    %eax,-0x34(%ebp)
401bb9:	e8 1b 0e 00 00       	call   0x4029d9
401bbe:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)
401bc2:	89 45 08             	mov    %eax,0x8(%ebp)
401bc5:	74 0a                	je     0x401bd1
401bc7:	6a 33                	push   $0x33
401bc9:	e8 28 0e 00 00       	call   0x4029f6
401bce:	89 45 cc             	mov    %eax,-0x34(%ebp)
401bd1:	f6 45 f0 02          	testb  $0x2,-0x10(%ebp)
401bd5:	74 0a                	je     0x401be1
401bd7:	6a 44                	push   $0x44
401bd9:	e8 18 0e 00 00       	call   0x4029f6
401bde:	89 45 08             	mov    %eax,0x8(%ebp)
401be1:	83 7d d8 21          	cmpl   $0x21,-0x28(%ebp)
401be5:	6a 01                	push   $0x1
401be7:	75 44                	jne    0x401c2d
401be9:	e8 eb 0d 00 00       	call   0x4029d9
401bee:	6a 02                	push   $0x2
401bf0:	8b f8                	mov    %eax,%edi
401bf2:	e8 e2 0d 00 00       	call   0x4029d9
401bf7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
401bfa:	c1 f9 02             	sar    $0x2,%ecx
401bfd:	74 1e                	je     0x401c1d
401bff:	8d 55 f8             	lea    -0x8(%ebp),%edx
401c02:	52                   	push   %edx
401c03:	51                   	push   %ecx
401c04:	53                   	push   %ebx
401c05:	ff 75 08             	push   0x8(%ebp)
401c08:	ff 75 cc             	push   -0x34(%ebp)
401c0b:	50                   	push   %eax
401c0c:	57                   	push   %edi
401c0d:	ff 15 04 72 40 00    	call   *0x407204
401c13:	f7 d8                	neg    %eax
401c15:	1b c0                	sbb    %eax,%eax
401c17:	40                   	inc    %eax
401c18:	89 45 fc             	mov    %eax,-0x4(%ebp)
401c1b:	eb 3f                	jmp    0x401c5c
401c1d:	ff 75 08             	push   0x8(%ebp)
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