401c13:	89 55 f0             	mov    %edx,-0x10(%ebp)
401c16:	89 45 f8             	mov    %eax,-0x8(%ebp)
401c19:	e8 ec 0e 00 00       	call   0x402b0a
401c1e:	f6 45 e0 01          	testb  $0x1,-0x20(%ebp)
401c22:	59                   	pop    %ecx
401c23:	89 55 f0             	mov    %edx,-0x10(%ebp)
401c26:	59                   	pop    %ecx
401c27:	89 45 08             	mov    %eax,0x8(%ebp)
401c2a:	74 0a                	je     0x401c36
401c2c:	6a 33                	push   $0x33
401c2e:	e8 f9 0e 00 00       	call   0x402b2c
401c33:	89 45 f8             	mov    %eax,-0x8(%ebp)
401c36:	f6 45 e0 02          	testb  $0x2,-0x20(%ebp)
401c3a:	74 0a                	je     0x401c46
401c3c:	6a 44                	push   $0x44
401c3e:	e8 e9 0e 00 00       	call   0x402b2c
401c43:	89 45 08             	mov    %eax,0x8(%ebp)
401c46:	83 7d c8 21          	cmpl   $0x21,-0x38(%ebp)
401c4a:	6a 01                	push   $0x1
401c4c:	75 4c                	jne    0x401c9a
401c4e:	e8 b7 0e 00 00       	call   0x402b0a
401c53:	6a 02                	push   $0x2
401c55:	8b f8                	mov    %eax,%edi
401c57:	89 55 f0             	mov    %edx,-0x10(%ebp)
401c5a:	e8 ab 0e 00 00       	call   0x402b0a
401c5f:	59                   	pop    %ecx
401c60:	89 55 f0             	mov    %edx,-0x10(%ebp)
401c63:	59                   	pop    %ecx
401c64:	8b 4d e0             	mov    -0x20(%ebp),%ecx
401c67:	c1 f9 02             	sar    $0x2,%ecx
401c6a:	74 1e                	je     0x401c8a
401c6c:	8d 55 f4             	lea    -0xc(%ebp),%edx
401c6f:	52                   	push   %edx
401c70:	51                   	push   %ecx
401c71:	53                   	push   %ebx
401c72:	ff 75 08             	push   0x8(%ebp)
401c75:	ff 75 f8             	push   -0x8(%ebp)
401c78:	50                   	push   %eax
401c79:	57                   	push   %edi
401c7a:	ff 15 50 82 40 00    	call   *0x408250
401c80:	f7 d8                	neg    %eax
401c82:	1b c0                	sbb    %eax,%eax
401c84:	40                   	inc    %eax
401c85:	89 45 fc             	mov    %eax,-0x4(%ebp)
401c88:	eb 3f                	jmp    0x401cc9
401c8a:	ff 75 08             	push   0x8(%ebp)
401c8d:	ff 75 f8             	push   -0x8(%ebp)
401c90:	50                   	push   %eax
401c91:	57                   	push   %edi
401c92:	ff 15 00 82 40 00    	call   *0x408200
401c98:	eb 2c                	jmp    0x401cc6
401c9a:	e8 8d 0e 00 00       	call   0x402b2c
401c9f:	6a 12                	push   $0x12
401ca1:	8b f8                	mov    %eax,%edi
401ca3:	e8 84 0e 00 00       	call   0x402b2c
401ca8:	8a 08                	mov    (%eax),%cl
401caa:	f6 d9                	neg    %cl
401cac:	1b c9                	sbb    %ecx,%ecx
401cae:	23 c8                	and    %eax,%ecx
401cb0:	8a 07                	mov    (%edi),%al
401cb2:	f6 d8                	neg    %al
401cb4:	1b c0                	sbb    %eax,%eax
401cb6:	51                   	push   %ecx
401cb7:	23 c7                	and    %edi,%eax
401cb9:	50                   	push   %eax
401cba:	ff 75 08             	push   0x8(%ebp)
401cbd:	ff 75 f8             	push   -0x8(%ebp)
401cc0:	ff 15 54 82 40 00    	call   *0x408254
401cc6:	89 45 f4             	mov    %eax,-0xc(%ebp)
401cc9:	39 5d cc             	cmp    %ebx,-0x34(%ebp)
401ccc:	0f 8c e6 0c 00 00    	jl     0x4029b8
401cd2:	ff 75 f4             	push   -0xc(%ebp)
401cd5:	e9 8f f8 ff ff       	jmp    0x401569
401cda:	53                   	push   %ebx
401cdb:	e8 2a 0e 00 00       	call   0x402b0a
401ce0:	59                   	pop    %ecx
401ce1:	89 55 f0             	mov    %edx,-0x10(%ebp)
401ce4:	50                   	push   %eax
401ce5:	ff 15 58 82 40 00    	call   *0x408258
401ceb:	85 c0                	test   %eax,%eax
401ced:	0f 84 1b fd ff ff    	je     0x401a0e
401cf3:	8b 45 d0             	mov    -0x30(%ebp),%eax
401cf6:	e9 c8 0c 00 00       	jmp    0x4029c3
401cfb:	6a 02                	push   $0x2
401cfd:	e8 08 0e 00 00       	call   0x402b0a
401d02:	6a 01                	push   $0x1
401d04:	8b f8                	mov    %eax,%edi
401d06:	89 55 f0             	mov    %edx,-0x10(%ebp)
401d09:	e8 fc 0d 00 00       	call   0x402b0a
401d0e:	59                   	pop    %ecx
401d0f:	89 55 f0             	mov    %edx,-0x10(%ebp)
401d12:	59                   	pop    %ecx
401d13:	57                   	push   %edi
401d14:	50                   	push   %eax
401d15:	ff 15 d0 81 40 00    	call   *0x4081d0
401d1b:	e9 c4 08 00 00       	jmp    0x4025e4
401d20:	a1 88 f4 42 00       	mov    0x42f488,%eax
401d25:	53                   	push   %ebx
401d26:	8d 34 10             	lea    (%eax,%edx,1),%esi
401d29:	e8 dc 0d 00 00       	call   0x402b0a
401d2e:	59                   	pop    %ecx
401d2f:	89 55 f0             	mov    %edx,-0x10(%ebp)
401d32:	56                   	push   %esi
401d33:	6a eb                	push   $0xffffffeb
401d35:	50                   	push   %eax
401d36:	ff 15 4c 82 40 00    	call   *0x40824c
401d3c:	e9 77 0c 00 00       	jmp    0x4029b8
401d41:	f6 45 d5 01          	testb  $0x1,-0x2b(%ebp)
401d45:	74 0d                	je     0x401d54
401d47:	6a 01                	push   $0x1
401d49:	e8 bc 0d 00 00       	call   0x402b0a
401d4e:	59                   	pop    %ecx
401d4f:	89 55 f0             	mov    %edx,-0x10(%ebp)
401d52:	eb 0a                	jmp    0x401d5e
401d54:	52                   	push   %edx
401d55:	ff 75 f8             	push   -0x8(%ebp)
401d58:	ff 15 d0 81 40 00    	call   *0x4081d0
401d5e:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
401d61:	89 45 08             	mov    %eax,0x8(%ebp)
401d64:	8b c1                	mov    %ecx,%eax
401d66:	8b f9                	mov    %ecx,%edi
401d68:	c1 e8 1f             	shr    $0x1f,%eax
401d6b:	89 45 f8             	mov    %eax,-0x8(%ebp)
401d6e:	8b c1                	mov    %ecx,%eax
401d70:	8b f1                	mov    %ecx,%esi
401d72:	83 e7 03             	and    $0x3,%edi
401d75:	c1 e8 1e             	shr    $0x1e,%eax
401d78:	83 e6 04             	and    $0x4,%esi
401d7b:	83 e0 01             	and    $0x1,%eax
401d7e:	f7 c1 00 00 01 00    	test   $0x10000,%ecx
401d84:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401d87:	74 08                	je     0x401d91
401d89:	53                   	push   %ebx
401d8a:	e8 9d 0d 00 00       	call   0x402b2c
401d8f:	eb 04                	jmp    0x401d95
401d91:	0f b7 45 cc          	movzwl -0x34(%ebp),%eax
401d95:	89 45 f4             	mov    %eax,-0xc(%ebp)
401d98:	8d 45 a8             	lea    -0x58(%ebp),%eax
401d9b:	50                   	push   %eax
401d9c:	ff 75 08             	push   0x8(%ebp)
401d9f:	ff 15 0c 82 40 00    	call   *0x40820c
401da5:	8b 45 d4             	mov    -0x2c(%ebp),%eax
401da8:	25 f0 fe 00 00       	and    $0xfef0,%eax
401dad:	50                   	push   %eax
401dae:	8b 45 b4             	mov    -0x4c(%ebp),%eax
401db1:	0f af 45 e4          	imul   -0x1c(%ebp),%eax
401db5:	50                   	push   %eax
401db6:	8b 45 b0             	mov    -0x50(%ebp),%eax
401db9:	0f af 45 f8          	imul   -0x8(%ebp),%eax
401dbd:	f7 de                	neg    %esi
401dbf:	50                   	push   %eax
401dc0:	57                   	push   %edi
401dc1:	ff 75 f4             	push   -0xc(%ebp)
401dc4:	1b f6                	sbb    %esi,%esi
401dc6:	23 35 20 f4 42 00    	and    0x42f420,%esi
401dcc:	56                   	push   %esi
401dcd:	ff 15 34 82 40 00    	call   *0x408234
401dd3:	50                   	push   %eax
401dd4:	57                   	push   %edi
401dd5:	68 72 01 00 00       	push   $0x172
401dda:	ff 75 08             	push   0x8(%ebp)
401ddd:	ff 15 00 82 40 00    	call   *0x408200
401de3:	3b c3                	cmp    %ebx,%eax
401de5:	0f 84 cd 0b 00 00    	je     0x4029b8
401deb:	3b fb                	cmp    %ebx,%edi
401ded:	0f 85 c5 0b 00 00    	jne    0x4029b8
401df3:	50                   	push   %eax
401df4:	ff 15 60 80 40 00    	call   *0x408060
401dfa:	e9 b9 0b 00 00       	jmp    0x4029b8
401dff:	ff 75 f8             	push   -0x8(%ebp)
401e02:	ff 15 f0 81 40 00    	call   *0x4081f0
401e08:	6a 02                	push   $0x2
401e0a:	8b f8                	mov    %eax,%edi
401e0c:	e8 f9 0c 00 00       	call   0x402b0a
401e11:	59                   	pop    %ecx
401e12:	8b d8                	mov    %eax,%ebx
401e14:	6a 48                	push   $0x48
401e16:	6a 5a                	push   $0x5a
401e18:	57                   	push   %edi
401e19:	89 55 f0             	mov    %edx,-0x10(%ebp)
401e1c:	ff 15 64 80 40 00    	call   *0x408064
401e22:	50                   	push   %eax
401e23:	53                   	push   %ebx
401e24:	ff 15 44 81 40 00    	call   *0x408144
401e2a:	57                   	push   %edi
401e2b:	ff 75 f8             	push   -0x8(%ebp)
401e2e:	f7 d8                	neg    %eax
401e30:	a3 30 b8 40 00       	mov    %eax,0x40b830
401e35:	ff 15 f4 81 40 00    	call   *0x4081f4
401e3b:	6a 03                	push   $0x3
401e3d:	e8 c8 0c 00 00       	call   0x402b0a
401e42:	a3 40 b8 40 00       	mov    %eax,0x40b840
401e47:	8a 45 dc             	mov    -0x24(%ebp),%al
401e4a:	59                   	pop    %ecx
401e4b:	89 55 f0             	mov    %edx,-0x10(%ebp)
401e4e:	ff 75 d0             	push   -0x30(%ebp)
401e51:	8a c8                	mov    %al,%cl
401e53:	80 e1 01             	and    $0x1,%cl
401e56:	c6 05 47 b8 40 00 01 	movb   $0x1,0x40b847
401e5d:	88 0d 44 b8 40 00    	mov    %cl,0x40b844
401e63:	8a c8                	mov    %al,%cl
401e65:	80 e1 02             	and    $0x2,%cl
401e68:	24 04                	and    $0x4,%al
401e6a:	68 4c b8 40 00       	push   $0x40b84c
401e6f:	88 0d 45 b8 40 00    	mov    %cl,0x40b845
401e75:	a2 46 b8 40 00       	mov    %al,0x40b846
401e7a:	e8 09 43 00 00       	call   0x406188
401e7f:	68 30 b8 40 00       	push   $0x40b830
401e84:	ff 15 58 80 40 00    	call   *0x408058
401e8a:	e9 55 07 00 00       	jmp    0x4025e4
401e8f:	53                   	push   %ebx
401e90:	e8 75 0c 00 00       	call   0x402b0a
401e95:	6a 01                	push   $0x1
401e97:	8b f0                	mov    %eax,%esi
401e99:	89 55 f0             	mov    %edx,-0x10(%ebp)
401e9c:	e8 69 0c 00 00       	call   0x402b0a
401ea1:	39 5d d8             	cmp    %ebx,-0x28(%ebp)
401ea4:	59                   	pop    %ecx
401ea5:	59                   	pop    %ecx
401ea6:	89 55 f0             	mov    %edx,-0x10(%ebp)
401ea9:	50                   	push   %eax
401eaa:	56                   	push   %esi
401eab:	75 0b                	jne    0x401eb8
401ead:	ff 15 48 82 40 00    	call   *0x408248
401eb3:	e9 00 0b 00 00       	jmp    0x4029b8
401eb8:	ff 15 f8 81 40 00    	call   *0x4081f8
401ebe:	e9 f5 0a 00 00       	jmp    0x4029b8
401ec3:	53                   	push   %ebx
401ec4:	e8 63 0c 00 00       	call   0x402b2c
401ec9:	6a 31                	push   $0x31
401ecb:	8b f0                	mov    %eax,%esi
401ecd:	e8 5a 0c 00 00       	call   0x402b2c
401ed2:	6a 22                	push   $0x22
401ed4:	8b d8                	mov    %eax,%ebx
401ed6:	e8 51 0c 00 00       	call   0x402b2c
401edb:	6a 15                	push   $0x15
401edd:	8b f8                	mov    %eax,%edi
401edf:	e8 48 0c 00 00       	call   0x402b2c
401ee4:	6a ec                	push   $0xffffffec
401ee6:	e8 38 f5 ff ff       	call   0x401423
401eeb:	8b 45 dc             	mov    -0x24(%ebp),%eax
401eee:	89 45 80             	mov    %eax,-0x80(%ebp)
401ef1:	8b 45 f8             	mov    -0x8(%ebp),%eax
401ef4:	89 45 84             	mov    %eax,-0x7c(%ebp)
401ef7:	8b 45 d8             	mov    -0x28(%ebp),%eax
401efa:	89 45 98             	mov    %eax,-0x68(%ebp)
401efd:	8a 06                	mov    (%esi),%al
401eff:	f6 d8                	neg    %al
401f01:	1b c0                	sbb    %eax,%eax
401f03:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
401f06:	23 c6                	and    %esi,%eax
401f08:	89 45 88             	mov    %eax,-0x78(%ebp)
401f0b:	8a 07                	mov    (%edi),%al
401f0d:	f6 d8                	neg    %al
401f0f:	1b c0                	sbb    %eax,%eax
401f11:	c7 45 94 00 58 43 00 	movl   $0x435800,-0x6c(%ebp)
401f18:	23 c7                	and    %edi,%eax
401f1a:	89 45 90             	mov    %eax,-0x70(%ebp)
401f1d:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
401f23:	50                   	push   %eax
401f24:	e8 1f 39 00 00       	call   0x405848
401f29:	85 c0                	test   %eax,%eax
401f2b:	0f 84 52 08 00 00    	je     0x402783
401f31:	f6 45 80 40          	testb  $0x40,-0x80(%ebp)
401f35:	0f 84 7d 0a 00 00    	je     0x4029b8
401f3b:	ff 75 b4             	push   -0x4c(%ebp)
401f3e:	e8 30 46 00 00       	call   0x406573
401f43:	ff 75 b4             	push   -0x4c(%ebp)
401f46:	eb 45                	jmp    0x401f8d
401f48:	53                   	push   %ebx
401f49:	e8 de 0b 00 00       	call   0x402b2c
401f4e:	8b f0                	mov    %eax,%esi
401f50:	56                   	push   %esi
401f51:	6a eb                	push   $0xffffffeb
401f53:	e8 35 33 00 00       	call   0x40528d
401f58:	56                   	push   %esi
401f59:	e8 a7 38 00 00       	call   0x405805
401f5e:	8b f0                	mov    %eax,%esi
401f60:	3b f3                	cmp    %ebx,%esi
401f62:	0f 84 1b 08 00 00    	je     0x402783
401f68:	39 5d d4             	cmp    %ebx,-0x2c(%ebp)
401f6b:	74 1f                	je     0x401f8c
401f6d:	56                   	push   %esi
401f6e:	e8 00 46 00 00       	call   0x406573
401f73:	39 5d d0             	cmp    %ebx,-0x30(%ebp)
401f76:	7c 09                	jl     0x401f81
401f78:	50                   	push   %eax
401f79:	57                   	push   %edi
401f7a:	e8 45 41 00 00       	call   0x4060c4
401f7f:	eb 0b                	jmp    0x401f8c
401f81:	3b c3                	cmp    %ebx,%eax
401f83:	74 07                	je     0x401f8c
401f85:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401f8c:	56                   	push   %esi
401f8d:	ff 15 14 81 40 00    	call   *0x408114
401f93:	e9 20 0a 00 00       	jmp    0x4029b8
401f98:	6a 02                	push   $0x2
401f9a:	e8 8d 0b 00 00       	call   0x402b2c
401f9f:	50                   	push   %eax
401fa0:	e8 c4 44 00 00       	call   0x406469
401fa5:	3b c3                	cmp    %ebx,%eax
401fa7:	89 45 08             	mov    %eax,0x8(%ebp)
401faa:	74 13                	je     0x401fbf
401fac:	8b d8                	mov    %eax,%ebx
401fae:	ff 73 14             	push   0x14(%ebx)
401fb1:	57                   	push   %edi
401fb2:	e8 0d 41 00 00       	call   0x4060c4
401fb7:	ff 73 18             	push   0x18(%ebx)
401fba:	e9 aa f5 ff ff       	jmp    0x401569
401fbf:	88 1e                	mov    %bl,(%esi)
401fc1:	88 1f                	mov    %bl,(%edi)
401fc3:	e9 bb 07 00 00       	jmp    0x402783
401fc8:	6a ee                	push   $0xffffffee
401fca:	e8 5d 0b 00 00       	call   0x402b2c
401fcf:	8d 4d f0             	lea    -0x10(%ebp),%ecx
401fd2:	89 45 e4             	mov    %eax,-0x1c(%ebp)
401fd5:	51                   	push   %ecx
401fd6:	50                   	push   %eax
401fd7:	6a 09                	push   $0x9
401fd9:	e8 20 45 00 00       	call   0x4064fe
401fde:	ff d0                	call   *%eax
401fe0:	88 1e                	mov    %bl,(%esi)
401fe2:	3b c3                	cmp    %ebx,%eax
401fe4:	89 45 f4             	mov    %eax,-0xc(%ebp)
401fe7:	88 1f                	mov    %bl,(%edi)
401fe9:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
401ff0:	0f 84 c2 09 00 00    	je     0x4029b8
401ff6:	50                   	push   %eax
401ff7:	6a 40                	push   $0x40
401ff9:	ff 15 58 81 40 00    	call   *0x408158
401fff:	3b c3                	cmp    %ebx,%eax
402001:	89 45 08             	mov    %eax,0x8(%ebp)
402004:	0f 84 ae 09 00 00    	je     0x4029b8
40200a:	6a 0a                	push   $0xa
40200c:	e8 ed 44 00 00       	call   0x4064fe
402011:	6a 0b                	push   $0xb
402013:	89 45 c0             	mov    %eax,-0x40(%ebp)
402016:	e8 e3 44 00 00       	call   0x4064fe
40201b:	ff 75 08             	push   0x8(%ebp)
40201e:	89 45 c4             	mov    %eax,-0x3c(%ebp)
402021:	ff 75 f4             	push   -0xc(%ebp)
402024:	53                   	push   %ebx
402025:	ff 75 e4             	push   -0x1c(%ebp)
402028:	ff 55 c0             	call   *-0x40(%ebp)
40202b:	85 c0                	test   %eax,%eax
40202d:	74 32                	je     0x402061
40202f:	8d 45 b4             	lea    -0x4c(%ebp),%eax
402032:	50                   	push   %eax
402033:	8d 45 f8             	lea    -0x8(%ebp),%eax
402036:	50                   	push   %eax